問題タブ [tensor2tensor]
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.
python - mixin パターンによるメソッドの上書きが意図したとおりに機能しない
問題に対して mod/mixin を導入しようとしています。特に、ここではSpeechRecognitionProblem
. 私はこの問題を修正するつもりなので、次のことをしようとしています。
したがって、これはあまり機能しません。hparams()
基本クラスから関数を呼び出し、いくつかの値を変更します。
現在、Libri Speech などのすぐに使える問題がいくつかあります。
ただし、変更を適用するために、次のようにしています。
私が間違っていなければ、これは のすべてを (同一の署名で) 上書きしLibrispeech
、代わりに の関数を呼び出す必要がありSpeechRecognitionProblemMod
ます。
このコードでモデルをトレーニングできたので、これまでのところ意図したとおりに機能していると思います。
ここに私の問題があります:
トレーニング後、モデルをシリアライズしたいと思います。これは通常機能します。しかし、それは私のモッズではなく、私は実際にその理由を知っています:
ある時点でhparams()
呼び出されます。その時点までデバッグすると、次のことがわかります。
self.hparams
する必要があります<bound method SpeechRecognitionProblemMod.hparams of ..>
!何らかの理由hparams()
で のSpeechRecognitionProblem
代わりに が直接呼び出されているように思われSpeechRecognitionProblemMod
ます。ただし、これは!の正しい型であることに注意してください。feature_encoders()
問題は、これがトレーニング中に機能していることを知っているということです。モデルのグラフ ノード名が変更によって変更されるため、ハイパー パラメーター (hparams) が適切に適用されていることがわかります。
指摘しなければならない専門が1つあります。によってロードされる追加の Python モジュールであるtensor2tensor
を動的にロードできます。シリアライゼーション スクリプトでもその関数を使用します。t2t_usr_dir
import_usr_dir
これが現時点で確認できる唯一の原因である可能性がありますが、これが問題を引き起こす理由を特定することはできません.
誰かが私が知らない何かを見たら、私がここで間違っていることのヒントを喜んで得ます.
それで、あなたが得ているエラーは何ですか?
完全を期すために、これは間違ったhparams()
メソッドが呼び出された結果です。
symbol_modality_256_256
間違っている。で設定される語彙サイズはsymbol_modality_<vocab-size>_256
どこにあるはずです。<vocab-size>
SpeechRecognitionProblemMod.hparams
tensorflow - tensor2tensor の蒸留.py を使用して、教師のネットワークから生徒のネットワークに知識を抽出するにはどうすればよいですか?
トップレベルの問題
教師ネットワークを使用し、その能力の小さなサブセットに関するパフォーマンス/知識を別のより単純なモデルに抽出したい
試みられた解決策
T2T蒸留コードを使い始めようとしています。 https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/distillation.py
試みられた解決策の問題
先生と生徒の使い方が分からなくて困っています。最初に実行できる仕組みを示す例はありますか? T2T の既存のモデルで動作させるにはどうすればよいですか? Keras で定義されたモデルで動作させるにはどうすればよいですか?
このブロックが、モデルを T2T に登録するために使用することになっている方法を理解しています。しかし、どうやってトレーニングを開始するのですか?github で を検索しましdistill_resnet_32_to_15_cifar20x5
たが、ヒットしたのは T2T リポジトリの重複したフォークだけで、これを使用する方法の例はありませんでした。
完全なコード:distill.py