我是tensorflow的新手,想知道是否可以在张量中调整单个维度。
让我有一个给定的张量:
t = [[1, 10], [2, 20]]
shape(t) = [2, 2]
现在我想修改这个张量的形状,以便:
shape(t) = [2, 3]
到目前为止,我刚刚找到了这些功能:
重塑 - >这个函数能够以这样的方式重塑张量,即维数的总数保持不变(据我所知)
shape(t) = [1, 3] | [3, 1] | [4]
expand_dims - >此功能可以添加新的1维维度
shape(t) = [1, 2, 2] | [2, 1, 2] | [2, 2, 1]
是否符合我描述的目的?如果没有:为什么? (也许拥有这样的功能没有意义吗?)
亲切的问候
答案 0 :(得分:0)
使用tf.concat
可以做到。这是一个例子。
import tensorflow as tf
t = tf.constant([[1, 10], [2, 20]], dtype=tf.int32)
# the new tensor w/ the shape of [2]
TBA_a = tf.constant([3,30], dtype=tf.int32)
# reshape TBA_a to [2,1], then concat it to t on axis 1 (column)
new_t = tf.concat([t, tf.reshape(TBA_a, [2,1])], axis=1)
sess = tf.InteractiveSession()
print(new_t.eval())
它会给我们
[[ 1 10 3]
[ 2 20 30]]