每天学一点tensorflow——tf.reshape(tensor,shape)

今天学习学习手写识别过程中,突然想对reshape函数深入了解。

原因是tensorflow在建立占位符x = tf.placeholder(tf.float32,[None,784])之后,为什么进过reshape之后,能够显示图像,猜想reshape函数肯定是对每一行进行reshape。

猜想如下:

假设x.shape=(16,9),经过y=tf.reshape(x,[-1,3,3,1])之后,肯定是y.shape(16,3,3,1),然后将16个batch中的3*3*1图像进行显示。

代码如下:

import tensorflow as tf
v7_1 = tf.range(1, 17, 1)#just int32
v7 = tf.reshape(v7_1,[16,1])
multi = tf.tile(v7, multiples=[ 1, 9])#扩充成16*9
print(sess.run(multi))
v7 = tf.reshape(multi,[-1,3,3,1])
print(sess.run(v7))

结果如下:

#multi
[[ 1  1  1  1  1  1  1  1  1]
 [ 2  2  2  2  2  2  2  2  2]
 [ 3  3  3  3  3  3  3  3  3]
 [ 4  4  4  4  4  4  4  4  4]
 [ 5  5  5  5  5  5  5  5  5]
 [ 6  6  6  6  6  6  6  6  6]
 [ 7  7  7  7  7  7  7  7  7]
 [ 8  8  8  8  8  8  8  8  8]
 [ 9  9  9  9  9  9  9  9  9]
 [10 10 10 10 10 10 10 10 10]
 [11 11 11 11 11 11 11 11 11]
 [12 12 12 12 12 12 12 12 12]
 [13 13 13 13 13 13 13 13 13]
 [14 14 14 14 14 14 14 14 14]
 [15 15 15 15 15 15 15 15 15]
 [16 16 16 16 16 16 16 16 16]]
#v7
[[[[ 1]
   [ 1]
   [ 1]]

  [[ 1]
   [ 1]
   [ 1]]

  [[ 1]
   [ 1]
   [ 1]]]


 [[[ 2]
   [ 2]
   [ 2]]

  [[ 2]
   [ 2]
   [ 2]]

  [[ 2]
   [ 2]
   [ 2]]]


 [[[ 3]
   [ 3]
   [ 3]]

  [[ 3]
   [ 3]
   [ 3]]

  [[ 3]
   [ 3]
   [ 3]]]


 [[[ 4]
   [ 4]
   [ 4]]

  [[ 4]
   [ 4]
   [ 4]]

  [[ 4]
   [ 4]
   [ 4]]]


 [[[ 5]
   [ 5]
   [ 5]]

  [[ 5]
   [ 5]
   [ 5]]

  [[ 5]
   [ 5]
   [ 5]]]


 [[[ 6]
   [ 6]
   [ 6]]

  [[ 6]
   [ 6]
   [ 6]]

  [[ 6]
   [ 6]
   [ 6]]]


 [[[ 7]
   [ 7]
   [ 7]]

  [[ 7]
   [ 7]
   [ 7]]

  [[ 7]
   [ 7]
   [ 7]]]


 [[[ 8]
   [ 8]
   [ 8]]

  [[ 8]
   [ 8]
   [ 8]]

  [[ 8]
   [ 8]
   [ 8]]]


 [[[ 9]
   [ 9]
   [ 9]]

  [[ 9]
   [ 9]
   [ 9]]

  [[ 9]
   [ 9]
   [ 9]]]


 [[[10]
   [10]
   [10]]

  [[10]
   [10]
   [10]]

  [[10]
   [10]
   [10]]]


 [[[11]
   [11]
   [11]]

  [[11]
   [11]
   [11]]

  [[11]
   [11]
   [11]]]


 [[[12]
   [12]
   [12]]

  [[12]
   [12]
   [12]]

  [[12]
   [12]
   [12]]]


 [[[13]
   [13]
   [13]]

  [[13]
   [13]
   [13]]

  [[13]
   [13]
   [13]]]


 [[[14]
   [14]
   [14]]

  [[14]
   [14]
   [14]]

  [[14]
   [14]
   [14]]]


 [[[15]
   [15]
   [15]]

  [[15]
   [15]
   [15]]

  [[15]
   [15]
   [15]]]


 [[[16]
   [16]
   [16]]

  [[16]
   [16]
   [16]]

  [[16]
   [16]
   [16]]]]

v7.shape=(16,3,3,1)

你可能感兴趣的:(每天学一点tensorflow——tf.reshape(tensor,shape))