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读写二进制文件的方法
May 09 Python
Python写的一个简单监控系统
Jun 19 Python
python实现汉诺塔方法汇总
Jul 25 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
Python命名空间的本质和加载顺序
Dec 17 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
Python tkinter制作单机五子棋游戏
Sep 14 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生成静态页
2006/11/25 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
javascript 闭包详解
2015/02/15 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
进一步理解Python中的函数编程
2015/04/13 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
python3注册全局热键的实现
2020/03/22 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
个人求职信范例
2014/01/29 职场文书
报关报检委托书
2014/04/08 职场文书
财产公证书
2014/04/10 职场文书
部门活动策划方案
2014/08/16 职场文书
篮球赛新闻稿
2015/07/17 职场文书
2016年元旦寄语
2015/08/17 职场文书
财务年终工作总结大全
2019/06/20 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python