給keras層命名,并提取中間層輸出值,保存到文檔的實例
更新:
感謝評論區(qū)提供的方案。
采用model.summary(),model.get_config()和for循環(huán)均可獲得Keras的層名。
示例如下圖

對于keras特定層的命名,只需在層內(nèi)添加 name 即可
model.add(Activation('softmax',name='dense_1') ) # 注意 name 要放于函數(shù)內(nèi)
#提取中間層
from keras.models import Model
import keras
layer_name = 'dense_1' #獲取層的名稱
intermediate_layer_model = Model(inputs=model.input,
outputs=model.get_layer(layer_name).output)#創(chuàng)建的新模型
intermediate_output = intermediate_layer_model.predict(X_test)
doc = open(r'C://Users//CCUT04//Desktop//1.txt','w')
for i in intermediate_output:
print(i)
print(i , file = doc)
doc.close()
補(bǔ)充知識:關(guān)于用keras提取NN中間layer輸出
Build model...
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
main_input (InputLayer) (None, 89, 39) 0
__________________________________________________________________________________________________
cropping1d_1 (Cropping1D) (None, 85, 39) 0 main_input[0][0]
__________________________________________________________________________________________________
cropping1d_2 (Cropping1D) (None, 85, 39) 0 main_input[0][0]
__________________________________________________________________________________________________
cropping1d_3 (Cropping1D) (None, 85, 39) 0 main_input[0][0]
__________________________________________________________________________________________________
cropping1d_4 (Cropping1D) (None, 85, 39) 0 main_input[0][0]
__________________________________________________________________________________________________
cropping1d_5 (Cropping1D) (None, 85, 39) 0 main_input[0][0]
__________________________________________________________________________________________________
concatenate_1 (Concatenate) (None, 85, 195) 0 cropping1d_1[0][0]
cropping1d_2[0][0]
cropping1d_3[0][0]
cropping1d_4[0][0]
cropping1d_5[0][0]
__________________________________________________________________________________________________
fc1 (BatchNormalization) (None, 85, 195) 780 concatenate_1[0][0]
__________________________________________________________________________________________________
fc2 (Bidirectional) (None, 85, 2048) 9994240 fc1[0][0]
__________________________________________________________________________________________________
fc3 (BatchNormalization) (None, 85, 2048) 8192 fc2[0][0]
__________________________________________________________________________________________________
global_average_pooling1d_1 (Glo (None, 2048) 0 fc3[0][0]
__________________________________________________________________________________________________
main_output (Dense) (None, 2) 4098 global_average_pooling1d_1[0][0]
==================================================================================================
Total params: 10,007,310
Trainable params: 10,002,824
Non-trainable params: 4,486
__________________________________________________________________________________________________
假設(shè)我網(wǎng)絡(luò)層數(shù)是上面這個結(jié)構(gòu).
如果我想得到pooling的輸出, keras上有兩張方法。
intermediate_layer_model = Model(inputs=model.input,outputs=model.get_layer(str('global_average_pooling1d_1')).output)
#model.summary()
#model.get_layer(str('cropping1d_1'))
intermediate_output = intermediate_layer_model.predict(data)
data是你的輸入所用的數(shù)據(jù)....
from keras import backend as K
get_11rd_layer_output = K.function([model.layers[0].input],
[model.layers[10].output])
layer_output = get_11rd_layer_output([data])[0]
我這里第10層是Pooling層.
這兩個代碼的output是一樣的..
一般我看人用的都是第二個...
以上這篇給keras層命名,并提取中間層輸出值,保存到文檔的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python:接口間數(shù)據(jù)傳遞與調(diào)用方法
今天小編就為大家分享一篇python:接口間數(shù)據(jù)傳遞與調(diào)用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項
這篇文章主要給大家介紹了關(guān)于Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Python+Pygame實戰(zhàn)之瘋狂吃水果游戲的實現(xiàn)
吃豆人和切水果這兩個游戲相信大家都不陌生吧,本文將利用Python中的Pygame模塊編寫出一款結(jié)合吃豆人+切水果的新游戲:瘋狂吃水果,感興趣的可以了解一下2022-06-06
使用python解析xml成對應(yīng)的html示例分享
這篇文章主要介紹了使用python解析xml成對應(yīng)的html示例,需要的朋友可以參考下2014-04-04
解決python中os.system調(diào)用exe文件的問題
這篇文章主要介紹了解決python中os.system調(diào)用exe文件的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

