京东金融大数据竞赛猪脸识别(5)- 识别方法之一
2018-03-13 22:27
281 查看
自编码器是早期的神经网络方法之一了,为便于了解各方法识别性能,我们首先用它进行识别。代码如下:
最后写入磁盘的csv文件在上传至京东金融网站后,网站会计算出得分。该网络结构简单,准确率一般,印象中得分在10左右。不过该方法在图像集上测试的结果,准确率也在95%以上。
clear load('JDPig_mlhmslbp_spyr.mat'); m = numel(classe_name); n = length(y); label = [] %one-hot编码,将每幅图像的数字类别标签变为只有1个值为0的向量,向量维数与类别个数相同 for i=1:n label(:,i) = zeros(m,1); label(y(i),i) = 1; end testImg = load('JDTest_mlhmslbp_spyr.mat'); hiddenSize = 10; %训练自编码器 if ~exist('autoenc.mat') autoenc1 = trainAutoencoder(X,hiddenSize,... 'L2WeightRegularization',0.001,... 'SparsityRegularization',4,... 'SparsityProportion',0.05,... 'DecoderTransferFunction','purelin'); features1 = encode(autoenc1,X); fprintf('saving features1\n'); %存储自编码器结果 save('autoenc.mat','features1','autoenc1'); else load('autoenc.mat','features1','autoenc1'); fprintf('loading features1\n'); end %训练第二层自编码器 if ~exist('deepnetAutoenc.mat') hiddenSize = 10; autoenc2 = trainAutoencoder(features1,hiddenSize,... 'L2WeightRegularization',0.001,... 'SparsityRegularization',4,... 'SparsityProportion',0.05,... 'DecoderTransferFunction','purelin',... 'ScaleData',false); features2 = encode(autoenc2,features1); %训练softmax分类层 softnet = trainSoftmaxLayer(features2,label,'LossFunction','crossentropy'); %构造深度网络 deepnet = stack(autoenc1,autoenc2,softnet); deepnet = train(deepnet,X,label); %存储第二层自编码器和训练出的深度网络 save('deepnetAutoenc.mat','autoenc2','features2','softnet','deepnet'); fprintf('Saving features2\n'); else load('deepnetAutoenc.mat','autoenc2','features2','softnet','deepnet'); fprintf('Loading fatures2\n'); end %计算每幅图像对于各个类的得分 scores = deepnet(testImg.X); fprintf('Testing images!\n'); load('testName.mat','imgName'); for i=1:length(scores) for j=1:m indImg((i-1)*m+j) = imgName(i); plabel((i-1)*m+j) = j; prob((i-1)*m+j) = scores(j,i); end end %创建各图像属于每个类的概率表 T = table(indImg',plabel',prob'); %将概率表存为csv文件,用以网站上传并计算最终得分 writetable(T,'resAutoenc.csv'); fprintf('Image recognition finished!\n');
最后写入磁盘的csv文件在上传至京东金融网站后,网站会计算出得分。该网络结构简单,准确率一般,印象中得分在10左右。不过该方法在图像集上测试的结果,准确率也在95%以上。
相关文章推荐
- 京东金融大数据竞赛猪脸识别(9)- 识别方法之五
- 京东金融大数据竞赛猪脸识别(4)-方法选取
- 京东金融大数据竞赛猪脸识别(6)- 识别方法之二
- 京东金融大数据竞赛猪脸识别(7)- 识别方法之三
- 京东金融大数据竞赛猪脸识别(8)- 识别方法之四
- 京东金融大数据竞赛猪脸识别(3)- 图像特征提取之二
- 京东金融大数据竞赛猪脸识别(1)-从视频提取图像
- 京东金融大数据竞赛猪脸识别(2)- 图像特征提取之一
- 基于机器学习多种方法的kaggle竞赛入门之手写数字的图像识别预测
- Win8系统无法识别USB设备的解决方法
- UE4配置Andrid时识别不出安卓设备的解决方法。
- 关于冰壶的识别检测方法基于Haar的特征检测
- 重构信号识别与方法
- windows7 下U盘不能识别的解决方法
- 指纹识别的原理和方法
- 模板类中定义 std::list<T>::iterator iter编译器不识别的解决方法。
- 学习笔记——监控视频事件的描述方法与识别技术
- 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍
- 模式识别的评价方法:ROC曲线, DET曲线, FPPW, FPPI
- IBM服务器挂接磁盘阵列后的识别方法