学习内容:
CNN,有两个卷积(5*5)池化层(2*2的maxPooling),然后两个全连接层h_fc1和h_fc2,我只使用第一个全连接层h_fc1就提取了特征。
然后中间的激活函数使用的是relu函数,同时为了防止过拟合使用了dropout的技巧。然后这个代码中其实是实现了完整的CNN的的预测的,损失使用交叉熵,优化器使用了AdamOptimizer。
流程:整理训练网络的数据,对样本进行处理 -> 建立卷积神经网络-> 将数据代入进行训练 -> 保存训练好的模型(从全连接层提取特征) -> 把数据代入模型获得特征向量 -> 用特征向量代替原本的输入送入SVM训练 -> 测试时同样将h_fc1转换为特征向量之后用SVM预测,获得结果。
使用留出法样本处理和评价:
1.将原样本随机地分为两半。一份为训练集,一份为测试集
2.重复1过程十次,得到十个训练集和十个对应的测试集
3.取十份训练集中的一份和其对应的测试集。代入到CNN和SVM中训练。
4.依次取训练集和测试集,则可完成十次第一步。
5.将十次的表现综合评价,十次验证取平均值,计算正确率、准确率、召回率、F1值。比如 F1 分数 , 用于测量不均衡数据的精度.
参考网站 https://blog.csdn.net/qq_27756361/article/details/80479278