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创建声明性迷你语言的教程
Apr 13 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
python简单贪吃蛇开发
Jan 28 Python
详解Python学习之安装pandas
Apr 16 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
如何基于python生成list的所有的子集
Nov 11 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
Python生成随机验证码代码实例解析
Jun 09 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面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
php导出生成word的方法
2015/12/25 PHP
PHP7 标准库修改
2021/03/09 PHP
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
对Angular中单向数据流的深入理解
2018/03/31 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
python使用xslt提取网页数据的方法
2018/02/23 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python sys.argv[]用法实例详解
2018/05/25 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python网络应用开发知识点浅析
2019/05/28 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
医学生求职自荐书
2014/06/12 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
教师节主持词开场白
2015/05/29 职场文书
家庭贫困证明
2015/06/16 职场文书
教师节表彰会主持词
2015/07/06 职场文书