2016-07-26 2 views
0

목표는 회전 변수 인 쎄타를 기반으로 회전 행렬을 생성하는 것입니다.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()로 텐서에서 서브 - 텐서를 추출하는 것)

어떻게 회전 행렬을 올바르게 만들 수 있습니까?

답변

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()를 사용하여 하나의 텐서,으로 바꿀 수 있습니다.

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

관련 문제