在TensorFlow

时间:2016-07-26 22:08:18

标签: tensorflow

我的目标是根据旋转变量θ生成旋转矩阵。

到目前为止,这是我的代码:

initial = 0.0
theta = tf.Variable(initial_value=initial, name='theta')
sin = tf.sin(theta)
cos = tf.cos(theta)
rot_matrix = tf.constant([[cos, -sin, 0], [sin, cos, 0]])

上面给出了第五行的TypeError: List of Tensors when single Tensor expected。我之所以这样,是因为cossin是张量。但是我找不到任何从张量中提取值的方法。 (仅使用tf.slice()从张量中提取子张量)

如何正确创建旋转矩阵?

1 个答案:

答案 0 :(得分:2)

你可以把它作为张量列表并获取它。现在你有一个你无法取得的张量和数字的混合。

initial = 0.0
theta = tf.Variable(initial_value=initial, name='theta')
sin = tf.sin(theta)
cos = tf.cos(theta)
rot_matrix = [[cos, -sin, tf.constant(0)], [sin, cos, tf.constant(0)]]
sess = tf.Session()
sess.run(tf.initialize_all_variables())
sess.run(rot_matrix)

或者您可以使用tf.pack()将其转换为单个Tensor,它会自动将数字(以及列表和数字数组)转换为张量。

rot_matrix = tf.pack([[cos, -sin, 0], [sin, cos, 0]])