pytorch 把MNIST数据集转换成图片和txt的方法


Posted in Python onMay 20, 2018

本文介绍了pytorch 把MNIST数据集转换成图片和txt的方法,分享给大家,具体如下:

1.下载Mnist 数据集

import os
# third-party library
import torch
import torch.nn as nn
from torch.autograd import Variable
import torch.utils.data as Data
import torchvision
import matplotlib.pyplot as plt 
# torch.manual_seed(1)  # reproducible
DOWNLOAD_MNIST = False
 
# Mnist digits dataset
if not(os.path.exists('./mnist/')) or not os.listdir('./mnist/'):
  # not mnist dir or mnist is empyt dir
  DOWNLOAD_MNIST = True
 
train_data = torchvision.datasets.MNIST(
  root='./mnist/',
  train=True,                   # this is training data
  transform=torchvision.transforms.ToTensor(),  # Converts a PIL.Image or numpy.ndarray to
                          # torch.FloatTensor of shape (C x H x W) and normalize in the range [0.0, 1.0]
  download=DOWNLOAD_MNIST,
)

下载下来的其实可以直接用了,但是我们这边想把它们转换成图片和txt,这样好看些,为后面用自己的图片和txt作为准备

2. 保存为图片和txt

import os
from skimage import io
import torchvision.datasets.mnist as mnist
import numpy 
root = "./mnist/raw/"
train_set = (
  mnist.read_image_file(os.path.join(root, 'train-images-idx3-ubyte')),
  mnist.read_label_file(os.path.join(root, 'train-labels-idx1-ubyte'))
)
 
test_set = (
  mnist.read_image_file(os.path.join(root,'t10k-images-idx3-ubyte')),
  mnist.read_label_file(os.path.join(root,'t10k-labels-idx1-ubyte'))
)
 
print("train set:", train_set[0].size())
print("test set:", test_set[0].size())
 
def convert_to_img(train=True):
  if(train):
    f = open(root + 'train.txt', 'w')
    data_path = root + '/train/'
    if(not os.path.exists(data_path)):
      os.makedirs(data_path)
    for i, (img, label) in enumerate(zip(train_set[0], train_set[1])):
      img_path = data_path + str(i) + '.jpg'
      io.imsave(img_path, img.numpy())
      int_label = str(label).replace('tensor(', '')
      int_label = int_label.replace(')', '')
      f.write(img_path + ' ' + str(int_label) + '\n')
    f.close()
  else:
    f = open(root + 'test.txt', 'w')
    data_path = root + '/test/'
    if (not os.path.exists(data_path)):
      os.makedirs(data_path)
    for i, (img, label) in enumerate(zip(test_set[0], test_set[1])):
      img_path = data_path + str(i) + '.jpg'
      io.imsave(img_path, img.numpy())
      int_label = str(label).replace('tensor(', '')
      int_label = int_label.replace(')', '')
      f.write(img_path + ' ' + str(int_label) + '\n')
    f.close()
 
convert_to_img(True)
convert_to_img(False)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
python 文件操作api(文件操作函数)
Aug 28 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
python实现多线程网页下载器
Apr 15 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python Opencv计算图像相似度过程解析
Dec 03 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
Python安装lz4-0.10.1遇到的坑
May 20 #Python
Python requests发送post请求的一些疑点
May 20 #Python
python中virtualenvwrapper安装与使用
May 20 #Python
django静态文件加载的方法
May 20 #Python
django中静态文件配置static的方法
May 20 #Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 #Python
Python利用公共键如何对字典列表进行排序详解
May 19 #Python
You might like
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
js链表操作(实例讲解)
2017/08/29 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
Python删除空文件和空文件夹的方法
2015/07/14 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
教师节班会主持词
2015/07/06 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书