Matlab利用Caffe实现SRCNN步骤与问题解决

运行之前需要完成Caffe的MATLAB接口的配置,参考博文:
https://blog.csdn.net/u014546828/article/details/80431134
https://blog.csdn.net/u014546828/article/details/80447583

代码运行步骤感谢博文:
https://blog.csdn.net/whr_ws/article/details/82823271#commentBox

一、解压SRCNN_train文件,,将SRCNN文件夹放到caffe-master/examples下面;

二、依次运行其中的generate_train.m,generate_test.m生成train.h5、test.h5文件,
caffe可对HDF5数据格式进行操作,
Caffe数据类型参考http://www.cnblogs.com/denny402/p/5073427.html

三、在caffe-master下面新建一个bat格式的文本,文本内容为

.\Build\x64\Release\caffe.exe train --solver examples/SRCNN/SRCNN_solver.prototxt
pause
只看SRCNN的readme文件没有详细介绍,这谁想得到,愁的我直掉头发。

四、然后bat文本就能进行CNN训练,生成caffemodel的文件

终于能进行训练了!好激动!!!吃个饭玩会手机,发现迭代了3000次了!这么厉害!但是最后发现需要几亿次网络才能收敛。。。。。好吧停止训练。。。。
打开SRCNN_solver文件,这是设置网络全局变量的文件,第15行,把最大迭代次数从15000000次改为1500,毕竟目的是先出个结果看看嘛。返回第2步重新开始。
Matlab利用Caffe实现SRCNN步骤与问题解决
五、接着运行saveFilters.m,生成mat格式的卷积核训练文件;

六、最后运行SRCNN_v1里面的demo_SR即可,运行时候出现了错误

1、刚开始没找到图片和上一步生成的x3.mat文件,后来手动补全路径名称,OK

2、报错:
Matlab利用Caffe实现SRCNN步骤与问题解决
看着这么多错误,实际上只是一个参数类型不匹配导致的,函数层层嵌套每一层都报错了。传进的参数类型应该是double,实际上是single。把D:\Program Files\Matlab\R2017b\toolbox\images\images\imfilter.m文件中193行double改成了single。

3、报错未定义函数或变量 ‘shave’,画图的一个函数不重要不管他,注释掉

当当当!!!!终于出结果了!!!!
Matlab利用Caffe实现SRCNN步骤与问题解决
训练迭代次数太少,影像上只有低频信息。

上一篇:caffe中数据准备注意事项


下一篇:caffe 根据txt生成多标签LMDB数据