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基础语法(Python基础知识点)
Feb 28 Python
浅析Python函数式编程
Oct 06 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python实现身份证实名认证的方法实例
Nov 08 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
Python识别html主要文本框过程解析
Feb 18 Python
Python日志处理模块logging用法解析
May 19 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
只用Python就可以制作的简单词云
Jun 07 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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
js选项卡的制作方法
2017/01/23 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
详解vue中组件参数
2018/07/09 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
python字符串string的内置方法实例详解
2018/05/14 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
Python同时处理多个异常的方法
2020/07/28 Python
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
毕业生文员求职信
2013/11/03 职场文书
图书室标语
2014/06/21 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技