今天跟着刘老师学习了第八讲加载数据集,主要是让数据训练时利用mini_batch进行训练,从而提高计算速度,主要区分三个词epoch,batch-size,iteration

在视频中刘老师给出了三个名词的定义:epoch表示所有的样本训练的轮数,batch-size表示训练一次前馈和反向传播的样本的数量,iteration表示所有样本数量/一个batch-size所包含的样本数量。

随后又讲了Dataset和Dataloader的作用,Dataset 是抽象类,不能实例,而Dataloader可以实例

刘老师所给出的源代码如下:

import torch
import matplotlib.pyplot as plt
import numpy as np
from torch.utils.data import Dataset,DataLoader#准备数据集
class DiabetesDataSet(Dataset):def __init__(self,filepath):#filepath为文件路径,delimiter为数据分割符,dtype为数据的类型xy = np.loadtxt(filepath,delimiter=',',dtype=np.float32)#获得数据集长度self.len = xy.shape[0]self.x_data = torch.from_numpy(xy[:,:-1])self.y_data = torch.from_numpy(xy[:,[-1]])#完成索引方法def __getitem__(self, index):return self.x_data[index],self.y_data[index]def __len__(self):return self.len#实例化
dataset = DiabetesDataSet('C:/Users/CZY/Desktop/pytorch实战/diabetes.csv.gz')
#将数据集设置成可min-batch训练
train_loder = DataLoader(dataset=dataset,batch_size=32,shuffle=True,num_workers=2)
#构建模型
class Model(torch.nn.Module):def __init__(self):super(Model, self).__init__()self.linear1 = torch.nn.Linear(8,6)self.linear2 = torch.nn.Linear(6,4)self.linear3 = torch.nn.Linear(4,1)self.sigmoid = torch.nn.Sigmoid()def forward(self,x):x = self.sigmoid(self.linear1(x))x = self.sigmoid(self.linear2(x))x = self.sigmoid(self.linear3(x))return xmodel = Model()#构造损失函数和优化器
Loss = torch.nn.BCELoss(size_average=False)
Optim = torch.optim.SGD(model.parameters(),lr = 0.01)#训练循环
for epoch in range(1000):for i,data in enumerate(train_loder,0):#准备数据集inputs,labels = data#前馈传播y_pred = model(inputs)loss = Loss(y_pred,labels)print('epoch',epoch,'loss',loss.item())#反向传播Optim.zero_grad()loss.backward()#更新Optim.step()

运行后会报如下的错误:

我从网上查找出错的原因,有人说是windows下无法进行并行运算导致的,所以我就将代码稍作修改:

import torch
import matplotlib.pyplot as plt
import numpy as np
from torch.utils.data import Dataset,DataLoader#准备数据集
class DiabetesDataSet(Dataset):def __init__(self,filepath):#filepath为文件路径,delimiter为数据分割符,dtype为数据的类型xy = np.loadtxt(filepath,delimiter=',',dtype=np.float32)#获得数据集长度self.len = xy.shape[0]self.x_data = torch.from_numpy(xy[:,:-1])self.y_data = torch.from_numpy(xy[:,[-1]])#完成索引方法def __getitem__(self, index):return self.x_data[index],self.y_data[index]def __len__(self):return self.len#实例化
dataset = DiabetesDataSet('C:/Users/CZY/Desktop/pytorch实战/diabetes.csv.gz')
#将数据集设置成可min-batch训练
train_loder = DataLoader(dataset=dataset,batch_size=32,shuffle=True)
#构建模型
class Model(torch.nn.Module):def __init__(self):super(Model, self).__init__()self.linear1 = torch.nn.Linear(8,6)self.linear2 = torch.nn.Linear(6,4)self.linear3 = torch.nn.Linear(4,1)self.sigmoid = torch.nn.Sigmoid()def forward(self,x):x = self.sigmoid(self.linear1(x))x = self.sigmoid(self.linear2(x))x = self.sigmoid(self.linear3(x))return xmodel = Model()#构造损失函数和优化器
Loss = torch.nn.BCELoss(size_average=False)
Optim = torch.optim.SGD(model.parameters(),lr = 0.01)#训练循环
loss_list = []
for epoch in range(1000):for i,data in enumerate(train_loder,0):#准备数据集inputs,labels = data#前馈传播y_pred = model(inputs)loss = Loss(y_pred,labels)print('epoch',epoch,'loss',loss.item())#反向传播Optim.zero_grad()loss.backward()#更新Optim.step()loss_list.append(loss.item())
plt.plot(loss_list,color = (0,0.5,0.5))
plt.xlabel('epoch')
plt.ylabel('loss')
plt.show()

