[Japanese] How to Initialize Weights in PyTorch
PyTorchで重みを初期化する方法についての短いチュートリアル。コードとインタラクティブな視覚化を含みます。
Created on August 1|Last edited on August 1
Comment
目次
私たちが取り上げる内容
この記事では、PyTorchモデルのさまざまな層で重みを初期化する方法を見ていきます。
Tensorflowとは異なり、PyTorchはさまざまな層で重みを初期化するための簡単なインターフェースを提供していません(ただし、トーチ・エヌエヌ・イニット ですしたがって、XavierやHe初期化のようなよく知られた手法に従って重みを初期化したいときに難しくなります。
以下で重みの初期化方法を見ていきますが、実行可能なColabで一緒に進めたい場合は、次のリンクで行うことができます。
💡
PyTorchでのクラス関数を使用したゼロによる重みの初期化
最も一般的な重みの初期化方法の一つは、クラス関数を使用して、最後に呼び出すことです。初期化カスタムPyTorchモデルでの関数。
トーチ.nnをインポート クラスモデル(nn.Module): # . . . 定義 __init__(self): 。 自身に適用し、初期重みを設定します。 ウェイトを初期化する(module) もしモジュールが nn.Linear のインスタンスである場合: モジュールの重みデータが平均0.0、標準偏差1.0の正規分布に従うように正規化されます。 モジュールのバイアスが存在する場合: モジュール.バイアス.データ.ゼロ_()
重みを初期化する(モジュール): モジュールがnn.Embeddingのインスタンスかどうかを確認します。 モジュールの重みデータが平均0.0、標準偏差1.0の正規分布に従うように正規化されます。 モジュールのpadding_idxがNoneでない場合: モジュール.重み.データ[モジュール.パディング_インデックス].ゼロ_() ただし、モジュールが nn.LayerNorm のインスタンスである場合: モジュール.バイアス.データ.ゼロ_() モジュールの重みデータに1.0を代入します。
パイトーチ重み初期化実験
以下のWeights & Biasesチャートは、提供されたColabから描画されたもので、重みの初期化をよりよく説明するためのものです。もう一度、それを見つけることができます:
ここでは、正規分布のさまざまな標準偏差がパフォーマンスの面でどのように異なるかを確認できます。
Run set
42
標準偏差の値が大きいと良い結果につながらず、局所的な最小値につながる可能性が高いです。一方、小さな値ははるかに良い性能をもたらします。
概要
この記事では、PyTorchの深層学習モデルの重みを初期化する方法と、Weights & Biasesを使用してメトリクスを監視することで貴重な洞察を得ることができる方法を紹介しました。
Weights & Biasesを試す
Weights & Biasesは、機械学習の実験を追跡するのに役立ちます。ハイパーパラメータを記録し、実行結果からメトリクスを出力し、結果を視覚化して比較し、同僚と迅速に結果を共有するために、ツールをお試しください。
指示:
- 下の緑色の「実行」ボタンをクリックします。初めて実行をクリックすると、Replitはマシンの割り当てに約30〜45秒かかります。
- 端末ウィンドウのプロンプトに従ってください。(下の右下のペイン)
- ターミナルウィンドウのサイズを変更できます。(右下)で拡大表示
おすすめの読書
How To Use GPU with PyTorch
A short tutorial on using GPUs for your deep learning models with PyTorch, from checking availability to visualizing usable.
A Gentle Introduction To Weight Initialization for Neural Networks
An explainer and comprehensive overview of various strategies for neural network weight initialization
PyTorch Dropout for regularization - tutorial
Learn how to regularize your PyTorch model with Dropout, complete with a code tutorial and interactive visualizations
How to save and load models in PyTorch
This article is a machine learning tutorial on how to save and load your models in PyTorch using Weights & Biases for version control.
Image Classification Using PyTorch Lightning and Weights & Biases
This article provides a practical introduction on how to use PyTorch Lightning to improve the readability and reproducibility of your PyTorch code.
How to Compare Keras Optimizers in Tensorflow for Deep Learning
A short tutorial outlining how to compare Keras optimizers for your deep learning pipelines in Tensorflow, with a Colab to help you follow along.
Add a comment