conformer
v1.0

コンフォーマーのPytorch実装:音声認識のための畳み込み熟成トランス。
トランスモデルは、コンテンツベースのグローバルインタラクションをキャプチャするのに優れていますが、CNNはローカル機能を効果的に活用しています。コンフォーマーは、畳み込みニューラルネットワークとトランスを組み合わせて、パラメーター効率の良い方法でオーディオシーケンスのローカルおよびグローバル依存関係の両方をモデル化します。コンフォーマーは、最先端の精度を達成する以前の変圧器とCNNベースのモデルを大幅に上回ります。

このリポジトリにはモデルコードのみが含まれていますが、OpenSpeechでコンフォーマーでトレーニングできます
このプロジェクトでは、Python 3.7以降を推奨しています。このプロジェクトに新しい仮想環境を作成することをお勧めします(仮想ENVまたはコンドラを使用)。
pip install numpy (numpyのインストールの問題についてはこちらを参照)。現在、SetUptoolsを使用してソースコードからのインストールのみをサポートしています。ソースコードをチェックアウトし、次のコマンドを実行します。
pip install -e .
import torch
import torch . nn as nn
from conformer import Conformer
batch_size , sequence_length , dim = 3 , 12345 , 80
cuda = torch . cuda . is_available ()
device = torch . device ( 'cuda' if cuda else 'cpu' )
criterion = nn . CTCLoss (). to ( device )
inputs = torch . rand ( batch_size , sequence_length , dim ). to ( device )
input_lengths = torch . LongTensor ([ 12345 , 12300 , 12000 ])
targets = torch . LongTensor ([[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 5 , 6 , 2 ],
[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 5 , 2 , 0 ],
[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 2 , 0 , 0 ]]). to ( device )
target_lengths = torch . LongTensor ([ 9 , 8 , 7 ])
model = Conformer ( num_classes = 10 ,
input_dim = dim ,
encoder_dim = 32 ,
num_encoder_layers = 3 ). to ( device )
# Forward propagate
outputs , output_lengths = model ( inputs , input_lengths )
# Calculate CTC Loss
loss = criterion ( outputs . transpose ( 0 , 1 ), targets , output_lengths , target_lengths )ご質問があり、バグレポート、機能リクエストがある場合は、githubで問題を開きます。
連絡先[email protected]をお願いします。
どんな種類のフィードバックや貢献に感謝します。バグ修正、ドキュメントの改善などの小さな問題を自由に進めてください。主要な貢献と新機能については、対応する問題について協力者と話し合ってください。
コードスタイルについては、PEP-8をフォローします。特に、ドキュメントのスタイルはドキュメントを生成するために重要です。