pytorch实践08(刘二大人)
今天跟着刘老师学习了第八讲加载数据集,主要是让数据训练时利用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(刘二大人)相关推荐
- 《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. ...
- 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)
从有代码的课程开始讨论 [Pytorch深度学习实践]B站up刘二大人之LinearModel -代码理解与实现(1/9) [Pytorch深度学习实践]B站up刘二大人之 Gradient Desc ...
- 【Pytorch深度学习实践】B站up刘二大人之 Gradient Descend-代码理解与实现(2/9)
开篇几句题外话: 以往的代码,都是随便看看就过去了,没有这样较真过,以至于看了很久的深度学习和Python,都没有能够形成编程能力: 这次算是废寝忘食的深入进去了,踏实地把每一个代码都理解透,包括其中 ...
- 【 数据集加载 DatasetDataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10)】
数据集加载 Dataset&DataLoader 模块实现与源码详解 深度学习 Pytorch笔记 B站刘二大人 (7/10) 模块介绍 在本节中没有关于数学原理的相关介绍,使用的数据集和类型 ...
- 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】
深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...
- 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】
卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...
- B站刘二大人-数据集及数据加载 Lecture 8
系列文章: <PyTorch深度学习实践>完结合集-B站刘二大人 Pytorch代码注意的细节,容易敲错的地方 B站刘二大人-线性回归及梯度下降 Lecture3 B站刘二大人-反向传播L ...
- 《PyTorch深度学习实践》完结合集--B站刘二大人学习总结
本篇主要是各类模型的基本介绍及应用,不涉及深层技术. 学习视频指路→B站指路 代码实践指路→代码指路 课件获取:通过百度网盘分享的文件:PyTorch深- 链接:https://pan.baidu.c ...
- 【刘二大人 - PyTorch深度学习实践】学习随手记(一)
目录 1. Overview 1.Human Intelligence 2.Machine Learning 3.How to develop learning system? 4.Tradition ...
最新文章
- 【NIO】IO多路复用
- w7系统计算机网络密码是什么,解答win7系统共享弹出Windows安全窗口提示输入网络密码的详细教程...
- Hibernate3的配置参数汇总
- Webpack入门教程三
- js生日计算年龄_生男生女计算公式超准
- SAP LUW Database update discuss mengniu 蒙牛
- C语言麻将递归,C++数据结构与算法——麻将胡牌算法(二:完全胡牌算法)
- 设计灵感|浓浓人文感!中文活动海报设计学习案例
- php 使用phpize报错Cannot find config.m4. Make sure that you run ‘/usr/bin/phpize‘ in the top l
- C#生成随机姓名 单姓 复姓
- 【STM32标准库】【自制库】8位8段数码管(74HC595)【软件部分】
- JSP程序设计实验报告
- nema0183 java解析_NEMA-0183(GPRMC GPGGA)详细解释
- Android编译环境搭建
- that's why you go away(song)
- word如何一次性删除所有批注
- Cat4模块SIM7600CE介绍
- 基于视觉的动态手势轨迹跟踪
- Terraform 和 Oracle Cloud Infrastructure
- 宋图图的工学课程12
热门文章
- When to use DMU?
- 一键查找,批量修改CAD图纸的标注文字
- 使用阿里云短信推送服务发送验证码
- 背包问题(0-1背包问题和完全背包问题)
- 基于SSM的企业管理系统
- mysql 远程 2003错误_MySQL远程连接失败(错误码:2003)
- 能修复受损 DNA的长寿基因?长寿的基因秘密
- t6服务器验证密码失败,T6客户端连接服务器报错误-SA用户登陆失败
- Addon domain SubDomain Parked Domains
- HTML+CSS+JavaScript制作结婚倒计时网页模板 520情人节表白源码HTML 七夕情人节表白源码HTML 生日祝福代码HTML...