数据集(benchmark)、常用数据集的解析(cifar-10、)
What is the class of this image ?
主要是以下常见的数据集,用以衡量算法的分类准确率:
- mnist、cifar-10、cifar-100stl-10
- svhn、ILSVRC2012 task 1
1. cifar-10
CIFAR-10 and CIFAR-100 datasets
cifar-10-batches-py(Python 接口)
import os
import pickle
import numpy as np def load_CIFAR10_batch(filename):
with open(filename, 'rb') as f:
data = pickle.load(f, encoding='latin1')
X = data['data']
y = data['labels']
X = X.reshape(-1, 3, 32, 32).transpose(0, 2, 3, 1).astype(np.float32)
y = np.array(y)
return X, y def load_CIFAR10(root):
xs, ys = [], []
for n in range(1, 6):
filename = os.path.join(root, 'data_batch_{}'.format(n))
X, y = load_CIFAR10_batch(filename)
xs.append(X)
ys.append(y)
Xtr = np.concatenate(xs)
Ytr = np.concatenate(ys)
Xte, Yte = load_CIFAR10_batch(os.path.join(root, 'test_batch'))
return Xtr, Ytr, Xte, Yte对于描述数据信息的信息(batches.meta),仍然可以使用 pickle.load 的形式加载,加载的结果仍然是一个字典类型:
with open('batches.meta', 'rb') as f:
data = pickle.load(f, encoding='latin1')
print(data) {'label_names': ['airplane',
'automobile',
'bird',
'cat',
'deer',
'dog',
'frog',
'horse',
'ship',
'truck'],
'num_cases_per_batch': 10000,
'num_vis': 3072}cifar-10-batches-mat(matlab 接口)
最方便的方式是调用 matlab 内置已封装好的 api,helperCIFAR10Data.download/load,或者使用
edit helperCIFAR10Data查看其实现;function [train_x, train_y, test_x, test_y] = load_cifar(filepath) train_x = []; train_y = [];
for i = 1:5
filename = fullfile(filepath, sprintf('data_batch_%d.mat', i));
[batch_train, batch_labels] = load_batch_as_4d_tensor(filename, true);
train_x = cat(4, train_x, batch_train);
train_y = [train_y; batch_labels];
end
filename = fullfile(filepath, 'test_batch.mat');
[test_x, test_y] = load_batch_as_4d_tensor(filename, true);
end function [train_x, train_y] = load_batch_as_4d_tensor(filename, to_categorical)
% 这里的 x_train 是 4 维的 tensor, 32*32*3*num
if ~exist('to_categorical', 'var') || isempty(to_categorical)
to_categorical = false;
end
load(filename);
train_x = reshape(data', 32, 32, 3, []);
train_x = permute(train_x, [2, 1, 3, 4]); % 互换第一维和第二维
train_y = labels;
if to_categorical
metafile = fullfile(fileparts(filename), 'batches.meta.mat');
load(metafile);
train_y = categorical(train_y, 0:9, label_names);
end end
数据集(benchmark)、常用数据集的解析(cifar-10、)的更多相关文章
- 深度学习常用数据集 API(包括 Fashion MNIST)
基准数据集 深度学习中经常会使用一些基准数据集进行一些测试.其中 MNIST, Cifar 10, cifar100, Fashion-MNIST 数据集常常被人们拿来当作练手的数据集.为了方便,诸如 ...
- RDD(弹性分布式数据集)及常用算子
RDD(弹性分布式数据集)及常用算子 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据 处理模型.代码中是一个抽象类,它代表一个 ...
- 【AO笔记】有关TIN数据集的常用介绍
写论文查了很多TIN的接口和属性,特此来记录一下. 转载请注明出处:博客园@秋意正寒,B站同名. 未完待续 1. Tin数据集在ArcGIS中的描述 Tin数据集在磁盘中,被ArcGIS以文件夹形式管 ...
- 【转帖】Linux上,最常用的一批命令解析(10年精选)
Linux上,最常用的一批命令解析(10年精选) https://juejin.im/post/5d134fbfe51d4510727c80d1 写的挺好呢 Linux这么多命令,通常会让初学者望而生 ...
- torchvision的理解和学习 加载常用数据集,对主流模型的调用.md
torchvision的理解和学习 加载常用数据集,对主流模型的调用 https://blog.csdn.net/tsq292978891/article/details/79403617 加载常用数 ...
- 【神经网络与深度学习】基于Windows+Caffe的Minst和CIFAR—10训练过程说明
Minst训练 我的路径:G:\Caffe\Caffe For Windows\examples\mnist 对于新手来说,初步完成环境的配置后,一脸茫然.不知如何跑Demo,有么有!那么接下来的教 ...
- 【翻译】TensorFlow卷积神经网络识别CIFAR 10Convolutional Neural Network (CNN)| CIFAR 10 TensorFlow
原网址:https://data-flair.training/blogs/cnn-tensorflow-cifar-10/ by DataFlair Team · Published May 21, ...
- 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载
人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的计 ...
- 机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集
机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集 选自Microsoft www.tz365.Cn 作者:Lee Scott 机器之心编译 参与:李亚洲.吴攀. ...
- xml常用四种解析方式优缺点的分析×××××
xml常用四种解析方式优缺点的分析 博客分类: xml 最近用得到xml的解析方式,于是就翻了翻自己的笔记同时从网上查找了资料,自己在前人的基础上总结了下,贴出来大家分享下. 首先介绍一下xml语 ...
随机推荐
- java方法调用之动态调用多态(重写override)的实现原理——方法表(三)
上两篇篇博文讨论了java的重载(overload)与重写(override).静态分派与动态分派.这篇博文讨论下动态分派的实现方法,即多态override的实现原理. java方法调用之重载.重写的 ...
- HibernateCRUD基础框架(3)-简单的和较为复杂的标准的CRUD API
优点:简单的和基础的CRUD功能可以很快实现,可以说是比较的"标准化".维护起来也很容易. 缺点:性能没有保障.不支持特别复杂的CRUD. 可以适用的场景:小型Web项目 1.Cr ...
- 一起talk C栗子吧(第八回:C语言实例--素数)
各位看官们,大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转. 让我们一起talk C栗子吧! 看官们.上一回中咱们说的是进制转换的样例,这一回咱们说的 ...
- C语言深度剖析-----数组参数和指针参数分析
数组退化的意义 当向函数传递数组时, 二维数组参数 等价关系 注意事项 只能去一维数组 无法向一个函数传递一个任意的多维数组,注释地方出错 传递与访问二维数组的方式 动态地算出二维数组的列
- python3中numpy函数tile的用法
tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...
- [RxJS] RefCount: automatically starting and stopping an execution
With the connect() method on a ConnectableObservable, the programmer is responsible for avoiding lea ...
- ArcGlobe三维开发之十九——GlobeControl与MapControl的二三维联动
实现思路:2D->3D,将当前MapControl的可视范围设置为GlobeControl中Extent属性的值:3D--->2D.获取当前GlobeControl的target和obse ...
- js进阶 12-6 如何获取正在发生事件的名字和是哪个元素在发生事件
js进阶 12-6 如何获取正在发生事件的名字和是哪个元素在发生事件 一.总结 一句话总结:event.type 描述事件的类型. event.target 触发该事件的 DOM 元素. ...
- Android多线程研究(8)——Java中的原子性理解
一.什么是原子性 原子性是世界上最小单位,具有不可分割性.比如a=0;(a非long和double类型)这个操作是不可分割的,那么我们说这个操作是原子操作.再比如:a++;这个操作实际上是a=a+1; ...
- Tomcat请求处理过程(Tomcat源代码解析五)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...