api太多,就是需要边用 边查。打算在继续看视频之前,跟着b站视频动手敲代码练手。

创建矩阵

可以跟numpy类似操作

矩阵大小

基本计算方法:

直接使用x+y 或者torch.add(x,y)

索引

view  改变矩阵

 注意,有个4*4的矩阵x,z=x.view(-1,8)  -1这里是未知的,相当于未知,计算出:4*4/8=2

与numpy协同

tensor与array相互转换 

自动求导

 

上面对b求偏导=1,注意,不清零梯度会累加

线性回归的demo:

这里不是直接生成tensor,从np转换。这里的reshape改变tensor的形状。跟前面的 view类似的作用,只不过view方法只能改变连续的(contiguous)张量。

y=2x+1 构建方程

后面代码量多一些,直接命令行敲代码不太方便,转到pycharm

线性回归模型:

class LinearRegressionModel(nn.Module):  # torch.nn模块下的Module模块def __init__(self, input_dim, output_dim):  # 构造函数super(LinearRegressionModel, self).__init__()self.linear = nn.Linear(input_dim, output_dim)  # 使用的层# 重写前向传播方法,模型从前往后走的过程def forward(self, x):out = self.linear(x)return out

这块老师没有展开讲,大概知道下,先跳过。

指定参数及损失函数

# 训练次数
epochs = 1000
# 定义学习率
learning_rate = 0.01
# 优化器选择随机梯度下降算法
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
# 选择损失函数MSE
criterion = nn.MSELoss()

训练模型:

for epoch in range(epochs):epoch += 1# 转成tensor格式inputs = torch.from_numpy(x_train).to(device)labels = torch.from_numpy(y_train).to(device)# 每次迭代梯度清零,防止累加optimizer.zero_grad()# 前向传播outputs = model(inputs)# 计算损失loss = criterion(outputs, labels)# 反向传播loss.backward()# 更新权重参数optimizer.step()if epoch % 50 == 0:print('epoch{},loss{}'.format(epoch, loss.item()))

输出 结果:

模型保存

torch.save(model.state_dict(), 'model.pk1')

GPU版本需要把模型跟数据都传入。我这个没有。没法验证了。

pytorch b站练习-5相关推荐

  1. 【0基础入门Pytorch】Pytorch的简介与安装(Windows)

    任务内容: Pytorch简介 Pytorch的安装步骤 1. Pytorch简介 PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序.它主要由Facebook ...

  2. 手把手带你入门深度学习(一):保姆级Anaconda和PyTorch环境配置指南

    手把手带你入门深度学习(一):保姆级Anaconda和PyTorch环境配置指南 一. 前言和准备工作 1.1 python.anaconda和pytorch的关系 二. Anconda安装 2.1 ...

  3. 【Pytorch深度学习实践】B站up刘二大人之SoftmaxClassifier-代码理解与实现(8/9)

    这是刘二大人系列课程笔记的倒数第二个博客了,介绍的是多分类器的原理和代码实现,下一个笔记就是basicCNN和advancedCNN了: 写在前面: 这节课的内容,主要是两个部分的修改: 一是数据集: ...

  4. 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)

    从有代码的课程开始讨论 [Pytorch深度学习实践]B站up刘二大人之LinearModel -代码理解与实现(1/9) [Pytorch深度学习实践]B站up刘二大人之 Gradient Desc ...

  5. 【 数据集加载 DatasetDataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10)】

    数据集加载 Dataset&DataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10) 模块介绍 在本节中没有关于数学原理的相关介绍,使用的数据集和类型 ...

  6. PyTorch深度学习实践(b站刘二大人)P6讲 逻辑斯蒂回归 Logistic Regression

    1.分类任务的数据集 ① The MNIST Dataset:handwritten digits Training set: 60,000 examples, Test set: 10,000 ex ...

  7. 【 线性模型 Linear-Model 数学原理分析以及源码实现 深度学习 Pytorch笔记 B站刘二大人(1/10)】

    线性模型 Linear-Model 数学原理分析以及源码实现 深度学习 Pytorch笔记 B站刘二大人(1/10) 数学原理分析 线性模型是我们在初级数学问题中所遇到的最普遍也是最多的一类问题 在线 ...

  8. 【分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人(8/10)】

    分类器 Softmax-Classifier softmax数学原理与源码详解 深度学习 Pytorch笔记 B站刘二大人 (8/10) 在进行本章的数学推导前,有必要先粗浅的介绍一下,笔者在广泛查找 ...

  9. 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】

    深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...

最新文章

  1. 51CTO的首篇博文
  2. dao加service加mysql实例_SpringBoot项目整合mybatis的方法步骤与实例
  3. Linux应用程序设计之网络基础编程
  4. 修改引入表打造穿透KIS6的下载者(转)
  5. 丰田pcs可以关闭吗_别只知道开不坏,现在的丰田还有这些厉害绝招!
  6. 计算获取最小值和最大值
  7. Equals,ReferenceEquals,==的区别
  8. php 当前时间转换,php时间转换
  9. 一个女算法程序媛的日常
  10. 网络工程师Day4--实验3-1 配置ACL过滤企业数据
  11. 番茄时间法--2018年1月26号
  12. 计算机用三角函数时如何用弧度制,弧度制 三角函数的简单应用
  13. php查找判断二维数组中是否含有某个值
  14. Redis——Redis 的发布和订阅
  15. Qt 周立功can二次开发
  16. mysql 别名_MySQL 字段别名(列别名)
  17. 计算机系英文简历常用的词汇,计算机专业英文简历词汇
  18. 入侵介绍: 1。上传漏洞 2。暴库 3。注入 4。旁注 5。COOKIE诈骗
  19. 百度人脸识别的两个方式的使用
  20. Servlet技术,response 生成图片验证码

热门文章

  1. 考题篇(6.2) 05 ❀ FortiManager ❀ Fortinet 网络安全专家 NSE 5
  2. excel标题行列浮动显示/冻结窗口
  3. 小米10青春版科学计算机,中端新势力 小米10青春版对华为nova 7 SE
  4. 使用计算机解决科学研究,应用计算机科学
  5. ppt怎么制作抖音快手快闪效果的倒计时动画?
  6. 【并发编程系列6】Condition队列原理及await和singal(等待/唤醒)机制源码分析
  7. Android第三方开发包值高德地图SDK使用介绍
  8. java 包别名_Java包导入别名
  9. 玩客云 虚拟服务器设置,玩客云刷 Linux 系统后遇到的问题和设置固定 IP
  10. DataGrid 动态绑定URL地址,在WebConfig中配置