2016-06-25 9 views
0

でプレースホルダを掛ける期待のfloat32ちょっとそこに私はtensorflowで自分自身を理解しようとすると、このエラーと問題を抱えています、Googleはあまり提供されていません...はTypeError:勾配

エラーが「C」プレースホルダから茎乗算。

x = tf.placeholder(tf.float32) 
c = tf.placeholder(tf.float32) 
y = x**2 
g = tf.gradients(y, x) * c 

tf.Session().run(g, {x:[1,1],c:[-1,-1]}) 

エラー:エラーは、私はそれを

コードを削除すると消え

TypeError: Expected float32, got list containing Tensors of type '_Message' instead. 

答えて

2

ここでの問題はtf.gradients()はテンソルのリストを返すことである(その引数は、単一のテンソルであっても、残念ながら他のTensorFlow APIのいくつかと矛盾しています)。したがって、戻り値の0番目の要素を取る必要があります。

g = tf.gradients(y, x)[0] * c