栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch设置batch

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch设置batch

使用pytorch进行数据网络训练时,数据集可能有上万条数据,训练的话比较浪费时间,设置batch,一次训练一个batch_size的大小,既节省时间,又可以快速收敛。
使用前需要导入包:

from torch.utils.data import Dataset, DataLoader, TensorDataset

设置batch,需要将训练数据的输入属性和标签放入DataLoader中,见下:

def addbatch(data_train,data_test,batchsize):
    """
    设置batch
    :param data_train: 输入
    :param data_test: 标签
    :param batchsize: 一个batch大小
    :return: 设置好batch的数据集
    """
    data = TensorDataset(data_train,data_test)
    data_loader = DataLoader(data, batch_size=batchsize, shuffle=False)#shuffle是是否打乱数据集,可自行设置

    return data_loader

使用时调用即可:

#设置batch
    traindata=addbatch(traininput,trainlabel,1000)#1000为一个batch_size大小为1000,训练集为10000时一个epoch会训练10次。

进行神经网络训练用下面方法:

    for epoch in range(EPOCH):
        for step, data in enumerate(traindata):
            inputs, labels = data
            # 前向传播
            out = net(inputs)
            # 计算损失函数
            loss = loss_func(out, labels)
            # 清空上一轮的梯度
            optimizer.zero_grad()
            # 反向传播
            loss.backward()
            # 参数更新
            optimizer.step()

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号