0

結果アグリゲーターとして機能する tf.Variable tensor があります。

アイデアは、データのバッチを使用してグラフで操作を実行し、結果を結果変数に新しい行として追加することです。

最初は変数を空にする必要があるため、次のように初期化します。

result_tensor = tf.Variable(0, expected_shape=[0, 5], dtype=tf.float32)

次に、軸 0 に沿って新しい行を (新しい行として) 連結します。

total_output = tf.concat([result_tensor, operation], 0)

最後に、変数を再割り当てします。

assign_op = tf.assign(result_tensor, total_output, validate_shape=False)

ただし、これをすべて実行すると、次のエラーが発生します。

ValueError: Shape must be rank 0 but is rank 2 for 'concat_1' (op: 'ConcatV2') with input shapes: [], [?,25088], [].

私が間違っている明らかなことを見つけるのを手伝ってもらえますか?

ありがとう!

4

1 に答える 1

0

result_tensor0 を入力して作成しています。これresult_tensorは、期待どおりの行ではなく、スカラー値であることを意味します。プロパティはそれexpected_shapeを修正しません。

代わりに、追加する行のサイズが 25088 であるように宣言result_tensorする必要があります。tf.zeros([1, 25088])次に、すべての結果が得られたら、最初の行をスライスして削除します。

注: このtf.Variableクラスは結果を保存するためのものではなく、トレーニング可能な値をグラフに追加するためのものです。Tensorflow を使用したすべての実験で、Tensorflow を使用する必要はありませんでした。一度もありません。tf.layersモジュールには通常、必要なものがすべて含まれています。

于 2017-11-09T15:09:11.597 に答える