首页 技术 正文
技术 2022年11月15日
0 收藏 398 点赞 2,243 浏览 1048 个字

还没解决,以下是解释fine-tune

比如说,先设计出一个CNN结构。
然后用一个大的数据集A,训练该CNN网络,得到网络a。
可是在数据集B上,a网络预测效果并不理想(可能的原因是数据集A和B存在一些差异,比如数据来源不同导致的代表性差异)。如果直接用B的一部分训练的话,数据量太小,CNN不适用。

解决方法:
将数据集B分为train集和test,以a网络的参数为初始参数,以较小的学习率,以B的train集为训练数据,继续训练,得到网络b。

这样,b在B的test集中一般可实现较好的预测精度。

——————————————————————————————————————————————————————————————————————————————

就是把现成的模型略加修改然后再作少量training,主要用于样本数量不足的情形。 ——————————————————————————————————————————————————————————————————————————————把已经训练过的模型应用到新的数据集上。主要优点是相比于从scratch训练能在更短时间内达到相同的效果。
例子:
1.fine-tuning: 先拿CNN在cifar100上训练,然后仅仅修改最后一层softmax的输出节点个数(100改为10),再放到cifar10上训练。
2. train from scratch: 相同结构的CNN直接用cifar10训练。
结果:
第一种情况可能只要1000次迭代就能到达60%accuracy,第二种情况需要4000次才能达到60%的accuracy.
caffe官网有fine-tuning的例子,解释更详细。 ———————————————————————————————————————————————————————————————————————————————这就是迁移学习,大概意思就是将一个任务训练好的参数直接拿到另一个任务作为他的神经网络初始参数值,然后进行训练,这样比直接随机初始化的参数精度有提高。同时可以按照自己的需求设置某一些层的参数不变。 解决了,是图像路径设置的问题,导致图像生成不正确,leveldb的train和val/test 图像序号最好从零开始,而且标签也必须是从0开始,当 loss=87.3365时,应该适当调低学习率,0.01-0.00001中去调节,inner_product_param 中的num_output:应该为分类的数目。    

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,964
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781