运行后没有报错,得到的可视化结果如下:

刘老师在课后留了联系,等我完成后会将代码上传!

pytorch实践08(刘二大人)相关推荐

  1. 《PyTorch深度学习实践》刘二大人 第2讲 线性模型——使用双层for循环完成课后作业

    一.课堂代码 import numpy as np import matplotlib.pyplot as pltx_data = [1.0,2.0,3.0] y_data = [2.0,4.0,6. ...

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

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

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

    开篇几句题外话: 以往的代码,都是随便看看就过去了,没有这样较真过,以至于看了很久的深度学习和Python,都没有能够形成编程能力: 这次算是废寝忘食的深入进去了,踏实地把每一个代码都理解透,包括其中 ...

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

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

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

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

  6. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  7. B站刘二大人-数据集及数据加载 Lecture 8

    系列文章: <PyTorch深度学习实践>完结合集-B站刘二大人 Pytorch代码注意的细节,容易敲错的地方 B站刘二大人-线性回归及梯度下降 Lecture3 B站刘二大人-反向传播L ...

  8. 《PyTorch深度学习实践》完结合集--B站刘二大人学习总结

    本篇主要是各类模型的基本介绍及应用,不涉及深层技术. 学习视频指路→B站指路 代码实践指路→代码指路 课件获取:通过百度网盘分享的文件:PyTorch深- 链接:https://pan.baidu.c ...

  9. 【刘二大人 - PyTorch深度学习实践】学习随手记(一)

    目录 1. Overview 1.Human Intelligence 2.Machine Learning 3.How to develop learning system? 4.Tradition ...

最新文章

  1. 【NIO】IO多路复用
  2. w7系统计算机网络密码是什么,解答win7系统共享弹出Windows安全窗口提示输入网络密码的详细教程...
  3. Hibernate3的配置参数汇总
  4. Webpack入门教程三
  5. js生日计算年龄_生男生女计算公式超准
  6. SAP LUW Database update discuss mengniu 蒙牛
  7. C语言麻将递归,C++数据结构与算法——麻将胡牌算法(二:完全胡牌算法)
  8. 设计灵感|浓浓人文感!中文活动海报设计学习案例
  9. php 使用phpize报错Cannot find config.m4. Make sure that you run ‘/usr/bin/phpize‘ in the top l
  10. C#生成随机姓名 单姓 复姓
  11. 【STM32标准库】【自制库】8位8段数码管(74HC595)【软件部分】
  12. JSP程序设计实验报告
  13. nema0183 java解析_NEMA-0183(GPRMC GPGGA)详细解释
  14. Android编译环境搭建
  15. that's why you go away(song)
  16. word如何一次性删除所有批注
  17. Cat4模块SIM7600CE介绍
  18. 基于视觉的动态手势轨迹跟踪
  19. Terraform 和 Oracle Cloud Infrastructure
  20. 宋图图的工学课程12

热门文章

  1. When to use DMU?
  2. 一键查找,批量修改CAD图纸的标注文字
  3. 使用阿里云短信推送服务发送验证码
  4. 背包问题(0-1背包问题和完全背包问题)
  5. 基于SSM的企业管理系统
  6. mysql 远程 2003错误_MySQL远程连接失败(错误码:2003)
  7. 能修复受损 DNA的长寿基因?长寿的基因秘密
  8. t6服务器验证密码失败,T6客户端连接服务器报错误-SA用户登陆失败
  9. Addon domain SubDomain Parked Domains
  10. HTML+CSS+JavaScript制作结婚倒计时网页模板 520情人节表白源码HTML 七夕情人节表白源码HTML 生日祝福代码HTML...