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实现贪心算法与活动安排问题
Dec 19 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python 函数中的内置函数及用法详解
Jul 02 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
flask应用部署到服务器的方法
Jul 12 Python
Python3 JSON编码解码方法详解
Sep 06 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
深入分析python 排序
Aug 24 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
PyTorch dropout设置训练和测试模式的实现
May 27 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实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php支付宝接口用法分析
2015/01/04 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
javascript基本语法分析说明
2008/06/15 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
javascript常用的方法分享
2015/07/01 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
简单介绍python封装的基本知识
2019/08/10 Python
使用python turtle画高达
2020/01/19 Python
商场主管竞聘书
2014/03/31 职场文书
高三励志标语
2014/06/05 职场文书
高中班级口号
2014/06/09 职场文书
毕业欢送会致辞
2015/07/29 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
前端JavaScript大管家 package.json
2021/11/02 Javascript