NearestNeighnor 实现cifar-10图像分类
2016-12-01 14:49
495 查看
import numpy as np class NearestNeighnor(object): def __init__(self): pass def train(self,X,y): self.Xtr=X self.ytr=y def predict(self,X): num_test=X.shape[0] Ypred=np.zeros(num_test,dtype=self.ytr.dtype) for i in xrange(num_test): # distances=np.sum(np.abs(self.Xtr-X[i,:]),axis=1) distances=np.sqrt(np.sum(np.square(self.Xtr-X[i,:]),axis=1)) min_index=np.argmin(distances) Ypred[i]=self.ytr[min_index] return Ypred import numpy as np from NearestNeighnor import NearestNeighnor def unpickle(file): import cPickle fo=open(file,'rb') dict=cPickle.load(fo) fo.close() return dict dataTrain=[] labelTrain=[] for i in range(1,6): dic=unpickle("data\cifar-10-batches-py\data_batch_"+str(i)) for item in dic["data"]: dataTrain.append(item) for item in dic["labels"]: labelTrain.append(item) dataTest=[] labelTest=[] dic=unpickle("data\cifar-10-batches-py\\test_batch") for item in dic["data"]: dataTest.append(item) for item in dic["labels"]: labelTest.append(item) dataTr=np.asarray(dataTrain) dataTs=np.asarray(dataTest) labelTr=np.asarray(labelTrain) labelTs=np.asarray(labelTest) print dataTr.shape nn=NearestNeighnor() nn.train(dataTr,labelTr) Yte_predict=nn.predict(dataTs) print 'accuracy:%f'%(np.mean(Yte_predict==labelTs))
正确率很低,只有25%左右,NN不适合做图像分类
(1)在python中,一般可以使用pickle类来进行python对象的序列化,而cPickle提供了一个更快速简单的接口,如python文档所说的:“cPickle – A faster pickle”。
cPickle可以对任意一种类型的python对象进行序列化操作,比如list,dict,甚至是一个类的对象等。而所谓的序列化,我的粗浅的理解就是为了能够完整的保存并能够完全可逆的恢复。
2. load:载入本地文件,恢复python对象
3. 学习借鉴:pickle 及cpikle
http://blog.csdn.net/yucan1001/article/details/8478755
相关文章推荐
- tensorflow用CNN实现CIFAR-10图像分类(cpu贼慢)
- Deep Learning-TensorFlow (5) CNN卷积神经网络_CIFAR-10进阶图像分类模型(下)
- Tensorflow实现CIFAR-10分类问题-详解二cifar10.py
- Deep Learning-TensorFlow (4) CNN卷积神经网络_CIFAR-10进阶图像分类模型(上)
- Tensorflow实现CIFAR-10分类问题-详解三cifar10_input.py
- Tensorflow实现CIFAR-10分类问题-详解一cifar10_train.py
- Tensorflow实现CIFAR-10分类问题-详解四cifar10_eval.py
- 机器学习实验报告:利用3层神经网络对CIFAR-10图像数据库进行分类
- Kaggle的Cifar-10图像分类
- ConvNetJS CIFAR-10 demo 卷积神经网络分类demo
- [数字图像处理]常见噪声的分类与Matlab实现
- cifar数据集介绍及到图像转换的实现
- 用KNN算法分类CIFAR-10图片数据
- CS231n-KNN模型分类Cifar10
- CIFAR-10 最近邻分类识别 python3 NearestNeighbor
- 机器学习实验(十二):深度学习之图像分类模型AlexNet结构分析和tensorflow实现
- 如何用TensorFlow和TF-Slim实现图像分类与分割
- [置顶] 基于DL的计算机视觉(2)--实现图像分类最简单的方法:KNN
- 灰度图像形状的识别分类算法实现matlab
- caffe for windows 下使用caffemodel 实现cifar10的图像分类