导读
写下此文章的目的,是希望帮助那些跟我一样希望使用keras来搭建属于自己的模型的童鞋。
在这里,使用了属于自己的数据集,去一步步的搭建属于自己的keras模型,并进行训练。
其中有详细的,有忽略的,有不明白的,或者希望更深一步进行理解的,万能的csdn会给你解答。
理解
在我的理解中,整个过程我大致的分为四步:
1.数据预处理
2.模型搭建
3.模型调参
4.模型训练
解读
碎碎念开启:
首先,数据预处理,在我理解中,他的涵义之一就是将不规则的数据,统一规划起来。一个散乱的军队,我想是没法打好仗的,同样的道理,一堆没有统一的数据,模型是很难学习的。我们需要将他们统一格式,然后,我们还要对数据进行加强。加强是什么意思呢?就是,对于我们拍摄的数据,我们希望模型在学习的时候,能够举一反三,就是对于这张照片,我们上下翻转,左右平移一下,模型还能识别出来,所以我们在模型学习的时候,就将这些数据进行处理,将一张张照片进行一些反转啊平移之类的处理。希望模型学习完成的时候,能对一张照片的不同样式下,都能识别出来。
其次,是模型搭建。模型搭建有深有浅,约深的模型,更能学习一张照片比较的抽象的状态。比较浅的模型,能够好的学习一张照片的边边角角,通俗理解就是照片中物体大概的轮廓。模型是灵活的,是根据自己需要进行搭建的。你可能会像,我是不是需要学很多才能搭建比较理想的一种模型,实际上,答案已经给出了。我们可以学习使用目前比较成熟好用的模型,从而省下自己去设计去摸索的时间,能够更好的进行应用与实践。时间充裕时,在具有一定理解的基础上,进行自己的摸索与研究,更深入一番。
再次,模型调参,用我认识的一位老师的一句话,是一门艺术活。在这方面,因为时间精力原因(主要是因为我太菜了),并没有很多的理解与操作。
最后,模型的训练,实际上,模型训练并不是最后一步。模型调参与模型训练是两个相互结合重复循环的过程,就是训练,看好一看效果,调一调参,训练训练(注意不是训练一边就调一次参,在你感觉模型到极限的,或者通过调参可以拥有更好的效果的时候)。在进行合理的训练之后,在拟合和过拟合之间时,如果模型对未知的数据(没有学习过的数据)进行预测时,一直没有达到很理想的水平。我们就改考虑是否更改模型的结构了。这些都是看个人理解与个人经验。
碎碎念结束!干货了,对于不懂得函数,大可以csdn搜索,查看函数时有何作用,以及参数的意义。
在这次的实践中,我们都是用了那些的东西嘞??
大概罗列一下:keras 的线性模型Sequential()模型(堆蛋糕一样的堆模型)、图片生成器ImageDataGenerator()、模型的保存加载、模型训练fit_generator()(他还