私はtf.Variable()を作成して、その変数を使用して単純な関数を作成してから、元の変数をtf.reshape()で平坦化してから、関数と平坦化された変数の間でtf.gradients 。なぜそれは[None]を返しますか?Tensorflow Reshape tf.reshape()はグラデーションの流れを壊すのはなぜですか?
var = tf.Variable(np.ones((5,5)), dtype = tf.float32)
f = tf.reduce_sum(tf.reduce_sum(tf.square(var)))
var_f = tf.reshape(var, [-1])
print tf.gradients(f,var_f)
上記のコードブロックが実行されると[なし]が返されます。これはバグですか?助けてください!
[基本TFチュートリアル](https://www.tensorflow.org/versions/r0.12/get_started/basic_usage#launching_the_graph_in_a_session)に示すように、 'session'で実行する必要があります。 – jkschin
@jkschinこれはこの場合には当てはまりません。コードは計算グラフ内で何も実行していません。計算グラフのみを定義しています。自分で試してみてください - スニペットはセッションの有無にかかわらず同じように動作します。 – kdbanman