神经网络入门实战:(五)本地数据集的读取,以及从pytorch官网下载数据集的操作

本地带标签图片数据集的读取

代码里面的注释写的都比较清楚,也有拓展的部分,这里就不详细列出。

from torch.utils.data import Dataset # 从torch.utils.data导入Dataset类,用于创建自定义的数据集类
from PIL import Image #引入PIL库中的Image模块,进行图片的读取、处理
import os # 引入os模块,用于文件和目录路径的操作class MyDataset(Dataset):def __init__(self,root_dir,label_dir):self.root_dir = root_dir # 图片路径的前一部分self.label_dir = label_dir # 图片的标签,同时也是路径中最后一层文件夹的名称self.path = os.path.join(self.root_dir,self.label_dir) # 合并上述两个部分,组成完整文件夹路径名self.img_name = os.listdir(self.path) # 将路径下的文件名全部读取出来,存放进一个列表中!def __getitem__(self, index): # 此函数用于获取单个样本及其标签img_name = self.img_name[index]img_path = os.path.join(self.path,img_name) # 图片的完整路径名img = Image.open(img_path) # 打开图片label = self.label_dir # 图片标签return img, labeldef __len__(self):return len(self.img_name)# 创建实例
# root_dir = "E:/1_pycharm_files/Project2/dataset/train"
root_dir = "E:\\4_Data_sets\\dataset2\\train" # 这里的斜杠可以写成 / 或者 \\,windows系统下,两种斜杠都支持
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyDataset(root_dir,ants_label_dir)
bees_dataset = MyDataset(root_dir,bees_label_dir)# img,label = ants_dataset[0] 可以返回第一张蚂蚁图片及其标签
# img,label = bees_dataset[0] 可以返回第一张蜜蜂图片及其标签# train_dataset = ants_dataset + bees_dataset 可以通过加号来拼接数据集

pytorch 官网数据集的下载与读取

代码中的许多操作见后面的笔记,例如 tensorboard

网址:Datasets — Torchvision 0.20 documentation ,主要通过官网的 torchvison 包里的工具去访问和下载。

主要的数据集:MNIST(0~9手写数字),CIFAR10(10中物类)。

下面以 CIFAR10 数据集的读取为例:

import torchvision
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter('logs')dataclass_transform = transforms.Compose([transforms.ToTensor(),
])# 如果已经下好了,那么再次运行之后就不会再下载了
train_dataset = torchvision.datasets.CIFAR10(root='E:\\4_Data_sets\\species recognition', train=True,transform=dataclass_transform, download=True)
test_dataset = torchvision.datasets.CIFAR10(root='E:\\4_Data_sets\\species recognition', train=False,transform=dataclass_transform, download=True)for i in range(10):img, label = test_dataset[i]writer.add_image("test-set", img, i)writer.close()

在官网中可以查看数据集的下载所需的参数,或者按住 ctrl,鼠标停在CIFAR10(即数据集名)上,就可以查看所需的主要参数。

下载时在 RUN 窗口里会给出一个网址,可以按住 ctrl +c 停止代码下载,复制该网址至迅雷中下载,会快很多。

实现效果:

在这里插入图片描述


上一篇下一篇
神经网络入门实战(四)神经网络入门实战(六)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Maven】继承和聚合

5. Maven的继承和聚合 5.1 什么是继承 Maven 的依赖传递机制可以一定程度上简化 POM 的配置,但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本,且这些模块之间不存在依赖关系,这就导致同一个依赖…

【C++打怪之路Lv16】-- map set

🌈 个人主页:白子寰 🔥 分类专栏:重生之我在学Linux,C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持…

Python爬虫爬取数据报错

