Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
やさしくわかるPyTorch入門 / Easy to Learn PyTorch
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
payanotty
October 28, 2021
Programming
1
1.2k
やさしくわかるPyTorch入門 / Easy to Learn PyTorch
connpassで実施したセミナーの資料になります。
https://studyco.connpass.com/event/227486/
payanotty
October 28, 2021
Tweet
Share
More Decks by payanotty
See All by payanotty
トークナイザー入門
payanotty
4
2.4k
LLM_Prompt_Recovery
payanotty
3
1k
Embeddingモデルを使ったベクトル化のしくみ、fine-tuning手法を解説
payanotty
15
6.3k
Transformerによるテキストベクトル化を解説
payanotty
6
4.1k
Kaggle_LLMコンペの攻略法を解説.pdf
payanotty
1
1.6k
ManimMLでイケてるアニメーションを作ろう
payanotty
0
800
Lets Finetune LLM
payanotty
3
1.4k
Stable Diffusion Web UI, Let Your Fave Eat Ramen
payanotty
1
1.1k
Lets Finetune Stable Diffusion
payanotty
0
1.3k
Other Decks in Programming
See All in Programming
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
960
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
190
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.4k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
200
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
140
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
130
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
440
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
310
TipKitTips
ktcryomm
0
150
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
610
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
240
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
Building AI with AI
inesmontani
PRO
1
760
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Ethics towards AI in product and experience design
skipperchong
2
210
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
380
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
A Soul's Torment
seathinner
5
2.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
590
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Unsuck your backbone
ammeep
672
58k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
Transcript
やさしくわかる PyTorch入門
• 名前: 早野 康太 • お仕事: ◦ 深層学習エンジニア • 好きなこと:
◦ 音ゲー ◦ アニメ ◦ ウマ娘 ◦ 犬とか猫 発表者紹介
• Facebook AI Research (FAIR)により 開発された深層学習ライブラリ • Pythonで深層学習するなら TeonsorFlowとの2択 •
モデルの構造や学習の過程を 直感的に記述することができる PyTorchについて
• Tensor ◦ numpyとほとんど同じ感覚で使える ◦ 勾配 (偏微分) に関する 情報を持っている ◦
GPU上での行列計算が可能 • nn.Module ◦ 全てのモデルのベースとなる型 ◦ 新しいモデルを定義するときは これを継承する Tensor型とModule型
• Tensor ◦ numpyとほとんど同じ感覚で使える ◦ 勾配 (偏微分) に関する 情報を持っている ◦
GPU上での行列計算が可能 • nn.Module ◦ 全てのモデルのベースとなる型 ◦ 新しいモデルを定義するときは これを継承する Tensor型とModule型
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ Tensor型とModule型
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 Tensor型とModule型 forward
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 ◦ backward ▪ モデルの出力テンソルに対して 実行する ▪ 誤差逆伝播法で勾配を計算する Tensor型とModule型 backward forward
• nn.Module ◦ パラメータをstate_dictの形式で 書き出せる ▪ {‘layer1’: Tensor()...} みたいな感じ ◦
forward ▪ 入力側から変数を流す ▪ モデルに合わせて自分で定義 ◦ backward ▪ モデルの出力テンソルに対して 実行する ▪ 誤差逆伝播法で勾配を計算する Tensor型とModule型 backward forward
• 出力側から入力側に向かって 誤差信号を伝播させていく • 誤差信号 = 偏微分の値 ◦ (正確ではないが) ∂z/∂yとか∂y/∂xが伝播するイメージ
誤差逆伝播法 x y z backward forward
• PyTorchではTensor型同士の 計算が行われる際、 計算結果の中に勾配計算に 必要な情報が保持される • 計算結果にbackwardメソッドを 実行することで 誤差逆伝播法によって 勾配が計算される
自動微分
• y = x2, z = Σx ij 自動微分 x
y z
• y = x2, z = Σx ij • z.backward()
自動微分 x y z dz/dy dy/dx
• y = x2, z = Σx ij • z.backward()
• backward()を実行するとgrad内に勾配値が記録される ◦ y.grad = dz/dy ◦ x.grad = dz/dy * dy/dx 自動微分 x y z dz/dy dy/dx
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight 勾配
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight
• 勾配の分だけパラメータを更新する 微分→パラメータ更新 Loss Weight
• 勾配の分だけパラメータを更新する ◦ 実際はもう少し工夫があって アルゴリズムによっていろんな 更新の仕方がある • 勾配更新のアルゴリズム ◦ SGD
◦ Adam ← 大体これ使とけば間違いない ◦ AdaBeliaf 微分→パラメータ更新 Loss Weight
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する PyTorchでの深層学習の3つのステップ
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する • backward ◦ 誤差逆伝播で勾配を計算する
PyTorchでの深層学習の3つのステップ
• forward ◦ モデルに入力を流仕込む ◦ モデルの出力と正解との誤差を計算する • backward ◦ 誤差逆伝播で勾配を計算する
• step ◦ 勾配の分だけパラメータを更新する PyTorchでの深層学習の3つのステップ
• 手書き文字画像データ(MNIST)の分類に PyTorchでチャレンジしてみます ◦ Google Colabのノートブック PyTorch実践 ラベル = 5
• PyTorchの特徴 ◦ 自動微分の機能により forward → backwardの流れを直感的に記述することができる ◦ (今回は触れなかったが) ▪
GPU上での計算を高速化する手法に対応している ▪ モデルのレイヤーごとに学習率をいじれるなど 柔軟性の高いモデル設計が可能 • Google Colaboratoryで結構カンタンに試せちゃうので 興味ある方はぜひ触ってみてください さいごに