我不确定这是否可能,但我想要的是在下面的第一个打印声明中,我会得到一个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
答案 0 :(得分:4)
根据documentation变量形状无法更改。
Variable()
构造函数需要变量的初始值,该值可以是任何类型和形状的张量。初始值定义变量的类型和形状。 构建后,变量的类型和形状是固定的。可以使用其中一种赋值方法更改该值。
(强调补充)
答案 1 :(得分:2)
解决方案是使用占位符。
让我们说你正在尝试学习矩阵M的值。
请注意使用"无"在占位符的形状允许您提供不同大小的输入。
data('daterangepicker')