计算机系统应用教程网站

网站首页 > 技术文章 正文

神经网络基础篇九 神经网络讲解

btikc 2024-10-18 04:45:56 技术文章 14 ℃ 0 评论

承接上文神经网络基础篇八

模型保存

指定模版保存路径

训练集和验证集结果差异大

说明出现了过拟合的现象

最终测试的效果

图形化显示

train_loss训练曲线一直在下降,val_loss验证loss波动一开始下降,波动越来越大,反而上升了,两者差异大。训练集的准确率1和验证集的准确率0.6,差的也挺多。上图只迭代了200,但没有改变的趋势,完全过拟合了。

对神经网络影响最大的就是学习率了,降低为原来的1/10看下效果

loss并没有直接变为0,

比较小学习率是0.01和0.001的效果

学习率大的波动非常大,学习率小的过拟合现象还是有的,但稍微好一些,起码在下降收敛。

acc还是有过拟合现象,训练集达0.9,验证集0.6,有了改善,迭代更多次,会慢慢降低收敛。

过拟合,主要是因为全连接层神经元太多了,每次训练的时候,随机的杀死一批神经元。

导入Dropout,在全连接层添加

效果如下:

可以看到左图慢慢在收敛,迭代2000次效果更明显。

初始化权重参数

  • kernel_initializer 权重参数的初始化方法
  • bias_initializer 偏置参数初始化 默认0

全连接层默认的初始化方法是均匀分布初始化。

这是高斯分布初始化,随机的均值和标准差。均值一般是0,希望随机值有正有负。标准差越大,随机生成的值越大,这个值小一点比较好。

截断的高斯分布

神经网络推荐的权重参数初始化方法,默认均值为0,标准差为0.05。

限定了取值范围。

均匀的高斯分布浮动的差异越来越大,即越来越不稳定,截断的高斯分布要好一些。截断高斯过拟合风险更低些,迭代1000次效果更明显。

第一个文件就是模型结果,包含了训练过程最后一步的权重参数和偏置参数以及整个网络模型所需要的参数,加载模型进行预测。

这是三个类别,预测每个图片输入属于每个类别的概率哪个大。

参数初始化

  • 第一个参数就是测试数据
  • 第二个参数:到指定路径把模型加载进来
  • 最终预测完3个标签的概率值 之前是one-hot encoding编码格式 还得对应成猫、狗、熊猫标签
  • 训练和测试输入图像大小都是一样的
  • 在传统的神经网络中需要把图像拉成特征即全连接层必须拉长成一条的意思(卷积神经网络就不需要了 原始图像就行)

加载数据并做预处理

原始训练怎么做预处理 测试也得怎么做预处理


把所有值压缩到0-1之间

执行拉平操作


把模型和标签读进来


进行预测,返回3个标签的概率值,找概率值最大的


在图像中展示预测结果

猫预测有误,因只迭代200次不够。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表