首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cifar-10数据集加载图像

从cifar-10数据集加载图像
EN

Stack Overflow用户
提问于 2017-07-14 22:04:57
回答 3查看 12.7K关注 0票数 9

我正在使用cifar-10数据集来训练我的分类器。我已经下载了数据集,并尝试显示数据集中的图像。我使用了以下代码:

代码语言:javascript
复制
from six.moves import cPickle as pickle
from  PIL import Image
import numpy as np

f = open('/home/jayanth/udacity/cifar-10-batches-py/data_batch_1', 'rb')

tupled_data= pickle.load(f, encoding='bytes')

f.close()

img = tupled_data[b'data']

single_img = np.array(img[5])

single_img_reshaped = single_img.reshape(32,32,3)

plt.imshow(single_img_reshaped)

数据的描述如下:每个阵列存储32×32彩色图像。前1024个条目包含红色通道值,下一个1024个条目为绿色,最后一个1024个条目为蓝色。图像以行为主的顺序存储,因此数组的前32个条目是图像第一行的红色通道值。

我的实现是正确的吗?

上面的代码给出了下面的图像:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-14 22:48:54

我用过

代码语言:javascript
复制
single_img_reshaped = np.transpose(np.reshape(single_img,(3, 32,32)), (1,2,0))

在我的程序中获得正确的格式。

票数 13
EN

Stack Overflow用户

发布于 2019-10-28 18:31:05

由于Python使用默认的类似C的索引顺序(行-主要顺序),因此可以强制它以列-主要顺序工作:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

# I assume you have loaded your data into x_train (see some tutorial)

data = x_train[0, :] # get a row data
data = np.reshape(data, (32,32,3), order='F' ) # Fortran-like indexing order
plt.imshow(data)
票数 1
EN

Stack Overflow用户

发布于 2018-08-30 10:32:26

代码语言:javascript
复制
single_img_reshaped = single_img.reshape(3,32,32).transpose([1, 2, 0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45104970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档