当前位置:网站首页>Pytorch(二) —— 激活函数、损失函数及其梯度
Pytorch(二) —— 激活函数、损失函数及其梯度
2022-07-01 04:35:00 【CyrusMay】
Pytorch(二) —— 激活函数、损失函数及其梯度
1.激活函数
1.1 Sigmoid / Logistic
δ ( x ) = 1 1 + e − x δ ′ ( x ) = δ ( 1 − δ ) \delta(x)=\frac{1}{1+e^{-x}}\\\delta'(x)=\delta(1-\delta) δ(x)=1+e−x1δ′(x)=δ(1−δ)
import matplotlib.pyplot as plt
import torch.nn.functional as F
x = torch.linspace(-10,10,1000)
y = F.sigmoid(x)
plt.plot(x,y)
plt.show()

1.2 Tanh
t a n h ( x ) = e x − e − x e x + e − x ∂ t a n h ( x ) ∂ x = 1 − t a n h 2 ( x ) tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}\\\frac{\partial tanh(x)}{\partial x}=1-tanh^2(x) tanh(x)=ex+e−xex−e−x∂x∂tanh(x)=1−tanh2(x)
import matplotlib.pyplot as plt
import torch.nn.functional as F
x = torch.linspace(-10,10,1000)
y = F.tanh(x)
plt.plot(x,y)
plt.show()

1.3 ReLU
f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
import matplotlib.pyplot as plt
import torch.nn.functional as F
x = torch.linspace(-10,10,1000)
y = F.relu(x)
plt.plot(x,y)
plt.show()

1.4 Softmax
p i = e a i ∑ k = 1 N e a k ∂ p i ∂ a j = { p i ( 1 − p j ) i = j − p i p j i ≠ j p_i=\frac{e^{a_i}}{\sum_{k=1}^N{e^{a_k}}}\\ \frac{\partial p_i}{\partial a_j}=\left\{ \begin{array}{lc} p_i(1-p_j) & i=j \\ -p_ip_j&i\neq j\\ \end{array} \right. pi=∑k=1Neakeai∂aj∂pi={ pi(1−pj)−pipji=ji=j
import torch.nn.functional as F
logits = torch.rand(10)
prob = F.softmax(logits,dim=0)
print(prob)
tensor([0.1024, 0.0617, 0.1133, 0.1544, 0.1184, 0.0735, 0.0590, 0.1036, 0.0861,
0.1275])
2.损失函数
2.1 MSE
import torch.nn.functional as F
x = torch.rand(100,64)
w = torch.rand(64,1)
y = torch.rand(100,1)
mse = F.mse_loss(y,[email protected])
print(mse)
tensor(238.5115)
2.2 CorssEntorpy
import torch.nn.functional as F
x = torch.rand(100,64)
w = torch.rand(64,10)
y = torch.randint(0,9,[100])
entropy = F.cross_entropy([email protected],y)
print(entropy)
tensor(3.6413)
3. 求导和反向传播
3.1 求导
- Tensor.requires_grad_()
- torch.autograd.grad()
import torch.nn.functional as F
import torch
x = torch.rand(100,64)
w = torch.rand(64,1)
y = torch.rand(100,1)
w.requires_grad_()
mse = F.mse_loss([email protected],y)
grads = torch.autograd.grad(mse,[w])
print(grads[0].shape)
torch.Size([64, 1])
3.2 反向传播
- Tensor.backward()
import torch.nn.functional as F
import torch
x = torch.rand(100,64)
w = torch.rand(64,10)
w.requires_grad_()
y = torch.randint(0,9,[100,])
entropy = F.cross_entropy([email protected],y)
entropy.backward()
w.grad.shape
torch.Size([64, 10])
by CyrusMay 2022 06 28
人生 只是 须臾的刹那
人间 只是 天地的夹缝
——————五月天(因为你 所以我)——————
边栏推荐
- How to view the changes and opportunities in the construction of smart cities?
- 206. reverse linked list
- Tcp/ip explanation (version 2) notes / 3 link layer / 3.4 bridge and switch / 3.4.2 multiple registration protocol (MRP)
- Introduction of Spock unit test framework and its practice in meituan optimization___ Chapter I
- Odeint and GPU
- The index is invalid
- Shell之一键自动部署Redis任意版本
- 1. Mobile terminal touch screen event
- Rule method: number of effective triangles
- JS image path conversion Base64 format
猜你喜欢

2022年化工自动化控制仪表操作证考试题库及答案

VIM简易使用教程

2022 G2 power station boiler stoker examination question bank and G2 power station boiler stoker simulation examination question bank
![Ospfb notes - five messages [ultra detailed] [Hello message, DD message, LSR message, LSU message, lsack message]](/img/aa/a255d225d71e6ba2b497f8d59f5f11.jpg)
Ospfb notes - five messages [ultra detailed] [Hello message, DD message, LSR message, LSU message, lsack message]
![[leetcode skimming] February summary (updating)](/img/62/0d0d9f11434e49d33754a2e4f2ea65.jpg)
[leetcode skimming] February summary (updating)

Recommend the best product development process in the Internet industry!

2022危险化学品生产单位安全生产管理人员题库及答案

LM small programmable controller software (based on CoDeSys) note 19: errors do not match the profile of the target

尺取法:有效三角形的个数

Tip of edge browser: enter+ctrl can automatically convert the address bar into a web address
随机推荐
Difference between cookie and session
One job hopping up 8K, three times in five years
Browser top loading (from Zhihu)
测量三相永磁同步电机的交轴直轴电感
How to view the changes and opportunities in the construction of smart cities?
Shell之分析服务器日志命令集锦
2022 t elevator repair question bank and simulation test
CUDA development and debugging tool
JVM栈和堆简介
Note de développement du système embarqué 80: application du concepteur Qt à la conception de l'interface principale
OSPF notes [dr and bdr]
LM small programmable controller software (based on CoDeSys) note 19: errors do not match the profile of the target
(12) Somersault cloud case (navigation bar highlights follow)
Jenkins automatically cleans up construction history
Software testing needs more and more talents. Why do you still not want to take this path?
Programs and processes, process management, foreground and background processes
Haskell lightweight threads overhead and use on multicores
What is uid? What is auth? What is a verifier?
Embedded System Development Notes 80: using QT designer to design the main interface
[send email with error] 535 error:authentication failed