問題タブ [beam-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
591 参照

python - ベクトル化されたビーム検索デコーダーは GPU では高速ではありません - Tensorflow 2

tf.keras.Modelベクトル化された方法でRNNビーム検索を実行して、GPUで完全に機能させようとしています。tf.functionただし、すべてをベクトル化したにもかかわらず、GPU の有無にかかわらずまったく同じ速度で実行されます。添付は、偽のモデルを使用した最小限の例です。実際には、n=32、k=32、steps=128 の場合、これは私が使用したいものであり、CPU と GPU の両方でデコードに 20 秒 (n=32 サンプルあたり) かかります!

私は何かが欠けているに違いない。モデルをトレーニングすると、GPU ではバッチ サイズ 512 のトレーニング イテレーション (128 ステップ) に 100 ミリ秒かかり、CPU ではバッチ サイズ 32 のトレーニング イテレーションに 1 秒かかります。GPU はバッチ サイズ 512 では飽和しません。ステップを個別に実行し、ステップごとにブロック操作を実行することによるオーバーヘッドがあることがわかりますが、計算に関しては、モデルの残りの部分と比較してオーバーヘッドは無視できます。

また、この方法で a を使用することtf.keras.Modelはおそらく理想的ではないこともわかりますが、関数を介して出力テンソルを入力テンソルに配線し、特に状態を再配線する別の方法はありますか?

完全な作業例: https://gist.github.com/meowcat/e3eaa4b8543a7c8444f4a74a9074b9ae