Tensorflow 从张量流中的角度变量构造旋转矩阵

Tensorflow 从张量流中的角度变量构造旋转矩阵,tensorflow,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:当第五行需要单个张量时的张量列表。我得到这个是因为cos和sin是张

我的目标是基于旋转变量θ生成旋转矩阵

以下是我目前的代码:

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:当第五行需要单个张量时的张量列表。我得到这个是因为
cos
sin
是张量。但我找不到从张量中提取值的方法。(仅使用tf.slice()从张量中提取子张量)


如何正确创建旋转矩阵?

您可以将其制作为张量列表并获取该列表。现在你有一个张量和数字的混合体,你不能按原样提取

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()
,将其转换为单个张量,它会自动将数字(以及数字的列表和数组)转换为张量


rot_matrix=tf.pack([[cos,-sin,0],[sin,cos,0]])
你可以把它做成一个张量列表,然后取出来。现在你有一个张量和数字的混合体,你不能按原样提取

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()
,将其转换为单个张量,它会自动将数字(以及数字的列表和数组)转换为张量

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