如何在TensorFlow中更改变量的形状?

Jad*_*mas 21 matrix reshape tensorflow

TensorFlow教程说,在创建时我们需要指定张量的形状.那个形状自动变成张量的形状.它还说TensorFlow提供了重塑变量的高级机制.我怎样才能做到这一点?任何代码示例?

mrr*_*rry 19

tf.Variable班是创建变量是推荐的方式,但它限制你一旦它已经建立,以改变变量的形状的能力.

如果需要更改变量的形状,可以执行以下操作(例如,对于32位浮点张量):

var = tf.Variable(tf.placeholder(tf.float32))
# ...
new_value = ...  # Tensor or numpy array.
change_shape_op = tf.assign(var, new_value, validate_shape=False)
# ...
sess.run(change_shape_op)  # Changes the shape of `var` to new_value's shape.
Run Code Online (Sandbox Code Playgroud)

请注意,此功能不在记录的公共API中,因此可能会发生变化.如果您确实发现需要使用此功能,请告诉我们,我们可以调查一种方法来支持它向前发展.


Raf*_*icz 6

从TensorFlow文档中了解形状和形状.它描述了可用的不同形状变换.

最常见的功能可能是tf.reshape,类似于它的numpy等价物.只要元素数保持不变,它允许您指定所需的任何形状.文档中提供了一些示例.