自己定义CNN网络模型并使用caffe训练
来源:互联网 发布:嵌入式 linux 忘记密码 编辑:程序博客网 时间:2024/04/30 15:48
caffe自带的例子中对mnist手写体数字训练使用的卷积神经网络是在lenet_train_test.prototxt中定义的,隐含层包含了2个卷积层,2个池化层,2个全连接层,1个激活函数层。网络结构如下:
这里尝试修改一下lenet_train_test.prototxt文件,减少或增加一组卷积层和池化层,对比一下各自的训练精度和损失。
1. 减少一组卷积层和池化层
这样隐含层就包含了1个卷积层,1个池化层,2个全连接层,1个激活函数层。修改的方式直接在lenet_train_test.prototxt文件中删除第二卷积层和第二池化层的定义,并把第一全连接层的输入改成第一池化层的输出就行了(同时把第一卷积层的输出由20改成了50)。
修改之后的网络结构:
训练结果:
1. 增加一组卷积层和池化层
这样隐含层就包含了3个卷积层,3个池化层,2个全连接层,1个激活函数层。这里要注意的是图像大小是28*28,第一和第二卷积层的卷积核大小都是5*5,第一和第二池化层的池化核大小都是2*2,所以经过第二池化层之后单个图片的大小就只有 ((28-4)/2-4)/2=4,即4*4大小了,那新加的第三卷积层的卷积核就不能再是5*5了,这里改用3*3的卷积核,之后的第三池化核大小改成1*1,步长也改成1,修改之后的网络结果:
训练结果:
不做修改,正常情况下lenet_train_test.prototxt的训练结果为:
对比
减少一组卷积层和池化层的训练精度: 0.9881
减少一组卷积层和池化层的训练损失: 0.0359024
正常情况下的训练精度: 0.99
正常情况下的训练损失: 0.0295332
增加一组卷积层和池化层的训练精度: 0.992
增加一组卷积层和池化层的训练损失: 0.0257643
- 自己定义CNN网络模型并使用caffe训练
- caffe配置:自己训练模型并测试
- CNN+caffe学习4:自己训练网络全过程
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-3结合caffe中的CIFAR10修改相关配置文件并训练
- mxnet 使用自己的图片数据训练CNN模型
- caffe(7) 训练自己的CNN网络—基于自己建立的数据集
- caffe(6) 训练自己的CNN网络—图像数据转换成lmdb文件
- 使用caffe训练并且测试一个自己的模型
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- caffe上手:修改已训练好的网络并训练模型
- caffe训练自己的模型步骤
- caffe:自己的数据训练模型 (四)
- caffe----训练自己的图片caffenet模型
- caffe训练自己的图片分类模型
- caffe训练cnn调参
- caffe用自己的数据训练模型,并测试输出图片类别
- caffe训练模型并预测图片类型
- mxnet实战笔记(1) - 使用自己的图片数据训练CNN模型
- 我的学习之路_第二十一章_JDBC连接池
- LED PWM控制芯片PCA9685的Linux 驱动
- set in Python
- mysql动态扩容调研
- python中的装包与拆包
- 自己定义CNN网络模型并使用caffe训练
- 设计模式之pimpl惯用法C语言版(城门失火 殃及池鱼)
- C++&系统 异常
- c++ 宏
- Cpp.Study.Note.初识 Cpp中的类
- MyEclipse导入 Java Web工程
- 基于JQ 根据输入内容自适应输入框高度 支持输入增高 渲染时设置高度和内容一致
- 网络安全知识之对称加密与base64
- hadoop2.x概览