私はNMTモデルに触発されたモデルを実装しています。 TFRecordDatasetを使用してモデルをフェッチしてモデルにフィードするために、TFRecordsファイルとして格納されたトレーニングセットを使用しています。次のGoogleのrecommendations入力パイプラインパフォーマンスの改善について、私が持っている:Tensorflowデータセットのパフォーマンスですか?
- さは約100メガバイトTFrecordsファイル(より多くの例を含む以下のファイルを持つ) まで事前にCPU上で可能な限り
- 積み重ねられたいくつかの訓練例を前処理
- は、データセット
map
操作でnum_parallel_calls
とprefetch
を使用しました。
しかし、GPUは最大40%のままで、CPUを実行した場合とほとんど同じ速度です。私はこのように、prefetch
オペレーションについて疑問を抱いています。
私が正しく理解していれば、それはN例をバッファリングし、特殊なスレッドを作成します。しかし、それはどういう意味ですか?バッファリングされていない他の例はどうなりますか?
は、プリフェッチバッファサイズ、完全なデータセットのサンプル数、およびバッチサイズの間に最適な関係がありますか? NMTコードでは、プリフェッチバッファサイズは
1000*batch_size
に設定されていますが、なぜですか?たとえば私は10000の例を使用しています、100のバッチサイズ、プリフェッチバッファサイズは何でしょうか?
データセットのスピードアップに関するその他のアドバイスは高く評価されます。