問題タブ [spacy-transformers]
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.
machine-learning - spacy-pytorch-transformers: トレーニング中に常に損失 = 0
テキスト分類器をトレーニングするためにspacy 2.1.8
andを使用しています。spacy-pytorch-transformers 0.4.0
私のコードは彼らの例から強くインスピレーションを受けていますが、モデルは何も学習していません。これは、損失が常に 0 であることが原因のようです。私のコードの最小の(動作しない)例は次のとおりです。
cats
やなどの関連する変数にtexts
有効で正しい値が含まれていることを、すでに 2 重および 3 重にチェックしました。
足りないものはありますか?
python - spacy-pytorch-transformers でのトークン ベクトルの計算方法
現在、spacy-pytorch-transformer
パッケージを使用して、それぞれの埋め込みを実験しています。
紹介記事 (本質的には GitHub README) を読んだとき、トークンレベルの埋め込みは、対応するすべての単語部分の埋め込みの平均である、つまりembed(complex)
と同じであると理解しました1/2 * embed(comp#) * embed(#lex)
。
BERT の論文によると、これは単にlast_hidden_state
ネットワークのプロパティを利用する必要がありますが、以下の私の MCVE は、これが Spacy 2.1.8 と spacy-pytorch-transformers 0.4.0 では同じではないことを示しています。他のモデルでは検証されていません):
隠れ状態のオフセット 1 は<CLS>
、文分類タスクに対応する最初の入力としてのトークンによるものです。私は自分の文に使用可能な他のトークンを使用してチェックしたこともあり (これには によるトークンの配置の問題doc._.pytt_alignment
はありません)、ここで何かを見逃すことはありません。
ソース コード によると、対応するフックはテンソル内の対応する行を返すために単純に上書きされるため、ここでは変換は見られません。ここで私が見逃していることは明らかですか、それとも予想される動作から逸脱していますか?
python - トレーニング関数が「名前の減衰が定義されていません」という名前のエラーをスローするのはなぜですか?
したがって、私は NLP を初めて使用し、spacy_transformers を使用してテキスト分類子をトレーニングしようとしています。このコードは実行されることが示されていますが、コンピューターでエラーが発生します。ちなみに、CPUで実行している脂肪が原因でしょうか?
そして、関数を渡すと
次のエラーが表示されます