2

我見過this博客文章,它描述瞭如何使用Google的圖像分類模型Inception V3對圖像中的對象進行本地化。使用開始V3本地化Tensorflow中的對象V3

「我們可以解釋8x8x2048表示爲特徵的網格, 打破圖像分解成8個水平和8個垂直網格 正方形。」

任何人都可以解釋我如何可以訪問python的初始的8x8x2048層?然後使用1x1卷積將這些向量中的每一個映射到類標籤?

謝謝!

回答

5

inception model in tensorflow's repo調用inception.slim.inception_v3函數,您需要修改網絡here以爲1x1卷積添加一個圖層。

變化會非常小,您可以按照構建其他圖層的方式進行。簡單地說,該層是這樣的:

net = ops.conv2d(net, 2048, [1, 1]) 
+0

Thanks for your informative answer。鏈接是一個很大的幫助! 如果我在這裏添加「打印」到[細長啓動模型的第78行](https://github.com/tensorflow/models/blob/master/inception/inception/slim/inception_model.py#L78)當我運行[此代碼]時,沒有任何反應(https://gist.githubusercontent.com/wolffg/541c97a74dfc0d77c4b8fd2a946a5b41/raw/578853dd26180dbf5bfc66eb40fdd13fb3aba4d6/TensorFlow%2520codelab),由Google提供。 在提供的Google代碼中,是不是運行超薄啓動模型?是否可以告訴它使用超薄模型? 謝謝! –

+0

您指向我的代碼沒有使用slim函數,您可以看看如何使用slim函數:https://github.com/tensorflow/models/blob/master/inception/inception/inception_model.py #L81 – yuefengz

+0

您的代碼從「/tf_files/retrained_graph.pb」中讀取圖表。我想這不是你打算做的。你必須建立你自己的圖。 – yuefengz

0

我發現你可以得到8x8x2048

​​

預測現在有8x8x2048

但是我還沒有想出如何獲得從 「2048」 class值

我想

import tensorflow.contrib.slim as slim 

predictions = sess.run(tensor, decoded) 
ppp= slim.conv2d(predictions,2048,[1,1]) 
x=tf.unstack(ppp) 

但是這給回的張量

張量( 「轉化/ RELU:0」,形狀=(1,8,8,... 2048),D型細胞= FLOAT32,設備= /裝置:CPU:0)

tf.Tensor'unstack:0'shape =(8,8,2048)dtype = float32 >]

相關問題