pytorch 6 batch_train 批训练操作


Posted in Python onMay 28, 2021

看代码吧~

import torch
import torch.utils.data as Data
torch.manual_seed(1)    # reproducible
# BATCH_SIZE = 5  
BATCH_SIZE = 8      # 每次使用8个数据同时传入网路
x = torch.linspace(1, 10, 10)       # this is x data (torch tensor)
y = torch.linspace(10, 1, 10)       # this is y data (torch tensor)
torch_dataset = Data.TensorDataset(x, y)
loader = Data.DataLoader(
    dataset=torch_dataset,      # torch TensorDataset format
    batch_size=BATCH_SIZE,      # mini batch size
    shuffle=False,              # 设置不随机打乱数据 random shuffle for training
    num_workers=2,              # 使用两个进程提取数据,subprocesses for loading data
)
def show_batch():
    for epoch in range(3):   # 全部的数据使用3遍,train entire dataset 3 times
        for step, (batch_x, batch_y) in enumerate(loader):  # for each training step
            # train your data...
            print('Epoch: ', epoch, '| Step: ', step, '| batch x: ',
                  batch_x.numpy(), '| batch y: ', batch_y.numpy())
if __name__ == '__main__':
    show_batch()

BATCH_SIZE = 8 , 所有数据利用三次

Epoch:  0 | Step:  0 | batch x:  [1. 2. 3. 4. 5. 6. 7. 8.] | batch y:  [10.  9.  8.  7.  6.  5.  4.  3.]
Epoch:  0 | Step:  1 | batch x:  [ 9. 10.] | batch y:  [2. 1.]
Epoch:  1 | Step:  0 | batch x:  [1. 2. 3. 4. 5. 6. 7. 8.] | batch y:  [10.  9.  8.  7.  6.  5.  4.  3.]
Epoch:  1 | Step:  1 | batch x:  [ 9. 10.] | batch y:  [2. 1.]
Epoch:  2 | Step:  0 | batch x:  [1. 2. 3. 4. 5. 6. 7. 8.] | batch y:  [10.  9.  8.  7.  6.  5.  4.  3.]
Epoch:  2 | Step:  1 | batch x:  [ 9. 10.] | batch y:  [2. 1.]

补充:pytorch批训练bug

问题描述:

在进行pytorch神经网络批训练的时候,有时会出现报错 

TypeError: batch must contain tensors, numbers, dicts or lists; found <class 'torch.autograd.variable.Variable'>

解决办法:

第一步:

检查(重点!!!!!):

train_dataset = Data.TensorDataset(train_x, train_y)

train_x,和train_y格式,要求是tensor类,我第一次出错就是因为传入的是variable

可以这样将数据变为tensor类:

train_x = torch.FloatTensor(train_x)

第二步:

train_loader = Data.DataLoader(
        dataset=train_dataset,
        batch_size=batch_size,
        shuffle=True
    )

实例化一个DataLoader对象

第三步:

for epoch in range(epochs):
        for step, (batch_x, batch_y) in enumerate(train_loader):
            batch_x, batch_y = Variable(batch_x), Variable(batch_y)

这样就可以批训练了

需要注意的是:train_loader输出的是tensor,在训练网络时,需要变成Variable

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现在windows下操作word的方法
Apr 28 Python
python简单实现基数排序算法
May 16 Python
Flask解决跨域的问题示例代码
Feb 12 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
pytorch 如何使用batch训练lstm网络
May 28 #Python
使用Pytorch训练two-head网络的操作
May 28 #Python
使用Python的开发框架Brownie部署以太坊智能合约
使用Pytorch实现two-head(多输出)模型的操作
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
用python画城市轮播地图
用Python实现一个打字速度测试工具来测试你的手速
You might like
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
python关于倒排列的知识点总结
2020/10/13 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
党员的自我评价范文
2014/01/02 职场文书
开展创先争优活动总结
2014/08/28 职场文书
青年教师个人总结
2015/02/11 职场文书
法律进社区活动总结
2015/05/07 职场文书
个人道歉信大全
2019/04/11 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers