解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题


Posted in Python onJune 17, 2020

遇到的问题

解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题

当时自己在使用Alexnet训练图像分类问题时,会出现损失在一个epoch中增加,换做下一个epoch时loss会骤然降低,一开始这个问题没有一点头绪,我数据也打乱了,使用的是tf.train.shuffle_batch

在capacity中设置一个值,比如是1000吧,每次取一千个数据后将这一千个数据打乱,本次使用的数据集就是每个种类1000多,而我加载数据时是一类一类加载的,这就造成了每一批次的开始可以跟前一类数据做打乱处理,但是在中间数据并不能达到充分的shuffle

解决问题

在加载数据集的时候用numpy中的shuffle将数据集充分的打乱后在读入tfrecord中,之后读取的时候使用tf.tain.shuffle_batch和使用tf.train.batch就没有区别了。另外capacity这个数值不益设置过大,会对自己的电脑造成压力。

补充知识:MATLAB中使用AlexNet、VGG、GoogLeNet进行迁移学习

直接贴代码,具体用法见注释:

clc;clear;

net = alexnet; %加载在ImageNet上预训练的网络模型
imageInputSize = [227 227 3];
%加载图像
allImages = imageDatastore('.\data227Alexnet',...
 'IncludeSubfolders',true,...
 'LabelSource','foldernames');
 %划分训练集和验证集
 [training_set,validation_set] = splitEachLabel(allImages,0.7,'randomized');
 %由于原始网络全连接层1000个输出,显然不适用于我们的分类任务,因此在这里替换
layersTransfer = net.Layers(1:end-3);
categories(training_set.Labels)
numClasses = numel(categories(training_set.Labels));
%新的网络
layers = [
 layersTransfer
 fullyConnectedLayer(numClasses,'Name', 'fc','WeightLearnRateFactor',1,'BiasLearnRateFactor',1)
 softmaxLayer('Name', 'softmax')
 classificationLayer('Name', 'classOutput')];

lgraph = layerGraph(layers);
plot(lgraph)
%对数据集进行扩增
augmented_training_set = augmentedImageSource(imageInputSize,training_set);

opts = trainingOptions('adam', ...
 'MiniBatchSize', 32,... % mini batch size, limited by GPU RAM, default 100 on Titan, 500 on P6000
 'InitialLearnRate', 1e-4,... % fixed learning rate
 'LearnRateSchedule','piecewise',...
 'LearnRateDropFactor',0.25,...
 'LearnRateDropPeriod',10,...
 'L2Regularization', 1e-4,... constraint
 'MaxEpochs',20,..
 'ExecutionEnvironment', 'gpu',...
 'ValidationData', validation_set,...
 'ValidationFrequency',80,...
 'ValidationPatience',8,...
 'Plots', 'training-progress')

net = trainNetwork(augmented_training_set, lgraph, opts);

save Alex_Public_32.mat net

[predLabels,predScores] = classify(net, validation_set);
plotconfusion(validation_set.Labels, predLabels)
PerItemAccuracy = mean(predLabels == validation_set.Labels);
title(['overall per image accuracy ',num2str(round(100*PerItemAccuracy)),'%'])

MATLAB中训练神经网络一个非常大的优势就是训练过程中各项指标的可视化,并且最终也会生成一个混淆矩阵显示验证集的结果。

以上这篇解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
Python机器学习之决策树算法
Dec 22 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
Python制作词云图代码实例
Sep 09 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
如何完美的建立一个python项目
Oct 09 Python
Python try except finally资源回收的实现
Jan 25 Python
Java如何基于wsimport调用wcf接口
Jun 17 #Python
使用keras内置的模型进行图片预测实例
Jun 17 #Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 #Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 #Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 #Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 #Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 #Python
You might like
PHP初学者头疼问题总结
2006/10/09 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
简述JS浏览器的三种弹窗
2018/07/15 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
网站设计师的岗位职责
2013/11/21 职场文书
新学期开学寄语
2014/01/18 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
新闻编辑求职信
2014/07/13 职场文书
学校安全责任书范本
2014/07/23 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
秋季运动会开幕词
2015/01/28 职场文书
主持人开幕词
2015/01/29 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
上下班时间调整通知
2015/04/23 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android