批数据训练

Torch中有一种整理你数据结构的东西:DataLoader,它能够包装你的数据,并且进行批训练。

一:相关操作

  1:包的导入:

import torch.utils.data as Data

       初始数据:

x = torch.linspace(1 , 10, 10)
y = torch.linspace(10, 1, 10)

  2:包装数据类:

# 先转换成 torch 能识别的 Dataset
#torch_dataset = Data.TensorDataset(data_tensor=x, target_tensor=y) #以前的版本
torch_dataset = Data.TensorDataset(x,y) #现在的版本这样就行了

  3:加载数据:.DataLoader

loader = Data.DataLoader(
    dataset = torch_dataset, #数据集
    batch_size = BATCH_SIZE, #每次读取的大小
    shuffle = True,  #是否随机打乱
    num_workers=2,  # 多线程来读数据
    )

二:批训练:(源码)

#-*-coding:utf-8-*-
#批数据训练
BATCH_SIZE = 5
import torch
import torch.utils.data as Data

x = torch.linspace(1 , 10, 10)
y = torch.linspace(10, 1, 10)
# 加入“数据集”里面
torch_dataset = Data.TensorDataset(x,y)
loader = Data.DataLoader(
    dataset = torch_dataset,
    batch_size = BATCH_SIZE,
    shuffle = True, #是否随机抽样
    num_workers=2,  # 多线程来读数据
    )

if __name__ == ‘__main__‘:  #没有这一行可能会报错:“he "freeze_support()" line can be omitted if the program”
    for epoch in range(3):
        for index,(batch_x,batch_y) in enumerate(loader):
            # 打出来一些数据
            print(‘Epoch: ‘, epoch, ‘| Step: ‘, index, ‘| batch x: ‘,
                  batch_x.numpy(), ‘| batch y: ‘, batch_y.numpy())

2.结果:

注:

上面这个图为BATCH_SIZE = 5时的结果,原因在于,当数据大小和每次话费大小不是整数倍时,最后一次划分就是剩下的,不一定就是BATCH_SIZE这么大。   比如第一张图:size为5,数据有10个,因此两次,每次五个。第二张图,size为3,数据有10个,所以分为四次,且最后一次只有一个。 

原文地址:https://www.cnblogs.com/carrollCN/p/11345945.html

时间: 2024-10-01 13:03:45

批数据训练的相关文章

08-pytorch(批数据训练)

import torch import torch.utils.data as Data BATCH_SIZE = 5 x = torch.linspace(1,10,10) y = torch.linspace(10,1,10) 这个是打乱数据,然后在 依次的慢慢的按步伐的取出,当不足够的时候,就吧剩下的取出来(自适应) # 格式下x,y torch_dataset = Data.TensorDataset(x, y) loader = Data.DataLoader( # 数据 datase

Caffe下自己的数据训练和测试

在caffe提供的例程当中,例如mnist与cifar10中,数据集的准备均是通过调用代码自己完成的,而对于ImageNet1000类的数据库,对于高校实验室而言,常常面临电脑内存不足的尴尬境地.而对于应用者而言,用适合于自己条件的的数据集在caffe下训练及测试才是更重要的.所以我们有必要自己做数据库以及在caffe上训练及测试. 1,数据准备 在data中新建文件夹myself,我们截取了ImageNet1000类中的两类-panda与sea_horse,训练panda的图片24张,测试pa

caffe:用自己的数据训练网络mnist

画黑底白字的软件:KolourPaint. 假设所有"1"的图片放到名字为1的文件夹下.(0-9类似)..获取每个数字的名称文件后,手动表上标签.然后合成train.txt 1.获取文件夹内全部图像的名称: find ./1 -name '*.png'>1.txt //此时的1.txt文件中的图像名称包括路劲信息,要把前面的路径信息去掉. $ sudo sed -i "s/.\/1\///g" 1.txt          //(\表示转义,所以这里用双引号而

TensorFlow实战-AlexNet

1 # 导入数据 2 from tensorflow.examples.tutorials.mnist import input_data 3 # 读取数据 4 mnist=input_data.read_data_sets("MNIST_data/",one_hot=True) 5 import tensorflow as tf 6 7 # 定义卷积操作函数 8 def conv2d(name,x,w,b): 9 return tf.nn.relu(tf.nn.bias_add(tf

pytorch:EDSR 生成训练数据的方法

Pytorch:EDSR 生成训练数据的方法 引言 Winter is coming 正文 pytorch提供的DataLoader 是用来包装你的数据的工具. 所以你要将自己的 (numpy array 或其他) 数据形式装换成 Tensor, 然后再放进这个包装器中. 使用 DataLoader 有什么好处呢? 就是他们帮你有效地迭代数据, 举例: import torch import torch.utils.data as Data #utils是torch中的一个模块,Data是进行小

yoloV3一步步训练自己的数据

YOLOV3的主页: https://pjreddie.com/darknet/yolo/ 运行主页上的代码得到: 首先使用一个开源的神经网络框架Darknet,使用C和CUDA,有CPU和GPU两种模式. 1.下载darknet 编辑Makefile文件: 2.编译: make 如果遇到缺失包报错,将缺失的包装上去以后重新编译,重复下列两个操作,直到所有包都装好 make clean make 安装好DarkNet之后,在darknet的子目录cfg/下已经有了一些网络模型的配置文件,在使用之

学习笔记TF016:CNN实现、数据集、TFRecord、加载图像、模型、训练、调试

AlexNet(Alex Krizhevsky,ILSVRC2012冠军)适合做图像分类.层自左向右.自上向下读取,关联层分为一组,高度.宽度减小,深度增加.深度增加减少网络计算量. 训练模型数据集 Stanford计算机视觉站点Stanford Dogs http://vision.stanford.edu/aditya86/ImageNetDogs/ .数据下载解压到模型代码同一路径imagenet-dogs目录下.包含的120种狗图像.80%训练,20%测试.产品模型需要预留原始数据交叉验

caffe代码阅读8: Data_layers的实现细节(各个数据读取层的实现细节) 2016.3.25-28

一.Data_layers.hpp文件的作用简介 Data_layers.hpp在目前caffe的master分支中已经不能存在了,分散到各个文件中去了. 而之前是存在于cafferoot\include\caffe中.现在已经变成了各个类的名称的头文件了.这里做个提醒 首先给出这个文件中所包含的几个与数据读取有关的类. 分别为: BaseDataLayer 数据层的基类,继承自通用的类Layer Batch Batch实际上就是一个data_和label_类标 BasePrefetchingD

Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化

来看看批量归一化的有关问题吧!记得进入公号菜单"机器学习",复习之前的系列文章噢. 今天的内容是 [神经网络训练中的批量归一化] 场景描述 深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数,Dropout比例等,这些参数的选择会显著影响模型最终的训练效果.批量归一化(Batch Normalization, BN)方法从数据分布入手,有效减弱了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力. 问题描述 BN基本动机与原理是什么? BN的具体实现