我的目标是根据旋转变量θ生成旋转矩阵。
到目前为止,这是我的代码:
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
。我之所以这样,是因为cos
和sin
是张量。但是我找不到任何从张量中提取值的方法。 (仅使用tf.slice()从张量中提取子张量)
如何正确创建旋转矩阵?
答案 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]])