1
我試圖降低圖像的分辨率以加快培訓。所以我使用tf.nn.max_pool方法來操作我的原始圖像。我期待得到的圖像是一個尺寸較小的模糊圖像,但事實上並非如此。最大池的行爲混淆在Tensorflow
而且max_pooling後,用ksize=[1,2,2,1]
和strides=[1,2,2,1]
變得
由所產生的以下代碼:
# `img` is an numpy.array with shape [320, 240, 3]
# since tf.nn.max_pool only receives tensor with size
# [batch_size, height,width,channel], so I need to reshape
# the image to have a dummy dimension.
img_tensor = tf.placeholder(tf.float32, shape=[1,320,240,3])
pooled = tf.nn.max_pool(img_tensor, ksize=[1,2,2,1], strides=[1,2,2,1],padding='VALID')
pooled_img = pooled.eval(feed_dict={img_tensor: img.reshape([1,320,240,3])})
plt.imshow(np.squeeze(pooled_img, axis=0))
彙集的im年齡已經形成[160,120,3],這是預期的。它的轉變行爲讓我很困惑。它不應該有「重複轉移」行爲,因爲沒有像素重疊計算。
非常感謝提前。
確實!啊,多麼愚蠢的錯誤......謝謝Danevskyi! – Xer