pytorch 6 batch_train 批训练操作

 更新时间:2021年05月28日 14:40:57   作者:YangZhaonan  
这篇文章主要介绍了pytorch 6 batch_train 批训练操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

看代码吧~

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如何写入dbf文件内容及创建dbf文件

    python如何写入dbf文件内容及创建dbf文件

    这篇文章主要介绍了python如何写入dbf文件内容及创建dbf文件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python+Pygame编写一个Pong游戏

    Python+Pygame编写一个Pong游戏

    Pong游戏模拟了两个打乒乓球的人,就是在两条线中间有一个点在动,操纵器就是一个摇杆上有一个按钮的那种。本文就来用Python中的Pygame库编写一个Pong小游戏
    2023-01-01
  • 利用Python绘制酷炫的3D地图

    利用Python绘制酷炫的3D地图

    pyecharts是一款将python与echarts结合的强大的数据可视化工具。本文将为大家介绍如何利用pyecharts绘制酷炫的3D地图,感兴趣的小伙伴可以试一试
    2022-03-03
  • 解决Mac下首次安装pycharm无project interpreter的问题

    解决Mac下首次安装pycharm无project interpreter的问题

    今天小编就为大家分享一篇解决Mac下首次安装pycharm无project interpreter的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python爬虫之快速对js内容进行破解

    python爬虫之快速对js内容进行破解

    这篇文章主要介绍了python爬虫之快速对js内容进行破解,到一般js破解有两种方法,一种是用Python重写js逻辑,一种是利用第三方库来调用js内容获取结果,这次我们就用第三方库来进行js破解,需要的朋友可以参考下
    2019-07-07
  • 使用Python分析数据并进行搜索引擎优化的操作步骤

    使用Python分析数据并进行搜索引擎优化的操作步骤

    在互联网时代,网站数据是一种宝贵的资源,可以用来分析用户行为、市场趋势、竞争对手策略等,本文将介绍如何使用Python爬取网站数据,并进行搜索引擎优化,,需要的朋友可以参考下
    2023-08-08
  • 利用python计算时间差(返回天数)

    利用python计算时间差(返回天数)

    这篇文章主要给大家介绍了关于如何利用python计算时间差(返回天数)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • python实现一个简单RPC框架的示例

    python实现一个简单RPC框架的示例

    本文将会使用Python实现一个最简单的RPC框架,不具有实用意义,但可以让你清醒地理解RPC框架的几个组成部分,只是比看Python自带的xmlrpc清晰。
    2020-10-10
  • Python实现螺旋矩阵的填充算法示例

    Python实现螺旋矩阵的填充算法示例

    这篇文章主要介绍了Python实现螺旋矩阵的填充算法,结合实例形式分析了Python实现螺旋矩阵的相关循环、遍历、判断、运算等操作技巧,需要的朋友可以参考下
    2017-12-12
  • python yield迭代器详解

    python yield迭代器详解

    带有yield的函数在Python中被称之为generator(生成器),也就是说,当你调用这个函数的时候,函数内部的代码并不立即执行 ,这个函数只是返回一个生成器
    2022-11-11

最新评论