問題タブ [custom-training]

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 投票する
0 に答える
76 参照

python-3.x - tf.function を使用した Tensorflow 2.x でのマイクロバッチ処理 (勾配の累積)

テンソルフロー2.xでマイクロバッチ処理をどのように実装できますか? つまり、いくつかのバッチの勾配を蓄積し、これらの蓄積された勾配で重みを更新したいと考えています (これにより、実質的にバッチ サイズが累積ステップ * バッチ サイズに増加します)。

次のコードで試しました:

ただし、tf.range を使用するか、tf.function 装飾関数内で範囲を使用するかによって、2 つの異なる問題に遭遇しました。

  1. 範囲の使用: 提供されたミニ モデルで動作しますが、私のユース ケースではモデルがかなり大きく (2.6 Mio パラメータ)、このような勾配を累積すると、次のエラーが発生します。

2021-04-24 18:19:28.349940: W tensorflow/core/common_runtime/process_function_library_runtime.cc:733] マルチデバイス関数の最適化の失敗を無視: 期限を超えました: meta_optimizer が期限を超えました。

私の推測では、この部分を繰り返して一度だけ追加するのではなく、範囲を使用すると (tf.function がどのように機能するかを理解している限り)、すべての勾配累積ステップがグラフに追加されます。

  1. range を tf.range に置き換えると、次のエラーが発生します。

したがって、勾配、損失、予測など、発生するすべての変数を初期化してから動作しますが、(私の使用例では) 非常に遅いのはなぜですか?

何が欠けていますか?どんな助けでも大歓迎です。

0 投票する
0 に答える
218 参照

spacy - 複数の GPU (1 つだけでなく) での spaCy NER モデルのトレーニング

次のコードを使用して NER モデルをトレーニングしています。

コードの開始:

コードの終わり。

問題:

問題は、各反復に約 30 分かかることです。非常に長いテキストと 6 つのラベルを含む 8000 のトレーニング レコードがあります。

したがって、より多くの GPU コアを使用して削減したいと考えていましたが、使用されているコアは 1 つだけのようです。上記のコードで print(util.gpu) を実行すると、最初のコアだけがゼロ以外の値を返します。

質問 1: トレーニング プロセスを高速化するために、より多くの GPU コアを使用する方法はありますか? リードをいただければ幸いです。

さらに調査した結果、spacy-ray は並列トレーニングを可能にすることを目的としているようです。しかし、私が見つけたのは「python -m spacy ray train config.cfg --n-workers 2.

質問 2: Ray は GPU を使用した並列処理を有効にしますか? それは CPU コアのみですか?
質問 3: 「python -m spacy ray train config.cfg --n-workers 2」を使用するのではなく、nlp.update を使用して Python コードに Ray を統合するにはどうすればよいですか。?

ありがとうございました!

環境:

上記のコードはすべて、ml.p3.2xlarge EC2 インスタンスを使用する AWS Sagemaker 上の 1 つの conda_python3 ノートブックにあります。
使用したPython バージョン: 3
spaCy 使用したバージョン: 3.0.6

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

spacy - ラベルを適切に予測しない NER スペーシー カスタム トレーニング モデル

ドキュメントhttps://towardsdatascience.com/train-ner-with-custom-training-data-using-spacy-525ce748fab7およびサンプルによるhttps://spacy.io/usage/processing-pipelinesを使用してトレーニングされた NER スペーシー カスタム トレーニング モデルテスト ケース データセットを使用して、指定されたテキストで正確に通貨を見つけます。

データセットの例:

モデルに「通貨」という名前を付けることで、モデルのトレーニングに成功しました。適切なラベルを持つトレーニング済みデータセットには適切に予測しますが、ほとんどの場合、間違ったラベルを持つトレーニングされていないテキスト データを予測します。

入力テスト行: 'I have AZWSQTS lot LOT of Indian MZW currency USD INR'

出力:

AZWSQTS - CUR 、LOT - CUR、MZW - CUR、USD - CUR、INR - CUR

ここで、「AZWSQTS」と「LOT」は通貨ではありませんが、予測します。これが私が得ている問題です。

完全なコード: