給keras層命名,并提取中間層輸出值,保存到文檔的實(shí)例
更新:
感謝評(píng)論區(qū)提供的方案。
采用model.summary(),model.get_config()和for循環(huán)均可獲得Keras的層名。
示例如下圖
對(duì)于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ǔ)充知識(shí):關(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ù)是上面這個(gè)結(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層.
這兩個(gè)代碼的output是一樣的..
一般我看人用的都是第二個(gè)...
以上這篇給keras層命名,并提取中間層輸出值,保存到文檔的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Python數(shù)學(xué)建模之?dāng)?shù)據(jù)導(dǎo)入
數(shù)據(jù)導(dǎo)入是所有數(shù)模編程的第一步,比你想象的更重要。Python 語言中數(shù)據(jù)導(dǎo)入的方法很多。對(duì)于數(shù)學(xué)建模問題編程來說,選擇什么方法最好呢?答案是:沒有最好的,只有最合適的。對(duì)于不同的問題,不同的算法,以及所調(diào)用工具包的不同實(shí)現(xiàn)方法,對(duì)于數(shù)據(jù)就會(huì)有不同的要求2021-06-06Python調(diào)用graphviz繪制結(jié)構(gòu)化圖形網(wǎng)絡(luò)示例
今天小編就為大家分享一篇Python調(diào)用graphviz繪制結(jié)構(gòu)化圖形網(wǎng)絡(luò)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python實(shí)現(xiàn)投影法分割圖像示例(一)
今天小編就為大家分享一篇Python實(shí)現(xiàn)投影法分割圖像示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01使用Selenium實(shí)現(xiàn)微博爬蟲(預(yù)登錄、展開全文、翻頁)
這篇文章主要介紹了使用Selenium實(shí)現(xiàn)微博爬蟲(預(yù)登錄、展開全文、翻頁),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04tensorflow 輸出權(quán)重到csv或txt的實(shí)例
今天小編就為大家分享一篇tensorflow 輸出權(quán)重到csv或txt的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06