2、 神经网络的搭建以及迁移学习的测试
7.项目总结 通过本次水果图片卷积池化全连接试验分类项目的实践,我对卷积、池化、全连接等相关的理论的理解更加全面和清晰了。试验主要采用python高级编程语言的TensorFlow和Keras这两个库。在实验学习的过程中,开始时,对于TensorFlow和Keras并不是很了解,里面提供的许多方法也不熟悉,但经过老师课堂的讲解和演示一些关键的、和常用的方法或函数,以及对相关参数的传递、变化,如:权值的变化、图片尺寸的变化、图片通道的变化、偏置的设置、优化函数的选取及学习率的选择等等,这些原本不是很了解很熟悉的知识,通过本项目实践和老师的指导以及通过互联网学习平台和课本......我现在已经对这方面的知识已经了解得很是深入了,对TensorFlow这个python库相关变量、常量、方法函数等定义和使用,也十分的熟悉了,并且现在我能够做到使用TensorFlow搭建任意层次的神经网络卷积层、池化层、全连接层,对于一些常量和变量的设定以及它们之间的传递关系也了然于心了,对于基于Keras的VGG19的迁移学习以及使用呢TensorBoard对神经网络层各种参数的可视化等技术和理论知识,也有了很大的进步和了解。 但在实验过程中,我遇到了许多的问题,比如一个最大的问题就是:我搭建的神经网络层的准确率特别的低,由于这个问题,还牵涉到了其它的许多小问题,但我都通过自己的努力解决了。准确率低的原因有很多,以下是我对实验准确率低的一个总结,也是我整个小学期期间尝试最"苦"的地方: 1、神经网络的学习率太大,导致欠拟合 2、搭建的神经网络的层次太多,导致过拟合 3、图片的深度设置太小,导致欠拟合 4、图片的深度设置太大,导致过拟合 5、图片预处理时,裁剪得太多,导致图片许多关键的特征丢失 6、神经网络学习循环的次数太少,也会导致准确率低 7、神经网络优化器选定不当,导致准确率低 8、图片的标签与图片没有对应上 9、加载训练数据时,没有事先乱序处理 10、乱序时,图片数据与标签没有做相对应的变化 11、降低图片的通道数也会导致准确率低 就是这样通过实验的摸索和验证,我对整一个项目的所有知识点慢慢地理解得更加通透、这方面的代码编写能力也有了很大的提高。 8.收获与体会 总的来说,这整一个小学期我的收获有很多,比如深度学习的许多理论知识:卷积、池化、全连接、激活函数、权值、偏置以及如何设定它们来搭建一个或多个深度学习的神经网络层、迁移学习、TensorBoard可视化参数等理论和知识,并且能够独自使用Keras和TensorFlow这两个python库搭建起任意复杂度的卷积神经网络层来进行分析和处理相关的数据了。 通过互联网和各种深度学习资料书,也对TensorFlow的编程框架有了更加清晰、深入的理解,相关的案例都已经了然于胸,也一一动手把案例通过编程实现了出来。对于优化函数部分,也有了更加深入的理解,这部分知识写在了报告的前一部分,作为TensorFlow框架的一部分。正是因为对优化函数的理解,使得我能够对不同的数据处理状况和正确设置相关学习率有了更大的自信。 在此,我要特别地感谢这小学期期间教导我的苏老师,以及给予我帮助和我一起学习、讨论问题的同学,他们都在我学习的过程中给予了很大的帮助,没有他们的指导、讨论,我也不可能短时间内,对深度学习卷积神经网络这一块的知识理解和掌握得那么快,我也会好好努力,以便自己更好地帮助他人解疑答惑,对老师、同学们给予的帮助,再次表示衷心的感谢......