tf.reshape()
# 省略:
sess = tf.Session()
print(sess.run(...))
1. 把张量变为标量
tt1 = tf.constant([7])
# reshape成标量
tt1_r = tf.reshape(tt1,[])
# output:7
2. 改变张量形状
# shape=(9,)
t1 = tf.constant([1, 2, 3, 4, 5, 6, 7, 8, 9])
# reshape成(3,3)
t1_r = tf.reshape(t1, [3, 3])
# output:
#[[1 2 3]
# [4 5 6]
# [7 8 9]]
# shape=(2, 2, 2)
t2 = tf.constant( [[[1, 1], [2, 2]],[[3, 3], [4, 4]]] )
# reshape成(2, 4)
t2_r = tf.reshape(t2, [2, 4])
# output:
# [[1 1 2 2]
# [3 3 4 4]]
2. 带有-1值时
# 平铺
# shape=(3, 2, 3)
t3 = tf.constant([[[1, 1, 1],
[2, 2, 2]],
[[3, 3, 3],
[4, 4, 4]],
[[5, 5, 5],
[6, 6, 6]]])
# reshape成(18,)
t3_r = tf.reshape(t3,[-1])
# output:[1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6]
# “未知值”功能
# reshape成(2, 9),9是reshape自己推测出来的。
t3_rr = tf.reshape(t3,[2, -1])
# output:
# [[1 1 1 2 2 2 3 3 3]
# [4 4 4 5 5 5 6 6 6]]
# reshape成(2, 9),2是reshape自己推测出来的。
t3_rrr = tf.reshape(t3,[-1, 9])
# output:
# [[1 1 1 2 2 2 3 3 3]
# [4 4 4 5 5 5 6 6 6]]
# reshape成(2, 3, 3),中间的3是reshape自己推测出来的。
t3_rrrr = tf.reshape(t3,[2, -1, 3])
# output:
# [[[1 1 1]
# [2 2 2]
# [3 3 3]]
# [[4 4 4]
# [5 5 5]
# [6 6 6]]]
注意,reshape的值中最多只能有一个-1出现。