2017-03-19 272 views
0

我有一個尺寸爲32 * 32 * 3的輸入圖像,其中3是輸入/顏色通道的數量。我正在嘗試卷積和最大化結果。輸出時尺寸不匹配

spatial_glimpse_layer.py

class SGN(object): 
    def __init__(self, w=32, filter_size=5, num_filters=96): 
     self.input_x = tf.placeholder(tf.float32, [None, w, w, 3], name="X_train") 
print(self.input_x) 

現在在我的控制我傳遞一個圖像到SGN和看到的結果。

controller.py

import read_data 
import tensorflow as tf 
import numpy as np 
import spatial_glimpse_network 

data = read_data.read() 

img = next(data) 
img = np.expand_dims(np.resize(img, (32, 32, 3)), 0) 
with tf.Graph().as_default(): 
    sess = tf.Session() 
    with sess.as_default(): 
     cnn = spatial_glimpse_network.SGN() 
     sess.run(tf.global_variables_initializer()) 
     pool = sess.run([cnn.input_x], feed_dict={cnn.input_x:img}) 
     print(img.shape) 
     print(np.array(pool).shape) 

輸出如下: -

Tensor("X_train:0", shape=(?, 32, 32, 3), dtype=float32) 
(1, 32, 32, 3) 
(1, 1, 32, 32, 3) 

正如我們可以看到,輸入是形​​式的1 * 32 * 32 * 3,其中1 =無批次

不應該最後輸出的形式是(1,32,32,3)?

有人可以幫忙嗎?

在此先感謝。

回答

1

我想原因是sess.run([cnn.input_x])[],它將返回列表

既然你只有一個參數,你可以使用sess.run(cnn.input_x),那麼結果應該是正確的

如果你有一個以上的參數
a_val, b_val = sess.run([a, b]) # split by it self,或
val = sess.run([a, b]) # get a list

+0

謝謝,它的工作:) – wadhwasahil