TensorFlow变量增加形状

时间:2018-03-29 07:14:21

标签: python tensorflow

我不确定这是否可能,但我想要的是在下面的第一个打印声明中,我会得到一个3条目的列向量,在下面的第二个打印语句中,我会得到一个4项列向量。

import tensorflow as tf

# Mx = b
M = tf.Variable([[1,2,3],[4,5,6],[7,8,9]],validate_shape=False)
x = tf.Variable([[1],[2],[3]])
b = tf.matmul(M,x)


init = tf.global_variables_initializer()

with tf.Session() as sess:
        sess.run(init)
        print(sess.run(b))
        M.load([[1,2,3],[4,5,6],[7,8,9],[10,11,12]],sess)
        print(sess.run(b))

此代码不起作用,因为“load”对形状错误大喊:

  

ValueError:无法为Tensor提供形状值(4,3)   'Variable / initial_value:0',其形状为'(3,3)'

同样重塑不起作用,因为我想实际增加矩阵中的条目总数。

有没有简单的方法可以做到这一点? (最好不要在我的计算图中添加更多节点)

谢谢, JacKeown

2 个答案:

答案 0 :(得分:4)

根据documentation变量形状无法更改。

  

Variable()构造函数需要变量的初始值,该值可以是任何类型和形状的张量。初始值定义变量的类型和形状。 构建后,变量的类型和形状是固定的。可以使用其中一种赋值方法更改该值。

(强调补充)

答案 1 :(得分:2)

解决方案是使用占位符。

让我们说你正在尝试学习矩阵M的值。

请注意使用"无"在占位符的形状允许您提供不同大小的输入。

data('daterangepicker')