2016-06-14 4 views
2

tf.train.string_input_producer(string_tensor, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, name=None)capacity引数は私にとってかなり曖昧です。tf.train.string_input_producer()の引数 "capacity"は何ですか?

ここでcapacity引数を設定することは何を意味しますか。それは引数string_tensorの長さと関係があります。 例が素晴らしいでしょう。 多くのありがとうございます。

答えて

3

能力はあなたの例では、キューランナーは、デフォルトでキューに32列までキューに入れることができるようにstring_input_producerため

+0

32はいつも十分ですか?あるいは、キューを使用してグラフの入力またはノードのサイズに適応する必要がありますか? –

+1

これは本質的にプリフェッチバッファのサイズなので、データIOが予測不可能な場合はそれが大きくなるはずです。各input_producerからTensorBoardにエクスポートされた要約統計量は、「fraction_full」のようなもので、0の頻度を示しています。通常0の場合は、キューランナーを追加したい場合があります。バッファはもっと大きいはずです –

+0

@ YaroslavBulatov、 "prefetching buffer"について詳しく説明できますか?さらに、容量について提案された数はありますか?最後に、容量は 'string_order'の長さとは無関係ですが、これは正しいのですか? – ZijunLost

0

容量がキューに保持できる要素の最大数である、キューのサイズです任意の時間。モデルが十分でないデータから飢えてしまわないように、数値を十分に高く設定する必要があります。しかし、あまりにも高く設定すると、キューはあまりにも多くのメモリを消費します。

最良の番号はモデル固有のもので、試行錯誤で見つけることができます。合理的に小さい数字から開始し、キューが空の頻度を確認します。空のキューが見えなくなるまでバッファを増やしてください。

+0

キューが空の場合、すぐにOutOfRangeErrorをスローしますか? – LKS

関連する問題