任務是獲取pretrained cnn inceptionv3模型的每層輸出。 例如,我向這個網絡提供一個圖像,我不僅要獲得它的輸出,還要獲得每個圖層的輸出(逐層)。預訓練初始v3模型(tensorflow)的圖層名稱
爲了做到這一點,我必須知道每個圖層輸出的名稱。這是很容易爲去年和前最後一層做:
sess.graph.get_tensor_by_name('pool_3:0')
sess.graph.get_tensor_by_name('softmax:0')
(名稱pool_3:0和SOFTMAX:0在相關模型的來源列出)
但是如果我想要得到的輸出不僅是最後一層還是最後一層,還有前置前置,前置前置前置等,這個模型的任何層的輸出?
然後我必須知道圖層名稱。類似的問題has been asked 在stackoverflow上,但只有名稱爲pre-last和last層,它們也可以在源代碼中註釋('pool_3:0','softmax:0')
顯而易見的方法獲取名稱是繪製模型的圖形。但情況並非如此because graph-drawing tool simply crashes。 也有一個issue與此相關。
我也試過:
- 要打印所有圖節點名稱和構建圖形只能用從節點名稱的信息。但節點名稱相當隱祕。另外節點之間的連接並不是那麼明顯,因爲inception v3 architecture所以不知道節點之間的連接,這種方法就好像打破了謎團的代碼:)
- 然後我試圖用自己寫的工具繪製這個模型的圖(獲得給定節點的所有輸入(比如'pool_3:0'),然後得到每個'pool_3:0'輸入的所有輸入等等。這種方法適用於簡單模型,但是當我嘗試將它用於inceptionv3從圖像識別教程的實現,我已經有16 GB的RAM使用,然後10 GB的交換,然後我只是停下來看看引擎蓋下。也許有一些週期圖(但如果網絡是如何前饋?)
所以,也許有人蔘加了這個預訓練的m odel實現&'shipping'正在讀取計算器。
或者也許有人已經得到了這個模型的圖層名稱。 請與我和ml社區分享。提前致謝!
實際上,tensorflow附帶的pretrained inceptionv3模型缺少了model.txt文件。所以我已經問過我可以在哪裏下載model.txt文件,並將其發佈到您提到的問題的評論中。至於(2) - 是的!我真的忘了重複條目的可能性。你的回答幫了我很多! –