报错: Error fetching the URL: (Connection aborted., ConnectionResetError(10054, 远程主机强迫关闭了一个现有的连接。, None, 10054, None)) 报错原因: 目标服务器限制: 目标网站可能已经检测到你的请求来自自动化工具(如爬虫…

【Linux】线程的互斥和同步

【Linux】线程的互斥和同步 线程间的互斥 临界资源:多线程执行共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临界区&#…

抓包之查看http basic auth认证方式

写在前面 在这篇文章中我们看了http basic auth的认证方式,本文通过wireshark抓包的方式来验证http协议的交互过程。 1:正文 首先wireshark抓取本机回环地址(具体看你服务情况,决定哪个网卡,我本地是运行在127的&am…

网络安全(1)_对称加密和非对称加密

1 网络安全概述 1.1 计算机网络面临的安全威协 (1)截获:攻击者从网络上窃听他人的通信内容,通常把这类攻击称为“截获”。在被动攻击中,攻击者只是观察和分析某一个协议数据单元(PDU)而不干扰信…

vmware中所有虚拟机都ping不通时解决方案

文章目录 1、报错内容:2、 报错原因:3、解决方案: 1、报错内容: 2、 报错原因: DNS解析错误。 一个虚拟机ping不通可能是网关配置问题,但我的网关配置也都没问题,而且我的所有虚拟机都ping不通…

智慧防汛平台在城市生命线安全建设中的应用

随着城市化进程的加快,城市基础设施的复杂性和互联性不断增强,城市生命线的安全管理面临前所未有的挑战。智慧防汛平台作为城市生命线安全建设的重要组成部分,通过现代信息技术提升城市防汛应急管理的智能化水平,保障城市安全。 …

自己整理的的java面试题

IO 按照流的流向分类:输入流和输出流 按照操作单元分类:可以分为字节流和字符流 按照流的角色划分:节点流和处理流 所有输入流的基类:InputStream/Reader 字节流/字符流 所有输出流的基类:OutputStream/Reader 字…

Android数据存储——文件存储、SharedPreferences、SQLite、Litepal

数据存储全方案——详解持久化技术 Android系统中主要提供了3中方式用于简单地实现数据持久化功能,即文件存储、SharedPreference存储以及数据库存储。除了这三种方式外,还可以将数据保存在手机的SD卡中,不给使用文件、SharedPreference或者…

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…

(vue)启动项目报错The project seems to require pnpm but it‘s not installed

(vue)启动项目报错The project seems to require pnpm but it’s not installed 原因 该错误信息表明你的项目需要使用 pnpm 作为包管理工具,但系统中尚未安装 pnpm。 解决方法 【1】删除pnpm.lock 【2】npm install -g pnpm 之后再重新启动 yarn报错&#xff0…

【R安装】VSCODE安装及R语言环境配置

目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code(简称“VSCode” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器&…

微信小游戏/抖音小游戏SDK接入踩坑记录

文章目录 前言问题记录1、用是否存在 wx 这个 API 来判断是微小平台还是抖小平台不生效2、微小支付的参数如何获取?3、iOS 平台不支持虚拟支付怎么办?微小 iOS 端支付时序图:抖小 iOS 端支付:4、展示广告时多次回调 onClose5、在使用单例时 this 引起的 bug6、使用 fetch 或…

Python 3 教程第24篇(输入和输出)

Python3 输入和输出 在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能。本章节我们将具体介绍 Python 的输入输出。 输出格式美化 Python两种输出值的方式: 表达式语句和 print() 函数。 第三种方式是使用文件对象的 write() 方法,标准输…

ChatGPT的应用场景:开启无限可能的大门

ChatGPT的应用场景:开启无限可能的大门 随着人工智能技术的快速发展,自然语言处理领域迎来了前所未有的突破。其中,ChatGPT作为一款基于Transformer架构的语言模型,凭借其强大的语言理解和生成能力,在多个行业和场景中展现出了广泛的应用潜力。以下是ChatGPT八个最具代表…

尚硅谷学习笔记——Java设计模式(一)设计模式七大原则

一、介绍 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,提出的解决方案。我们希望我们的软件能够实现复用性、高稳定性、扩展性、维护性、代码重用性,所以…

【iOS】知乎日报总结

文章目录 前言首页网络请求轮播图上滑加载图片请求 文章详情页WKWebView的使用点赞、收藏持久化——FMDB的使用 其他问题沙盒问题单元格点击其他 总结 前言 在系统学习了OC语言和UI控件后,知乎日报是第一个比较大的项目,耗时一个多月时间,里面…

网安瞭望台第6期 :XMLRPC npm 库被恶意篡改、API与SDK的区别

国内外要闻 XMLRPC npm 库被恶意篡改,窃取数据并部署加密货币挖矿程序 网络安全研究人员发现了一起在 npm 包注册表上活跃了一年多的软件供应链攻击。名为 0xengine/xmlrpc 的 npm 包最初是一个无害的库,基于 JavaScript,用于 Node.js 的 XML…

双向链表

目录 链表的分类 概念 双向链表的实现 ① 结构 ② 初始化 ③ 打印 ④ 插入数据 ⑤ 删除数据 ⑥ 查找数据 ⑦ 在pos位置之前插入数据 ⑧ 删除pos位置的数据 ⑨ 销毁链表 总结 链表的分类 虽然有这么多的链表的结构,但是我们实际中最常⽤还是两种结构&…