当前位置:网站首页>The fourth back propagation back propagation
The fourth back propagation back propagation
2022-08-05 05:25:00 【A long way to go】
课堂练习
手动推导线性模型y=w*x,损失函数loss=(ŷ-y)²下,当数据集x=2,y=4的时候,反向传播的过程.

手动推导线性模型 y=w*x+b,损失函数loss=(ŷ-y)²下,当数据集x=1,y=2的时候,反向传播的过程.

线性模型y=w*x,损失函数loss=(ŷ-y)²下,当数据集x=2,y=4的时候,反向传播代码实现
注意:w.grad.data不会自动清0,Manual cleaning required0
代码如下:
import torch
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
w = torch.Tensor([1.0]) # w的初值为1.0
w.requires_grad = True # 需要计算梯度
learning_rate=0.05 #学习率
def forward(x):
return x * w # w是一个Tensor
def loss(x, y):
y_pred = forward(x)
return (y_pred - y) *(y_pred - y)
print("predict (before training)", 4, forward(4).item())
for epoch in range(100):
for x, y in zip(x_data, y_data):
l = loss(x, y) # l是一个张量,tensor主要是在建立计算图 forward, compute the loss
l.backward() # backward,compute grad for Tensor whose requires_grad set to True
print('\tgrad:', x, y, w.grad.item())
w.data = w.data - learning_rate * w.grad.data # 权重更新时,注意grad也是一个tensor
w.grad.data.zero_() # after update, remember set the grad to zero
print('progress:', epoch, l.item()) # 取出loss使用l.item,不要直接使用l(l是tensor会构建计算图)
print("predict (after training)", 4, forward(4).item())
运行结果:
predict (before training) 4 4.0
grad: 1.0 2.0 -2.0
grad: 2.0 4.0 -7.520000457763672
grad: 3.0 6.0 -12.859201431274414
progress: 0 4.593307018280029
grad: 1.0 2.0 -0.6572480201721191
grad: 2.0 4.0 -2.47125244140625
grad: 3.0 6.0 -4.225842475891113
progress: 1 0.4960484504699707
grad: 1.0 2.0 -0.2159874439239502
grad: 2.0 4.0 -0.8121128082275391
grad: 3.0 6.0 -1.388711929321289
progress: 2 0.05357002466917038
grad: 1.0 2.0 -0.07097864151000977
grad: 2.0 4.0 -0.2668800354003906
grad: 3.0 6.0 -0.45636463165283203
....................
progress: 13 9.094947017729282e-13
grad: 1.0 2.0 -4.76837158203125e-07
grad: 2.0 4.0 -1.9073486328125e-06
grad: 3.0 6.0 -5.7220458984375e-06
progress: 14 9.094947017729282e-13
grad: 1.0 2.0 -2.384185791015625e-07
grad: 2.0 4.0 -9.5367431640625e-07
grad: 3.0 6.0 -2.86102294921875e-06
progress: 15 2.2737367544323206e-13
grad: 1.0 2.0 0.0
grad: 2.0 4.0 0.0
grad: 3.0 6.0 0.0
progress: 16 0.0
grad: 1.0 2.0 0.0
grad: 2.0 4.0 0.0
grad: 3.0 6.0 0.0
.....................
progress: 97 0.0
grad: 1.0 2.0 0.0
grad: 2.0 4.0 0.0
grad: 3.0 6.0 0.0
progress: 98 0.0
grad: 1.0 2.0 0.0
grad: 2.0 4.0 0.0
grad: 3.0 6.0 0.0
progress: 99 0.0
predict (after training) 4 8.0
边栏推荐
- Lecture 4 Backpropagation Essays
- 有用番茄来监督自己的同道中人吗?加一下我的自习室,一起加油
- Distributed systems revisited: there will never be a perfect consistency scheme...
- Structured Light 3D Reconstruction (2) Line Structured Light 3D Reconstruction
- Excel Paint
- The role of the range function
- MySQL Foundation (1) - Basic Cognition and Operation
- 【cesium】Load and locate 3D Tileset
- 第5讲 使用pytorch实现线性回归
- 小白一枚各位大牛轻虐虐
猜你喜欢

Structured Light 3D Reconstruction (2) Line Structured Light 3D Reconstruction

server disk array

第四讲 反向传播随笔

How can Flutter parent and child components receive click events

逆向理论知识4

Develop a highly fault-tolerant distributed system

OFDM Lecture 16 5 -Discrete Convolution, ISI and ICI on DMT/OFDM Systems

【过一下 17】pytorch 改写 keras

Lecture 5 Using pytorch to implement linear regression

Difference between for..in and for..of
随机推荐
entry point injection
Geek卸载工具
Cryptography Series: PEM and PKCS7, PKCS8, PKCS12
The software design experiment four bridge model experiment
Qt produces 18 frames of Cupid to express his love, is it your Cupid!!!
redis cache clearing strategy
redis 持久化
Difference between for..in and for..of
第二讲 Linear Model 线性模型
开发一套高容错分布式系统
第四讲 反向传播随笔
span标签和p标签的区别
[WeChat applet] WXML template syntax - conditional rendering
jvm 三 之堆与栈
What are the characteristics of the interface of the physical layer?What does each contain?
Mesos学习
Matplotlib(一)—— 基础
类的底层机制
『递归』递归概念与典型实例
UVA10827