win7 Python3.5 显示cifar10图片

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

win7 Python3.5 显示cifar10图片_第1张图片

只要在代码里加上 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像素。
win7 Python3.5 显示cifar10图片_第2张图片

你可能感兴趣的:(tensorflow学习)