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 20 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
python 实现目录复制的三种小结
Dec 04 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
python和opencv构建运动检测器的实现
Mar 03 Python
浅析Python OpenCV三种滤镜效果
Apr 11 Python
Elasticsearch 基本查询和组合查询
Apr 19 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
JavaScript Split()方法
2015/12/18 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
python语言使用技巧分享
2016/05/31 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
html5的localstorage详解
2017/05/09 HTML / CSS
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
党校学习思想汇报
2014/01/06 职场文书
同事吵架检讨书
2014/02/05 职场文书
干部作风建设心得体会
2014/10/22 职场文书
初中差生评语
2014/12/29 职场文书
大学生毕业评语
2014/12/31 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
导游词之西递宏村
2019/12/10 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
vue ref如何获取子组件属性值
2022/03/31 Vue.js