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支持断点续传的多线程下载示例
Jan 16 Python
Python获取文件ssdeep值的方法
Oct 05 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
Python打印“菱形”星号代码方法
Feb 05 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python使用suds调用webservice接口的方法
Jan 03 Python
python opencv实现信用卡的数字识别
Jan 12 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
Python可视化工具如何实现动态图表
Oct 23 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
php微信开发之谷歌测距
2018/06/14 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
优秀班集体获奖感言
2014/02/03 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
校园广播稿精选
2014/10/01 职场文书
面试通知单大全
2015/04/20 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书