Pytorch-DataLoader的使用

Pytorch-DataLoader的使用原文连接:http://chenhao.space/post/d313d236.htmlpytorch-DataLoader的使用importtorchimporttorch.utils.dataasData#[1,1,1]相当于一句话的wordembedding,这个tensor中含有三句话x=torch.tensor([[1,1,1],[2,2,2…

大家好,又见面了,我是你们的朋友全栈君。

原文连接: http://chenhao.space/post/d313d236.html

pytorch-DataLoader的使用

import torch
import torch.utils.data as Data

# [1, 1, 1]相当于一句话的word embedding,这个tensor中含有三句话
x = torch.tensor([[1, 1, 1], [2, 2, 2,], [3, 3, 3], [4, 4, 4], [5, 5, 5,], [6, 6, 6],[7, 7, 7], [8, 8, 8,], [9, 9, 9], [10, 10, 10]])
# [1, 2, 3]分别是这三句话的标签
y = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

torch_dataset = Data.TensorDataset(x, y)

# dataset:Dataset类型,从其中加载数据 
# batch_size:int,可选。每个batch加载多少样本 
# shuffle:bool,可选。为True时表示每个epoch都对数据进行洗牌 
# sampler:Sampler,可选。从数据集中采样样本的方法。 
# num_workers:int,可选。加载数据时使用多少子进程。默认值为0,表示在主进程中加载数据。 
# collate_fn:callable,可选。 
# pin_memory:bool,可选 
# drop_last:bool,可选。True表示如果最后剩下不完全的batch,丢弃。False表示不丢弃。
loader = Data.DataLoader(torch_dataset, batch_size=3, shuffle=True, num_workers=0)

data = iter(loader)

n = len(y)//3 if len(y)%3 == 0 else len(y)//3 + 1   # batch的数量
for i in range(n):   
    print(next(data))
[tensor([[5, 5, 5],
        [9, 9, 9],
        [8, 8, 8]]), tensor([5, 9, 8])]
[tensor([[10, 10, 10],
        [ 2,  2,  2],
        [ 7,  7,  7]]), tensor([10,  2,  7])]
[tensor([[6, 6, 6],
        [1, 1, 1],
        [3, 3, 3]]), tensor([6, 1, 3])]
[tensor([[4, 4, 4]]), tensor([4])]

for epoch in range(5):   # 训练所有数据5次
    i = 0
    for sentence, label in loader:
        i += 1
        print('Epoch:{} | num:{} | sentence:{} | label:{}'.format(epoch,i,sentence,label))
Epoch:0 | num:1 | sentence:tensor([[10, 10, 10],
        [ 2,  2,  2],
        [ 8,  8,  8]]) | label:tensor([10,  2,  8])
Epoch:0 | num:2 | sentence:tensor([[7, 7, 7],
        [9, 9, 9],
        [5, 5, 5]]) | label:tensor([7, 9, 5])
Epoch:0 | num:3 | sentence:tensor([[6, 6, 6],
        [4, 4, 4],
        [1, 1, 1]]) | label:tensor([6, 4, 1])
Epoch:0 | num:4 | sentence:tensor([[3, 3, 3]]) | label:tensor([3])
Epoch:1 | num:1 | sentence:tensor([[9, 9, 9],
        [3, 3, 3],
        [4, 4, 4]]) | label:tensor([9, 3, 4])
Epoch:1 | num:2 | sentence:tensor([[8, 8, 8],
        [6, 6, 6],
        [5, 5, 5]]) | label:tensor([8, 6, 5])
Epoch:1 | num:3 | sentence:tensor([[ 1,  1,  1],
        [10, 10, 10],
        [ 2,  2,  2]]) | label:tensor([ 1, 10,  2])
Epoch:1 | num:4 | sentence:tensor([[7, 7, 7]]) | label:tensor([7])
Epoch:2 | num:1 | sentence:tensor([[4, 4, 4],
        [6, 6, 6],
        [7, 7, 7]]) | label:tensor([4, 6, 7])
Epoch:2 | num:2 | sentence:tensor([[10, 10, 10],
        [ 8,  8,  8],
        [ 5,  5,  5]]) | label:tensor([10,  8,  5])
Epoch:2 | num:3 | sentence:tensor([[3, 3, 3],
        [2, 2, 2],
        [9, 9, 9]]) | label:tensor([3, 2, 9])
