我的成本函数涉及矩阵
T=[[1.0-a,b],[a,1.0-b]]
我可以定义
import numpy as np
import tensorflow as tf
a=0.3
b=0.4
T = tf.Variable([[1.0-a,b],[a,1.0-b]]
这在优化中效果很好,但后来我说我有四个变量:1-a,b,a,1-b(渐变有四个元素)。另一方面,我希望我的变量是两个:a和b(渐变有两个元素)。
我想做像
这样的事情var = tf.Variable([a,b])
T = tf.constant([[1.0-var[0],var[1]],[var[0],1.0-var[1]]])
但这不起作用,输出以下内容:
TypeError: List of Tensors when single Tensor expected
那么如何构造由tf.Variable对象构成的张量?
谢谢。
答案 0 :(得分:2)
我认为你需要的是:
import tensorflow as tf
a = tf.Variable(0.3)
b = tf.Variable(0.4)
T = tf.convert_to_tensor([[1.0 - a, b], [a, 1.0 - b]]
答案 1 :(得分:1)
将T初始化为占位符。
T = tf.placeholder(tf.float32, [2, 2])
开始会话时,请计算T并通过feed_dict
:
with tf.Session() as sess:
a, b = .3, .4
inp = np.array([[1 - a, b], [a, 1 - b]])
sess.run(optimizer, feed_dict={T : inp})
optimizer
是最小化成本函数的节点。