0

構成ファイルを使用して、標準の AllenNLP モデル トレーニングですべてのモデル/状態の重みのシリアル化を無効にしたいと考えていjsonnetます。

その理由は、Optuna を使用してハイパーパラメータの自動最適化を実行しているためです。数十のモデルをテストすると、ドライブがすぐにいっぱいになります。num_serialized_models_to_keepに設定して、チェックポインターを既に無効にしています0

trainer +: {
    checkpointer +: {
        num_serialized_models_to_keep: 0,
    },

中間メトリクスなどのロギングに関するデフォルトの動作が必要なため、に設定serialization_dirしたくありません。デフォルトのモデル状態、トレーニング状態、最適なモデルの重みの書き込みNoneを無効にしたいだけです。

上記で設定したオプション以外に、モデルの重みのすべてのシリアル化を無効にするデフォルトのトレーナーまたはチェックポインター オプションはありますか? API ドキュメントと Web ページを確認しましたが、何も見つかりませんでした。

そのようなオプションの機能を自分で定義する必要がある場合、AllenNLP のどの基本関数を Model サブクラスでオーバーライドする必要がありますか?

または、トレーニングが終了したときに中間モデル状態をクリーンアップするためのユーティリティはありますか?

編集: @petew の回答は、カスタム チェックポインターの解決策を示していますが、このコードを私のユースケースで見つけられるようにする方法が明確ではありませんallennlp train

以下のように、設定ファイルから custom_checkpointer を呼び出せるようにしたいと思います。

trainer +: {
    checkpointer +: {
        type: empty,
    },

を呼び出すときにチェックポインターをロードするベストプラクティスは何allennlp train --include-package <$my_package>ですか?

my_package/modelss やなどのサブディレクトリにサブモジュールを含む my_package がありmy_package/trainingます。カスタム チェックポインター コードを に配置したいmy_package/training/custom_checkpointer.py 私のメイン モデルは にありmy_package/models/main_model.pyます。カスタム チェックポインターを使用するには、main_model クラスのコード/関数を編集またはインポートする必要がありますか?

4

1 に答える 1