news 2026/10/20 21:23:19

PyTorch_Dataloader\TensorBoard---数据加载与可视化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyTorch_Dataloader\TensorBoard---数据加载与可视化

1. Dataloader 使用

在 PyTorch 中,数据加载主要依赖两个核心类:Dataset与DataLoader。

  • Dataset:负责告诉程序数据集存放在什么位置,以及如何通过索引(如索引 0)获取对应的数据样本。
  • DataLoader:负责将数据加载到神经网络中。它每次从Dataset中取数据,具体取多少、如何取,由DataLoader的参数决定。

1.1 代码示例

importtorchvisionfromtorch.utils.dataimportDataLoader# 准备的测试数据集test_data=torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())img,target=test_data[0]print(img.shape)print(img)# batch_size=4 使得 img0, target0 = dataset[0]、img1, target1 = dataset[1]、# img2, target2 = dataset[2]、img3, target3 = dataset[3],# 然后这四个数据作为 Dataloader 的一个返回test_loader=DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)# 用 for 循环取出 DataLoader 打包好的四个数据fordataintest_loader:imgs,targets=data# 每个 data 都是由 4 张图片组成,# imgs.size 为 [4,3,32,32],四张 32×32 图片三通道,# targets 由四个标签组成print(imgs.shape)print(targets)



1.2 运行结果

