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 相关文章推荐
Python写的英文字符大小写转换代码示例
Mar 06 Python
机器学习10大经典算法详解
Dec 07 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
对numpy中shape的深入理解
Jun 15 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
python实现126邮箱发送邮件
May 20 Python
Keras实现将两个模型连接到一起
May 23 Python
python Matplotlib数据可视化(1):简单入门
Sep 30 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
calendar在python3时间中常用函数举例详解
Nov 18 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通用检测函数集合
2011/02/08 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
python操作MongoDB基础知识
2013/11/01 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
详解在Python中处理异常的教程
2015/05/24 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
学习雷锋寄语大全
2014/04/11 职场文书
小学生作文评语大全
2014/04/21 职场文书
企业文化标语口号
2014/06/09 职场文书
初中信息技术教学计划
2015/01/22 职场文书
结婚幸福感言
2015/08/01 职场文书
学雷锋感言
2015/08/03 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis