数据处理函数
这两周的主要任务是完成数据集处理代码的编写,因为单张加载训练集数据图片较慢,所以统一处理成pkl格式的数据放在一个文件中,以便于在每一轮训练中进行更快的加载数据。
其次,针对指定的batch_size以及对每个batch的最大长度进行限制,训练集进行打包,返回特征和标签以及对应的编号。
即是完成dataIterator(feature_file, label_file, dictionary, batch_size, batch_Imagesize, maxlen, maxImagesize)
函数编写
基于DenseNet的encoder来完成特征提取
DenseNet是最近两年才被提出的模型,提出DenseNet的论文获得了2017年CVPR(Conference on Computer Vision and Pattern Recognition)最佳论文,该模型虽然借鉴了ResNet的思想,却是全新的网络结构,它的结构并不复杂,但是非常有效,并且在各类指标上都超越了ResNet。
它是一种具有紧密连接性质的卷积神经网络,该神经网络中的任何两层都有直接连接,即网络中每一层的输入都是前面所有层输出的并集,而这一层学习到的特征也会被直接传递到后面的所有层作为输入。这种紧密连接仅仅存在于同一个Dense Block中,不同的Dense Block是没有这种紧密连接的。主要有以下好处:
- 缓解了梯度消失的问题
- 加强了特征的传播,鼓励重复利用特征
- 极大地减少了参数个数
- 具有正则化的效果,即使在较少的训练集上,也可以减少过拟合的现象
论文中对不同DenseNet网络结构的总结
我们采用DenseNet网络进行特征提取,我们将在这两周完成该部分代码的编写,并对网络进行适当调整。