Cifar-10数据预处理andNearest Neighbor算法
2016-11-05 22:05
246 查看
*由于5万训练集以及1万测试集较大,运行程序时间较长
因此我们抽取了1/10的训练集
以及1/10的测试集
方便初学者理解*
程序运行结果展示
因此我们抽取了1/10的训练集
以及1/10的测试集
方便初学者理解*
更改后的代码
#coding=utf-8 #author='HL' ''' 利用pickle模块存储对象 dump类似于write load类似于read 完成对象的上传以及读取 ''' import cPickle as pickle import numpy as np class NearestNeighbor(object): def __init__(self): pass def train(self,x,y): self.x_Tr = x self.y_Tr = y def predict(self,x): y_Pre = np.zeros(x.shape[0],dtype=type(self.y_Tr)) for i in range(x.shape[0]): distance = np.sum(abs(self.x_Tr-x[i,]),axis=1) min_index = np.argmin(distance) y_Pre[i] = self.y_Tr[min_index] print y_Pre return y_Pre def un_P(path): f = file(path,'rb') dict1 = pickle.load(f) f.close() return dict1 data_Train = [] labels_Train = [] path = "A:/python_test/cifar-10-batches-py/" for i in range(1,6): now_Path = path+'data_batch_'+str(i) dict1 = un_P(now_Path) it = 0 while it <len(dict1['data']): data_Train.append(dict1['data'][it]) labels_Train.append(dict1['labels'][it]) it+=10 ''' for item in dict1['data']: data_Train.append(item) for item in dict1['labels']: labels_Train.append(item) ''' data_Test = [] labels_Test = [] dict1 = un_P(path+'test_batch') for item in dict1['data'][:1000]: data_Test.append(item) for item in dict1['labels'][:1000]: labels_Test.append(item) data_Tr = np.asarray(data_Train) data_Te = np.asarray(data_Test) labels_Tr = np.asarray(labels_Train) labels_Te = np.asarray(labels_Test) print data_Tr.shape print data_Te.shape print labels_Tr.shape print labels_Te.shape zz = NearestNeighbor() zz.train(data_Tr,labels_Train) out = zz.predict(data_Te) print np.mean(out==labels_Te)
程序运行结果展示
原始代码
#coding=utf-8 #author='HL' ''' 利用pickle模块存储对象 dump类似于write load类似于read 完成对象的上传以及读取 ''' import cPickle as pickle import numpy as np ''' 算法部分 其实就是每个比较距离 找出最短的 然后判断就可以了 很简单 刚开始做 纯粹练习 ''' class NearestNeighbor(object): def __init__(self): pass def train(self,x,y): self.x_Tr = x self.y_Tr = y def predict(self,x): y_Pre = np.zeros(x.shape[0],dtype=type(self.y_Tr)) for i in range(x.shape[0]): distance = np.sum(abs(self.x_Tr-x[i,]),axis=1) min_index = np.argmin(distance) y_Pre[i] = self.y_Tr[min_index] return y_Pre def un_P(path): f = file(path,'rb') dict1 = pickle.load(f) f.close() return dict1 data_Train = [] labels_Train = [] path = "A:/python_test/cifar-10-batches-py/" for 4000 i in range(1,6): now_Path = path+'data_batch_'+str(i) dict1 = un_P(now_Path) for item in dict1['data']: data_Train.append(item) for item in dict1['labels']: labels_Train.append(item) data_Test = [] labels_Test = [] dict1 = un_P(path+'test_batch') for item in dict1['data']: data_Test.append(item) for item in dict1['labels']: labels_Test.append(item) data_Tr = np.asarray(data_Train) data_Te = np.asarray(data_Test) labels_Tr = np.asarray(labels_Train) labels_Te = np.asarray(labels_Test) print data_Tr print data_Tr.shape print data_Te print data_Te.shape print labels_Tr print labels_Tr.shape print labels_Te print labels_Te.shape zz = NearestNeighbor() zz.train(data_Tr,labels_Train) out = zz.predict(data_Te) print np.mean(out==labels_Te)
相关文章推荐
- Pytorch打怪路(一)pytorch进行CIFAR-10分类(1)CIFAR-10数据加载和处理
- CIFAR_10处理数据——搭建模型——训练模型
- TensorFlow CNN 测试CIFAR-10数据集
- TensorFlow学习笔记(10) 图像数据处理
- cifar-10数据转为图片(jpg,png)
- 卷积神经网络和CIFAR-10:Yann LeCun专访 Convolutional Nets and CIFAR-10: An Interview with Yann LeCun
- Windows Caffe 学习笔记 CIFAR-10数据的格式转换
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
- 用KNN算法分类CIFAR-10图片数据
- 数据处理-Spring Batch Scaling and Parallel Processing
- Tensorflow学习笔记:CNN篇(4)——CIFAR-10数据集LeNet实现(Keras版)
- 计算机视觉caffe之路第三篇:CIFAR-10数据集训练及预测实例
- Windows Caffe 学习笔记(零)CIFAR-10数据的格式转换
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
- Tensorflow学习笔记:CNN篇(5)——CIFAR-10数据集VGG19实现(Keras版)
- 如何使用GIST+LIBLINEAR分类器提取CIFAR-10 dataset数据集中图像特征,并用测试数据进行实验
- TensorFlow学习——CIFAR-10(python实现数据可视化)
- simpleCNN 训练 cifar-10 数据集