pytorch手写线性回归

import torch
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation LEARN_RATE = 0.1
#1.准备数据
x = torch.randn([500,1])
y_true = x*0.8+3 #2.计算预测值 t_tred = x*w + b w = torch.rand([],requires_grad=True)
b = torch.tensor(0.,requires_grad=True) plt.figure()
plt.grid(True) #开启交互模式
plt.ion()
for i in range(50): plt.cla() for j in [w,b]:
if j.grad is not None:
j.grad.zero_()
y_predict = x*w+b #3.计算损失,把参数的梯度置为0,进行反向传播 loss = (y_predict-y_true).pow(2).mean() loss.backward() #4.更新参数,grad表示导数 w.data = w.data - LEARN_RATE*w.grad
b.data = b.data - LEARN_RATE*b.grad plt.scatter(x.numpy(),y_true.numpy())
plt.plot(x.numpy(),y_predict.detach().numpy(),color="g") plt.pause(0.1) if i %50 ==0:
print( "第{}次,损失{},权重w={},偏执b={}".format(i,loss.data,w.data,b.data)) #关闭交互模式
plt.ioff()
plt.show()

  

最新文章

  1. Word基础
  2. 关于 python
  3. WinForm开发框架--动态读取DLL模式
  4. iOS push与present Controller的区别
  5. DP:Cheapest Palindrome(POJ 3280)
  6. 【重读】The C++ Programming Language/C++编程语言(一)
  7. Chp17: Moderate
  8. NPOI技术,
  9. POJ 1651 Multiplication PuzzleDP方法:
  10. 推荐大家一本学习php模式的书
  11. Java的函数与函数重载
  12. 【ThinkingInC++】52、函数内部的静态变量
  13. iOS 7用户界面过渡指南
  14. 官网.jar包下载技巧
  15. Java Random介绍
  16. lbp特征提取(等价模式)
  17. PE 001~010
  18. C++Sizeof与Strlen的区别与联系
  19. deepin linux学习笔记
  20. 【blog】谷歌浏览器如何设置编码

热门文章

  1. CSS3过渡结束监听事件,清除/修改表单元素的一些默认样式
  2. kerberos系列之flink认证配置
  3. CCF2018 12 2题,小明终于到家了
  4. 字符串截取及切割,正则表达式,expect预期交互
  5. 【数据库】MySQL数据库(二)
  6. sqlchemy查询的其他操作
  7. C语言 刷新缓冲区
  8. Python之GUI编程(Tkinter))
  9. go 中的WaitGroup
  10. ORCAD常用元件库说明