1
トレーニングのスピードアップのために画像の解像度を下げようとしています。だから私は生のイメージを操作するためにtf.nn.max_poolメソッドを使いました。私は結果として得られる画像がより小さなサイズのぼやけた画像であると予想していますが、実際はそうではありません。Tensorflowでmax poolingの動作が混乱しています
マイRAW画像は[320、240 3]の形状を有し、それはのように見える:
そしてksize=[1,2,2,1]
とstrides=[1,2,2,1]
と、max_pooling後により生成
なります次のコード:
# `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]。その変換動作だけで私は本当に混乱しています。それはピクセルの重なり合う計算がないので、その "繰り返されるシフト"行動を持ってはいけません。
事前に感謝します。
実際に!ああ、なんて愚かな間違い...ダネフスキーありがとう! – Xer