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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
matplotlib作图添加表格实例代码
Jan 23 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
详细介绍pandas的DataFrame的append方法使用
Jul 31 Python
Python argparse模块应用实例解析
Nov 15 Python
jupyter notebook 增加kernel教程
Apr 10 Python
django自带的权限管理Permission用法说明
May 13 Python
如何基于python实现年会抽奖工具
Oct 20 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下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
CI框架的安全性分析
2016/05/18 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
讲解Python中if语句的嵌套用法
2015/05/14 Python
Python 文件管理实例详解
2015/11/10 Python
python删除不需要的python文件方法
2018/04/24 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
化学相关工作求职信
2013/10/02 职场文书
项目计划书范文
2014/01/09 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
村庄环境整治方案
2014/05/15 职场文书
奶茶店创业计划书
2014/08/14 职场文书
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
python Tkinter模块使用方法详解
2022/04/07 Python