win7 Python3.5 显示cifar10图片

最近学习tensorflow手册的卷积神经网络的例子,该例子用到了cifar10数据集。就想将图片显示出来,这样才算正在了解了数据集的格式。 这篇博客介绍了数据集的格式,代码的实现。但我在运行代码时,出现了编码问题。

错误提示

只要在代码里加上 encoding=’latin1’ 就没问题了。

 with open(filename, 'rb')as f:
     # dict = p.load(f)  #出现编码问题
     dict = p.load(f, encoding='latin1')

在原博客的代码上做了些简单的修改,代码如下:

# -*- coding: utf8 -*-
# @Author  : jint
# @Time    : 2017/5/16 16:04

import pickle as p
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

def load_CIFAR_batch(filename):
    with open(filename, 'rb')as f:
        # dict = p.load(f)  #出现编码问题
        dict = p.load(f, encoding='latin1')
        data = dict['data']
        labels = dict['labels']
        label_names = dict['filenames']
        batch_label = dict['batch_label']
        return data, labels, label_names

if __name__ == '__main__':
    filenmae = 'cifar-10-batches-py\data_batch_1'
    data, labels, label_names = load_CIFAR_batch(filenmae)
    for i in range(100):
        imgs = data[i].reshape(3, 32, 32)
        imgs = imgs.transpose(1, 2, 0)  #shape:[32, 32, 3]
        img = Image.fromarray(imgs)
        img.save("image/" + str(labels[i]) + "_" + str(i) + ".png")

下载的图片如下图,只下载了100张看看长什么样子的。没有官网的图片清晰,很小很小。有的看不清楚是什么,放大了就是打了马赛克的图片。毕竟只有32*32像素。
下载的图片

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值