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
payanotty
October 28, 2021
Programming
1
1.1k
やさしくわかる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
2
1.8k
LLM_Prompt_Recovery
payanotty
3
960
Embeddingモデルを使ったベクトル化のしくみ、fine-tuning手法を解説
payanotty
15
5.7k
Transformerによるテキストベクトル化を解説
payanotty
4
3.6k
Kaggle_LLMコンペの攻略法を解説.pdf
payanotty
1
1.5k
ManimMLでイケてるアニメーションを作ろう
payanotty
0
750
Lets Finetune LLM
payanotty
3
1.3k
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
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
240
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
140
速いWebフレームワークを作る
yusukebe
5
1.7k
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
180
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
1.1k
Rancher と Terraform
fufuhu
2
210
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
300
Claude Codeで挑むOSSコントリビュート
eycjur
0
200
複雑なドメインに挑む.pdf
yukisakai1225
5
990
為你自己學 Python - 冷知識篇
eddie
1
340
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
360
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
GitHub's CSS Performance
jonrohan
1032
460k
The Invisible Side of Design
smashingmag
301
51k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Code Reviewing Like a Champion
maltzj
525
40k
Documentation Writing (for coders)
carmenintech
74
5k
Typedesign – Prime Four
hannesfritz
42
2.8k
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で結構カンタンに試せちゃうので 興味ある方はぜひ触ってみてください さいごに