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中requests模块的使用方法
Apr 08 Python
Python中functools模块的常用函数解析
Jun 30 Python
Django model序列化为json的方法示例
Oct 16 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
Python变量格式化输出实现原理解析
Aug 06 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python3实现简单飞机大战
Nov 29 Python
pytorch 中nn.Dropout的使用说明
May 20 Python
Python实现的扫码工具居然这么好用!
Jun 07 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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python实现嵌套列表去重方法示例
2017/12/28 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python删除服务器文件代码示例
2018/02/09 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
浅谈Python中的私有变量
2018/02/28 Python
python 定时修改数据库的示例代码
2018/04/08 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
python3实现弹弹球小游戏
2019/11/25 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
研究生求职推荐信范文
2013/11/30 职场文书
网络优化专员求职信
2014/05/04 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2016春节慰问信范文
2015/03/25 职场文书
政审证明范文
2015/06/19 职场文书
Oracle使用别名的好处
2022/04/19 Oracle
Golang map映射的用法
2022/04/22 Golang