Epoch:2 | num:4 | sentence:tensor([[1, 1, 1]]) | label:tensor([1])
Epoch:3 | num:1 | sentence:tensor([[7, 7, 7],
        [5, 5, 5],
        [3, 3, 3]]) | label:tensor([7, 5, 3])
Epoch:3 | num:2 | sentence:tensor([[10, 10, 10],
        [ 1,  1,  1],
        [ 6,  6,  6]]) | label:tensor([10,  1,  6])
Epoch:3 | num:3 | sentence:tensor([[9, 9, 9],
        [8, 8, 8],
        [4, 4, 4]]) | label:tensor([9, 8, 4])
Epoch:3 | num:4 | sentence:tensor([[2, 2, 2]]) | label:tensor([2])
Epoch:4 | num:1 | sentence:tensor([[ 5,  5,  5],
        [ 7,  7,  7],
        [10, 10, 10]]) | label:tensor([ 5,  7, 10])
Epoch:4 | num:2 | sentence:tensor([[9, 9, 9],
        [3, 3, 3],
        [4, 4, 4]]) | label:tensor([9, 3, 4])
Epoch:4 | num:3 | sentence:tensor([[2, 2, 2],
        [8, 8, 8],
        [1, 1, 1]]) | label:tensor([2, 8, 1])
Epoch:4 | num:4 | sentence:tensor([[6, 6, 6]]) | label:tensor([6])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146258.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pandas 处理缺失值[dropna、drop、fillna][通俗易懂]

    pandas 处理缺失值[dropna、drop、fillna][通俗易懂]面对缺失值三种处理方法:option1:去掉含有缺失值的样本(行)option2:将含有缺失值的列(特征向量)去掉option3:将缺失值用某些值填充(0,平均值,中值等)对于dropna和fillna,dataframe和series都有,在这主要讲datafame的对于option1:使用DataFrame.dropna(axis=0,how=’any’,thres…

  • SSM整合实现增删改查操作【保姆式教学】

    SSM整合实现增删改查操作【保姆式教学】SSM整合实现增删改查操作【超详细】准备工作环境准备数据库准备开始干活新建个Maven项目ssmtest,加上Web支持添加依赖完整的pom.xml创建entity、dao、service、controller包实体类编写添加lombook持久层接口编写业务层接口编写业务层实现类编写表现层编写整合步骤保证Spring框架在web工程中独立运行第一步:编写spring配置文件并导入约束第二步:使用注解配置业务层第三步:导入log4j.properties配置文件第四步:测试spring能否独立

  • pycharm关闭自动补全_python opencv 教程

    pycharm关闭自动补全_python opencv 教程我刚下载pycharm,准备学opencv,然后在网上博客上找了许多文章看了,有的说下载后导入修改cv2文件夹里的_init_.py,但是经过测试也不行,个人感觉总是少了啥,然后找了许多文章看了然后也试了,除了安装opencv成功之外就没有了。后来看了许多文章之后看见每个博客写的方法都不一样,这里我就有点顿悟了…我看到cv2文件夹中的_init_.py里面的code已经说清楚啦,我是刚开始不怎么看得懂英文的意思,后来仔细看了才大概明白了一丢丢…请看:importimportlibimport

  • quartus波形仿真破解MODELSIM「建议收藏」

    quartus波形仿真破解MODELSIM「建议收藏」(1)对于Quartus14.0安装时自动安装了modelsim的ae和ase两个版本,分别位于D:\ProgramFiles\altera\14.0\modelsim_ase和D:\ProgramFiles\altera\14.0\modelsim_ae目录下(根据自己的安装路径而定)。其中ae是免费的,包含有altera的FPGA芯片,而ase除了altera的外,还有xilinx的,库更…

  • 图像的拼接—-RANSAC算法

    图像的拼接—-RANSAC算法一、全景拼接的原理1.RANSAC算法介绍RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outliers,偏离正常范围很远、无法适应数学模

  • 关于Vue使用es6模板字符串没反应的问题「建议收藏」

    关于Vue使用es6模板字符串没反应的问题「建议收藏」错误示范VScode发get请求的地址及参数使用单引号”包裹时,发现${this.keyWord}没有变颜色,跟字符串一个颜色,也就是没有将this.keyWord识别成变量,当成了一般字符串,发请求时带的参数问题请求不到结果search(){ this.$axios.get(‘https://api.github.com/search/users?q=${this.keyWord}’).then( res=>{ console.log(res); }, err=&gt

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号