如何保存MNIST数据集中train和test的图片?

介绍一种非诚神奇的图片保存方法,尤其是利用字典…format…结合来用,创建保存路径,这是一种史上很难用到的一种方法,哈哈哈哈,有点吹牛皮,不说了,言归正传。请仔细看!

// An highlighted block
from torchvision import datasets, transforms
import osif __name__ == '__main__':train_data = datasets.MNIST("./data", train=True, transform=transforms.ToTensor(), download=True)  # 读取train数据test_data = datasets.MNIST("./data", train=False, transform=transforms.ToTensor(), download=False)  # 读取test数据pic_dict = {i: 0 for i in range(10)}  # 创建字典,以便将MNIST数据集0-9类按类加入,且不重名。# #for i, (image,label) in enumerate(test_data):#取出图片和labelfor i, data in enumerate(test_data):image = data[0]  # shape=6000*28*28label = data[1]  # shape=6000,0-9共10类img = transforms.ToPILImage()(image)  # 转化成张量,即变成tensor形式if os.path.exists(f'./test_img/{label}'):passelse:os.makedirs(f'./test_img/{label}')# img.save('./test_img/{}/{}.png'.format(label, pic_dict[label]))img.save(f'./test_img/{label}/{pic_dict[label]}.png')  # 保存路径pic_dict[label] += 1print(sum(pic_dict.values()))  # pic_dict.values()计算键值总和

上述方法局限于保存一个数据集的图片,也就是说,要么保存训练集,要么保存测试集的图片,哈哈哈,不要着急,现在有一种方法,一步登天,接着看…下面代码…
下面展示代码。

from torchvision import datasets, transforms
import os
if __name__ == '__main__':train_data = datasets.MNIST('./data', train=True,transform=transforms.ToTensor(),download=False)test_data = datasets.MNIST('./data', train=False,transform=transforms.ToTensor(),download=False)for i in [train_data,test_data]:#将两个数据集装在一起,嵌入一个循环。# 创建字典pic_dic = {i: 0 for i in range(10)}# 取出图片和标签if i ==train_data:for i, (image, label) in enumerate(train_data):img = transforms.ToPILImage()(image)  # 转为张量if not os.path.exists(f'./train_img/{label}'):os.makedirs(f'./train_img/{label}')else:passimg.save(f'./train_img/{label}/{pic_dic[label]}.png')  # 保存路径pic_dic[label] += 1sum_values=sum(pic_dic.values())print('训练集图片合计:%s张'%sum_values)  # 求键值的总和else:for i, (image, label) in enumerate(test_data):img = transforms.ToPILImage()(image)  # 转为张量if not os.path.exists(f'./test_img/{label}'):os.makedirs(f'./test_img/{label}')else:passimg.save(f'./test_img/{label}/{pic_dic[label]}.png')  # 保存路径pic_dic[label] += 1sum_values=sum(pic_dic.values())print('测试集图片合计:%s张'%sum_values)  # 求键值的总和

还有很多方法,比如PIL、OpenCV也可以实现,但是我不知道,哈哈哈哈…

二、如何保存MNIST数据集中train和test的图片?相关推荐

  1. (超详细)读取mnist数据集并保存成图片

    mnist数据集介绍.读取.保存成图片 1.mnist数据集介绍: MNIST数据集是一个手写体数据集,简单说就是一堆这样东西  MNIST的官网地址是 MNIST; 通过阅读官网我们可以知道,这个数 ...

  2. Tensorflow实战之下载MNIST数据,自动分成train, validation和test三个数据集

    TensorFlow 实战Google深度学习框架 第2版 ,郑泽宇之P96.下载MNIST数据,自动分成train, validation和test三个数据集,源码如下: #!/usr/bin/en ...

  3. Tensorflow保存模型详解(进阶版二):如何保存最近的.ckpt文件 及 如何分开保存.ckpt数据文件和.meta图文件

    在学会了如何有选择的保存变量后,我们来学习如何如何分开保存.ckpt数据文件和.meta图文件 和 如何 保存最近几轮的.ckpt数据文件. 直接上代码: import tensorflow as t ...

  4. 某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据(Java实验)

    某年级三个班的Java考试成绩如下表所示,请采用二维数组保存这些数据 1班 99 68 97     2班 89 95 88 59 64 3班 89 79 99 58   4班 59 79 85 63 ...

  5. 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!

     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigame.com/android-game/327.html 很多童鞋说 ...

  6. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  7. 在Mnist数据上使用k折交叉验证训练,pytorch代码到底怎么写

    前言 最近学到了K折交叉验证,已经迫不及待去实验一下他的效果是不是如老师讲的一样好,特此写下本文. 本文运行环境为:sklearn.pytorch .jupyter notebook k折交叉验证介绍 ...

  8. MNIST数据集合在PaddlePaddle环境下使用简单神经网络识别效果

    简 介: 通过PaddlePaddle构造的简单神经网络对于MNIST数据库进行实验,可以看到使用普通的稠密网络,便可以达到很高的识别效果.训练结果存在一定的随机性.这取决于训练其实的条件.由于在Pa ...

  9. 使用Tensorflow操作MNIST数据

    MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例.而TensorFlow的封装让使用MNIST数据集变得更加方便.MNIST数据集是NIST数据集的 ...

最新文章

  1. NeHe教程Qt实现——lesson01
  2. 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)
  3. 方舟原始恐惧mod生物代码_重磅!命令与征服和红色警戒源代码在GitHub公布了
  4. [转]纯脚本写的仿照cmd命令窗口
  5. SAP UI5 应用开发教程之三十九 - SAP UI5 应用出现白屏的一些常见错误和分析方法分享试读版
  6. ping32终端安全管理系统_通过Ping32工单管理功能使用教程
  7. 周立功CAN通讯(txt格式) 报文解析
  8. 计算机硬件单片机,计算机硬件单片机总结报告
  9. 新斗罗大陆游戏怎么找回服务器,新斗罗大陆宗门战怎么打 新斗罗大陆手游宗门战打法技巧...
  10. 几何分布(一种离散分布)
  11. pentaho java,用于创建Pentaho报告的Java代码,此报告接受输入作为数据集成(.ktr)文件...
  12. VLAN配置实验和TRUNK配置实验
  13. centos7/8配置secondary ip
  14. java任务监控进度控制
  15. CE实现植物大战僵尸之阳光篇
  16. [激光器原理与应用-4]:激光器的内部结构与工作原理
  17. HTB Busqueda WriteUP
  18. 金蝶K3案例教程物料与物料清单后台配置
  19. 大火的数字藏品背后究竟蕴含着什么巨大魅力?
  20. RecyclerView的高级用法——定制动画

热门文章

  1. python爬虫之Scrapy框架的post请求和核心组件的工作 流程
  2. shell基础04 结构化命令
  3. 用vue-cli脚手架搭建一个仿网易云音乐的全家桶vue项目
  4. c语言括号匹配的检验,检验括号匹配的算法
  5. 奇妙的算法之LCS妙解
  6. python学习笔记——Thread常用方法
  7. 经典算法研究系列:二、Dijkstra 算法初探
  8. “AS3.0高级动画编程”学习:第二章转向行为(上)
  9. python注入_python的常见命令注入威胁
  10. java跨函数跳转_C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧...