python-pytorch关于next和iter使用时没有效果的笔记

问题

自己写来一个自定义数据集的类,使用dataloader去加载,然后使用next和iter去访问,每次访问到的数据都是一致的

python 复制代码
datas,lables=next(iter(train_dataloader))
print(lables)
datas1,lables1=next(iter(train_dataloader))
print(lables1)

输出

python 复制代码
tensor([9, 0, 0, 3, 0, 2, 7, 2, 5, 5, 0, 9, 5, 5, 7, 9, 1, 0, 6, 4, 3, 1, 4, 8,
        4, 3, 0, 2, 4, 4, 5, 3, 6, 6, 0, 8, 5, 2, 1, 6, 6, 7, 9, 5, 9, 2, 7, 3,
        0, 3, 3, 3, 7, 2, 2, 6, 6, 8, 3, 3, 5, 0, 5, 5])
tensor([9, 0, 0, 3, 0, 2, 7, 2, 5, 5, 0, 9, 5, 5, 7, 9, 1, 0, 6, 4, 3, 1, 4, 8,
        4, 3, 0, 2, 4, 4, 5, 3, 6, 6, 0, 8, 5, 2, 1, 6, 6, 7, 9, 5, 9, 2, 7, 3,
        0, 3, 3, 3, 7, 2, 2, 6, 6, 8, 3, 3, 5, 0, 5, 5])

原因

每次都根据数据集生成了一个迭代器,所以执行结果是一样的

解决

改成同一迭代器,再next就还可以了,问题比较低级

python 复制代码
cc2=iter(train_dataloader)
datas,lables=next(cc2)
print(lables)
datas1,lables1=next(cc2)
print(lables1)

输出

python 复制代码
tensor([9, 0, 0, 3, 0, 2, 7, 2, 5, 5, 0, 9, 5, 5, 7, 9, 1, 0, 6, 4, 3, 1, 4, 8,
        4, 3, 0, 2, 4, 4, 5, 3, 6, 6, 0, 8, 5, 2, 1, 6, 6, 7, 9, 5, 9, 2, 7, 3,
        0, 3, 3, 3, 7, 2, 2, 6, 6, 8, 3, 3, 5, 0, 5, 5])
tensor([0, 2, 0, 0, 4, 1, 3, 1, 6, 3, 1, 4, 4, 6, 1, 9, 1, 3, 5, 7, 9, 7, 1, 7,
        9, 9, 9, 3, 2, 9, 3, 6, 4, 1, 1, 8, 8, 0, 1, 1, 6, 8, 1, 9, 7, 8, 8, 9,
        6, 6, 3, 1, 5, 4, 6, 7, 5, 5, 9, 2, 2, 2, 7, 6])
        ```
相关推荐
先做个垃圾出来………5 分钟前
Python 中 kwargs.get() 方法详解
开发语言·python
大闲在人10 分钟前
Trae builder 实战: 让 C++ 函数像 Python 一样返回多个值
c++·python·ai编程
魔芋红茶12 分钟前
Spring Security 学习笔记 3:认证模型
笔记·学习·spring
柠檬丶抒情18 分钟前
Rust深度学习框架Burn 0.20是否能超过python?
python·深度学习·rust·vllm
reesn21 分钟前
celery 使用说明
python
timer_01722 分钟前
英伟达发布 PersonaPlex-7B-v1
笔记
代码游侠28 分钟前
ARM 嵌入式开发学习——从内核到外设
arm开发·笔记·嵌入式硬件·学习
ValhallaCoder29 分钟前
Day50-图论
数据结构·python·算法·图论
好好学操作系统31 分钟前
notion+excel自动创建表格| 了解了notion api
数据库·python·oracle·excel·notion
一晌小贪欢32 分钟前
用 PyQt5 做一个「批量目录重命名」工具,并打包成带图标的 EXE
开发语言·驱动开发·python·python基础·python小白