私はTensorFlow FIFOQueue
に特定の順序で項目をキューイングしていますが、同じ順序でそれらをデキューできると期待していますが、これは私が見ている動作ではありません。TensorFlow FIFOQueueはFIFOではありませんか?
次のスタンドアロンコードを実行すると、アプローチと動作が示されます。これはTensorFlow 1.1でPython 2.7(でもPython 3でも動作するかもしれません)で動作しています。
期待される出力は、実際の出力は、バッチ0と1のステップの順序が正しくないこと
Batch 0, step 0
[[ 0 1]
[ 5 6]
[10 11]]
Batch 0, step 1
[[ 4]
[ 9]
[14]]
Batch 0, step 2
[[ 2 3]
[ 7 8]
[12 13]]
Batch 1, step 0
[[15 16]
[20 21]
[25 26]]
Batch 1, step 1
[[19]
[24]
[29]]
Batch 1, step 2
[[17 18]
[22 23]
[27 28]]
Batch 2, step 0
[[30 31]]
Batch 2, step 1
[[32 33]]
Batch 2, step 2
[[34]]
注ある
Batch 0, step 0
[[ 0 1]
[ 5 6]
[10 11]]
Batch 0, step 1
[[ 2 3]
[ 7 8]
[12 13]]
Batch 0, step 2
[[ 4]
[ 9]
[14]]
Batch 1, step 0
[[15 16]
[20 21]
[25 26]]
Batch 1, step 1
[[17 18]
[22 23]
[27 28]]
Batch 1, step 2
[[19]
[24]
[29]]
Batch 2, step 0
[[30 31]]
Batch 2, step 1
[[32 33]]
Batch 2, step 2
[[34]]
あります。私はステップの順序が何であるかを判断することができませんでした。バッチは常に順番になっているように見えますが、各バッチ内のステップは「ランダム」な順序で出てきます。決定的に見えますが、FIFOではありません。
私は、上記のコードで使用されている明示的な依存関係宣言の有無にかかわらず試しました。私はキュー容量を1に設定しようとしました。私はtf.group
を使用する代わりにenqueue_ops=enqueue_ops
を設定しようとしましたが、これらの変更は役に立たず、最後のものは非常に奇妙な出力を引き起こしました。
tf.group
多分依存関係を無視しますか?