2016-06-19 72 views

回答

1

這是一個基本的例子。

定義layer1,layer2,layer3等,然後在下面連接它們,現在你有你的超列。

conv1 = tf.nn.conv2d(image, weights, [1, 1, 1, 1], 'SAME') 
layer1 = tf.image.resize_bilinear(conv1, (224, 224)) 
... 
layer2 = tf.image.resize_bilinear(conv2, (224, 224)) 
... 
layer3 = tf.image.resize_bilinear(conv3, (224, 224)) 
return(tf.concat(0, [layer1, layer2,layer3])) 
+0

thanks @Steven!此外,有沒有什麼辦法可以執行正常卷積並保留最後一層卷積的像素/值的超列?例如,如果輸入是244x244,卷積的最終輸出是7x7,那麼只需保持距離每個先前層的7x7值相等的距離,然後連接它們? –

+0

我可能需要你對你想完成的事情做更具體的描述。 因此,超級列的概念比輸入圖像的大小甚至列的大小更普遍。 例如: 假設輸入大小如您所說244x244x3(3個顏色通道) 第一層變爲一半這樣122x122x16 下一層(和最後一層)是7x7x65。 現在最簡單的做法是做tf.image.resize_bilinear(layer1,(224,224))和第二層相同,但並不一定如此。你也可以線性化兩個圖層,並以這種方式連接它們(但是會丟失空間信息)。 – Steven

+0

您還可以看看張量流動中的解耦(聽起來像您想要的),儘管此時它仍在開發中。你可以在這裏觀看https://github.com/tensorflow/tensorflow/issues/2169 – Steven