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])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle数据库满了,数据库hang住

    oracle数据库满了,数据库hang住

    2021年8月28日
    50
  • Micron(美光)内存颗粒的命名规则,7lk17d9PTK,MT29F2G08ABAEA(矿机自带)

    Micron(美光)内存颗粒的命名规则,7lk17d9PTK,MT29F2G08ABAEA(矿机自带)三四十买了一个矿机主板,ddr3的芯片和flash的型号认不全,找了一些资料,如下1.DDR3芯片的识别ZYNQ7000系列ddr最多支持1G,这两个拼一起就是500M一半的样子我们随便找一个Micron的DDR3或者SPINANDFLASH,会发现丝印不是具体型号,真他妈奇怪!!!!!如:看了都有不知道什么型号的DDR芯片以前自己懵剩剩的,还好公司的硬件工程师帮我解答了多年以来的困惑:https://www.micron.com/support/tools-and-utilities

    2022年6月22日
    376
  • c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)—–转载「建议收藏」

    c# mysql executenonquery_c#数据四种执行方法(ExecuteNonQuery)—–转载「建议收藏」c#数据四种执行方法(ExecuteNonQuery)1.使用ExecuteReader()操作数据库2.使用ExecuteNonQuery()操作数据库3.使用ExecuteScalar()操作数据库4.使用DataSet数据集插入记录,更新数据一、使用ExecuteReader()操作数据库,执行查询操作的非常好的方法。ExecuteReader比DataSet而言,DataReader具有较…

    2025年8月29日
    5
  • 微信公众平台卡券功能_微信账号上的领劵是真是假

    微信公众平台卡券功能_微信账号上的领劵是真是假文章目录1.微信卡券功能介绍2.申请方式2.1公众平台申请2.2开放平台申请3.申请条件3.1公众平台条件3.2开放平台条件4.申请种类、类目、商户类型4.1开放种类4.2开放类目4.3开放商户类型5.申请流程及步骤5.1申请流程5.2申请步骤5.2.1公众平台申请步骤5.2.2开放平台申请步骤6.开发流程6.1制作普通卡券通过微信公众平台制作(免开发)6.2卡券投放6.3卡券核销扩展微信《卡券功能申请类目与资质审核要求》微信《卡券违规处罚及清退规则》1.微信卡券

    2022年8月20日
    10
  • springboot实战第四章-SpringMVC的文件上传配置

    springboot实战第四章-SpringMVC的文件上传配置

    2021年5月15日
    125
  • vue3.0中关闭eslint(全部不检测)[通俗易懂]

    vue3.0中关闭eslint(全部不检测)[通俗易懂]前言:在项目中eslint检查是一个很棒的工具,但是在非正式场合,或者某些情况下,他会给我们带来很多不方便,这里分享下如何在新建项目后把他的eslint检查先关掉(正式项目不推荐关闭,因为良好的习惯是从每一行代码的规范开始)方法:打开我们的.eslintrc.js文件,把’@vue/standard’注释,然后把服务重启,重启,重启,重要的事情说三遍.eslintrc.jsmodule.exports={root:true,…

    2022年6月7日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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