2016-07-26 13 views
0

私の目標は、回転変数、thetaに基づいて回転行列を生成することです。TensorFlowのangle変数から回転行列を作成する

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]]) 

は、上記得られます:5行目のため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]])

関連する問題