torch.Size([3, 32, 32]) tensor([[[0.6196, 0.6235, 0.6471, ..., 0.5373, 0.4941, 0.4549], [0.5961, 0.5922, 0.6235, ..., 0.5333, 0.4902, 0.4667], [0.5922, 0.5922, 0.6196, ..., 0.5451, 0.5098, 0.4706], ..., [0.2667, 0.1647, 0.1216, ..., 0.1490, 0.0510, 0.1569], [0.2392, 0.1922, 0.1373, ..., 0.1020, 0.1137, 0.0784], [0.2118, 0.2196, 0.1765, ..., 0.0941, 0.1333, 0.0824]], [[0.4392, 0.4353, 0.4549, ..., 0.3725, 0.3569, 0.3333], [0.4392, 0.4314, 0.4471, ..., 0.3725, 0.3569, 0.3451], [0.4314, 0.4275, 0.4353, ..., 0.3843, 0.3725, 0.3490], ..., [0.4863, 0.3922, 0.3451, ..., 0.3804, 0.2510, 0.3333], [0.4549, 0.4000, 0.3333, ..., 0.3216, 0.3216, 0.2510], [0.4196, 0.4118, 0.3490, ..., 0.3020, 0.3294, 0.2627]], [[0.1922, 0.1843, 0.2000, ..., 0.1412, 0.1412, 0.1294], [0.2000, 0.1569, 0.1765, ..., 0.1216, 0.1255, 0.1333], [0.1843, 0.1294, 0.1412, ..., 0.1333, 0.1333, 0.1294], ..., [0.6941, 0.5804, 0.5373, ..., 0.5725, 0.4235, 0.4980], [0.6588, 0.5804, 0.5176, ..., 0.5098, 0.4941, 0.4196], [0.6275, 0.5843, 0.5176, ..., 0.4863, 0.5059, 0.4314]]]) torch.Size([4, 3, 32, 32]) tensor([2, 6, 4, 5]) torch.Size([4, 3, 32, 32]) tensor([7, 2, 1, 6]) torch.Size([4, 3, 32, 32]) tensor([6, 7, 4, 4]) torch.Size([4, 3, 32, 32]) tensor([9, 6, 1, 3]) torch.Size([4, 3, 32, 32]) tensor([1, 5, 8, 5]) torch.Size([4, 3, 32, 32]) tensor([1, 8, 4, 6]) torch.Size([4, 3, 32, 32]) tensor([9, 8, 7, 1]) torch.Size([4, 3, 32, 32]) tensor([6, 0, 9, 4]) torch.Size([4, 3, 32, 32]) tensor([7, 1, 9, 9]) torch.Size([4, 3, 32, 32]) tensor([6, 8, 7, 0]) torch.Size([4, 3, 32, 32]) tensor([6, 8, 1, 5]) torch.Size([4, 3, 32, 32]) tensor([5, 2, 7, 8]) torch.Size([4, 3, 32, 32]) tensor([7, 6, 7, 0]) torch.Size([4, 3, 32, 32]) tensor([9, 2, 0, 0]) torch.Size([4, 3, 32, 32]) tensor([0, 6, 0, 8]) torch.Size([4, 3, 32, 32]) tensor([6, 7, 3, 1]) torch.Size([4, 3, 32, 32]) tensor([3, 2, 6, 0]) torch.Size([4, 3, 32, 32]) tensor([3, 2, 6, 0]) torch.Size([4, 3, 32, 32]) tensor([9, 5, 0, 5]) torch.Size([4, 3, 32, 32]) tensor([5, 4, 2, 9]) torch.Size([4, 3, 32, 32]) tensor([9, 5, 9, 8]) torch.Size([4, 3, 32, 32]) tensor([3, 3, 8, 0]) torch.Size([4, 3, 32, 32]) tensor([2, 6, 1, 8]) torch.Size([4, 3, 32, 32]) tensor([1, 5, 6, 4]) torch.Size([4, 3, 32, 32]) tensor([9, 9, 6, 5]) torch.Size([4, 3, 32, 32]) tensor([7, 1, 2, 4]) torch.Size([4, 3, 32, 32]) tensor([1, 0, 8, 5]) torch.Size([4, 3, 32, 32]) tensor([2, 8, 1, 8]) torch.Size([4, 3, 32, 32]) tensor([7, 4, 6, 4]) torch.Size([4, 3, 32, 32]) tensor([5, 8, 5, 1]) torch.Size([4, 3, 32, 32]) tensor([8, 5, 9, 7]) torch.Size([4, 3, 32, 32]) tensor([2, 0, 9, 8]) torch.Size([4, 3, 32, 32]) tensor([2, 1, 4, 7]) torch.Size([4, 3, 32, 32]) tensor([9, 8, 1, 3]) torch.Size([4, 3, 32, 32]) tensor([4, 8, 1, 8]) torch.Size([4, 3, 32, 32]) tensor([5, 3, 8, 1]) torch.Size([4, 3, 32, 32]) tensor([2, 3, 7, 7]) torch.Size([4, 3, 32, 32]) tensor([6, 6, 8, 8]) torch.Size([4, 3, 32, 32]) tensor([4, 2, 7, 6]) torch.Size([4, 3, 32, 32]) tensor([2, 3, 1, 0]) torch.Size([4, 3, 32, 32]) tensor([0, 0, 5, 2]) torch.Size([4, 3, 32, 32]) tensor([0, 1, 1, 4]) torch.Size([4, 3, 32, 32]) tensor([1, 3, 2, 5]) torch.Size([4, 3, 32, 32]) tensor([2, 1, 1, 3]) torch.Size([4, 3, 32, 32]) tensor([5, 6, 1, 3]) torch.Size([4, 3, 32, 32]) tensor([8, 6, 2, 9]) torch.Size([4, 3, 32, 32]) tensor([5, 6, 4, 5]) torch.Size([4, 3, 32, 32]) tensor([9, 8, 5, 7]) torch.Size([4, 3, 32, 32]) tensor([9, 8, 5, 7]) torch.Size([4, 3, 32, 32]) tensor([6, 2, 8, 1]) torch.Size([4, 3, 32, 32]) tensor([6, 8, 7, 7]) torch.Size([4, 3, 32, 32]) tensor([1, 3, 6, 5]) torch.Size([4, 3, 32, 32]) tensor([6, 1, 8, 4]) torch.Size([4, 3, 32, 32]) tensor([1, 5, 7, 7]) torch.Size([4, 3, 32, 32]) tensor([5, 7, 1, 5]) torch.Size([4, 3, 32, 32]) tensor([5, 7, 7, 3]) torch.Size([4, 3, 32, 32]) tensor([1, 7, 4, 8]) torch.Size([4, 3, 32, 32]) tensor([2, 3, 0, 5]) torch.Size([4, 3, 32, 32]) tensor([6, 6, 7, 4]) torch.Size([4, 3, 32, 32]) tensor([2, 2, 7, 9]) torch.Size([4, 3, 32, 32]) tensor([8, 5, 8, 7]) torch.Size([4, 3, 32, 32]) tensor([5, 0, 8, 4]) torch.Size([4, 3, 32, 32]) tensor([4, 5, 9, 8]) torch.Size([4, 3, 32, 32]) tensor([6, 6, 7, 2]) torch.Size([4, 3, 32, 32]) tensor([6, 6, 1, 1]) torch.Size([4, 3, 32, 32]) tensor([2, 8, 3, 2]) torch.Size([4, 3, 32, 32]) tensor([7, 5, 5, 5]) torch.Size([4, 3, 32, 32]) tensor([1, 5, 5, 7]) torch.Size([4, 3, 32, 32]) tensor([0, 7, 5, 0]) torch.Size([4, 3, 32, 32]) tensor([9, 1, 4, 1]) torch.Size([4, 3, 32, 32]) tensor([8, 4, 6, 1]) torch.Size([4, 3, 32, 32]) tensor([3, 3, 0, 1]) torch.Size([4, 3, 32, 32]) tensor([7, 8, 6, 5]) torch.Size([4, 3, 32, 32]) tensor([3, 9, 6, 0]) torch.Size([4, 3, 32, 32]) tensor([9, 4, 5, 7]) torch.Size([4, 3, 32, 32]) tensor([0, 3, 4, 9]) torch.Size([4, 3, 32, 32]) tensor([1, 2, 8, 8]) torch.Size([4, 3, 32, 32]) tensor([7, 5, 0, 9]) torch.Size([4, 3, 32, 32]) tensor([3, 9, 3, 5]) torch.Size([4, 3, 32, 32]) tensor([3, 9, 3, 5]) torch.Size([4, 3, 32, 32]) tensor([0, 4, 3, 5]) torch.Size([4, 3, 32, 32]) tensor([6, 3, 5, 6]) torch.Size([4, 3, 32, 32]) tensor([2, 8, 8, 7]) torch.Size([4, 3, 32, 32]) tensor([6, 3, 4, 3]) torch.Size([4, 3, 32, 32]) tensor([7, 3, 2, 5]) torch.Size([4, 3, 32, 32]) tensor([1, 7, 5, 5]) torch.Size([4, 3, 32, 32]) tensor([3, 5, 2, 5]) torch.Size([4, 3, 32, 32]) tensor([3, 1, 5, 7]) torch.Size([4, 3, 32, 32]) tensor([0, 4, 7, 4]) torch.Size([4, 3, 32, 32]) tensor([6, 9, 9, 5]) torch.Size([4, 3, 32, 32]) tensor([8, 8, 6, 6]) torch.Size([4, 3, 32, 32]) tensor([0, 9, 3, 9]) torch.Size([4, 3, 32, 32]) tensor([4, 2, 2, 2]) torch.Size([4, 3, 32, 32]) tensor([5, 7, 6, 8]) torch.Size([4, 3, 32, 32]) tensor([8, 5, 2, 3]) torch.Size([4, 3, 32, 32]) tensor([1, 4, 3, 8]) torch.Size([4, 3, 32, 32]) tensor([8, 0, 3, 7]) torch.Size([4, 3, 32, 32]) tensor([2, 7, 1, 9]) torch.Size([4, 3, 32, 32]) tensor([1, 4, 4, 8]) torch.Size([4, 3, 32, 32]) tensor([0, 8, 6, 3]) torch.Size([4, 3, 32, 32]) tensor([6, 7, 2, 1]) torch.Size([
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 21:20:35

折扣卡CPS渠道佣金比例配置功能设计

折扣卡CPS渠道佣金比例配置功能设计 在折扣卡CPS系统运营过程中,不同联盟渠道、不同卡密批次、不同代理商需要差异化的佣金分配方案。如果佣金比例硬编码在代码中,每次调整分佣规则都需要改代码、重新发版,运营效率低且存在资金风险。本文围绕…

作者头像 李华
网站建设 2026/10/20 21:20:30

AI自动解CTF:从流水线搭建到实战翻车实录

这两天我在练习平台上刷CTF,脑子里突然冒出一个有点中二的想法:如果我全程不用手,把这些题丢给AI去解,能做到什么程度?当天我花了一个小时把常用的几个开源模型串成一条流水线,又在本地靶场上挑了二十多道题…

作者头像 李华
网站建设 2026/10/20 21:14:56

重读《TCP/IP详解》第2版:用问题导向笔记吃透TCP重传与拥塞控制

今年年初,我给自己排了一个很朴素的任务:把《TCP/IP详解(第2版)》卷一重新读一遍,并且整理一份能当检索面板用的目录式笔记。起因很实在——一次线上接口偶发变慢,抓包看到满屏重复ACK和重传包,…

作者头像 李华
网站建设 2026/10/20 21:10:04

Pulsar与开源集市:消息中间件在COSCon的碰撞与参与指南

又到周末了。这周朋友圈里很多开源圈的朋友都在转同一个消息:Pulsar 与 COSCon‘25 开源集市碰头。有人问我:“Pulsar 不是搞消息系统的吗,它去开源集市摆摊干什么?”这个疑问其实问到了点子上。这篇文章想一次性把三件事讲清楚&a…

作者头像 李华
网站建设 2026/10/20 21:09:36

深入解析向量:从动态数组原理到手写实现与性能优化

1. 向量到底是什么:从“能自动扩容的数组”说起很多人第一次接触“向量”这个词,是在线性代数课上,脑子里浮现的是一支带箭头的线段。但在数据结构与算法的语境里,向量是另一回事——它本质上就是一个能自动扩容的动态数组。你不需…

作者头像 李华
网站建设 2026/10/20 21:09:32

PHY62XX开发环境搭建:从工具链配置到可复现烧录

简介:本资源是奉加微PHY62XX系列芯片(含PHY6212/6222/6252及手环、红外遥控等衍生方案)的全栈开发资料汇总包,面向嵌入式IoT开发者、硬件工程师及量产项目研发人员,一站式解决BLE SoC选型评估、固件开发、OTA升级、PCB…

作者头像 李华