小塚動画:P4. PyCharmとJupyter_bilibili_bilibiliの使い方と比較
pytorch 公式 Web サイトでは、詳細な知識ポイントが説明されています。PyTorch ドキュメント — PyTorch 2.0 ドキュメント
1.詳しい知識
SHIFT+ENTERで次の行の先頭に入る
Ctrl+P 入力パラメーターの入力を求めるプロンプト
2. Pytorch によるデータのロード: データセットとデータローダー
データセットはこのデータセット (トランプのデッキ) を提供するだけです
データローダーはハンドに相当します。データセットにアクセスするたびに、どうやってカードを入手しますか? 何枚のカードを入手できますか?
3、テンソルボード
画像を使用してトレーニングの結果を表示できます
4、変形して画像を変形させます
ToTensor: 画像をテンソルに変換する
5. コンボリューション
in_channels と out_channels は入力チャンネルと出力チャンネルの数です。
画像入力は RGB 3 チャンネルであり、3 チャンネルの色が 1 つの画像を形成します。
バッチサイズ:トレーニングのためにプログラムに一度に渡されるデータ (サンプル) の数を示します。たとえば、トレーニング セットには 1,000 個のデータがあります。これは、batch_size=100 に設定した場合、プログラムはまずデータ セット内の最初の 100 個のパラメーター、つまり 1 ~ 100 番目のデータを使用してモデルをトレーニングします。トレーニングが完了すると、重みが更新され、トレーニング セット内の 1000 データが 10 回使用されるまで、101 ~ 200 番目のデータがトレーニングに使用されます。
6. プーリング
dilation: 拡張されたコンボリューション、コンボリューション カーネルは互いに分離されています。
フロアおよび天井モード: 下から小さい値を選択するか、上から大きい値を選択します。天井は保持されます。
プーリング カーネルを使用して、このブロック内の最大値を取得します
torch.Resize(20,100,30,30): ビットサイズ、チャンネル、高さ、幅
7. 非線形層活性化関数
畳み込みが続く
8. リニア層
5*5 の画像を 25 の行に拡張し、次に 3 の行に拡張します (ここで最後の 3 は、3 つのカテゴリに分割されているためです)
合計 2 つの線形レイヤーがあります
最終出力は 10 で、10 個のカテゴリを表します。
9. 損失: 分類のためのクロスエントロピー損失関数
たとえば、10 クラスの分類問題では、ニューラル ネットワークの最終出力は、各カテゴリの確率値を表す 10 個の数値になります。
この確率値とターゲットを代入して損失値を計算します
10. バックプロパゲーション
逆方向を使用して、調整する必要がある各パラメータ W の勾配値 grad を計算します。
11. オプティマイザは、この勾配に基づいて更新します。
オプティマイザー、学習率 lr を定義する
最適化のための optim.step
12. 区別する
定義:ソフトマックス回帰は、入力値を、合計が 1 になる確率分布に従う値のベクトルに正規化するロジスティック回帰の形式です。