• AlexNet实践


    注释:

      CNN使用TF搭建比较简单,就像Hough检测使用CV很简单一样。但是怎么使用CNN去做一些实际操作,或者说怎么使用现有的方法进行慢慢改进,这是一个很大的问题!

      直接跟着书本或者视频学习有点膨胀,遇到问题又有点畏缩,现在进行每个网络的实际操作,注意不是mnist操作测试验证!那个东西说难听点就是玩的。


    AlexNet的特点

      1. 针对网络架构: 
        • 成功的使用ReLU作为激活函数,并验证其效果在较深的网络要优于Sigmoid.
        • 使用LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变的相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
        • 使用重叠的最大池化,论文中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。
      2. 针对过拟合现象: 
        • 数据增强,对原始图像随机的截取输入图片尺寸大小(以及对图像作水平翻转操作),使用数据增强后大大减轻过拟合,提升模型的泛化能力。同时,论文中会对原始数据图片的RGB做PCA分析,并对主成分做一个标准差为0.1的高斯扰动。
        • 使用Dropout随机忽略一部分神经元,避免模型过拟合。
      3. 针对训练速度: 
        • 使用GPU计算,加快计算速度

    AlexNet的结构

    conv的使用注意:

    1 #[batch, in_height, in_width, in_channels]
    2     #[filter_height, filter_width, in_channels, out_channels]
    3     #strides: 总共四个维度,代表每个纬度移动的步长。图像一般都是2维,只用最中间两个[1,2,3,1].其它多维度的数据也最多到四个纬度
    4     #padding:SAME-->>代表步长为1时,卷积之前图像边缘补充0,最后结果和输入图像大小相同。注意这里步长为其它值时,最后的图像就变换了
    5             #VALID-->>代表图像随着步长和卷积核的大小改变
    6     return tf.nn.conv2d(x,W,strides=[1,1,1,1],padding='SAME')
  • 相关阅读:
    更改weblogic的jdk环境参数
    解决oracle12c安装失败【INS-30131】执行安装程序验证所需要的初始设置失败
    oracle 中listagg()函数的用法
    Oracle触发器用法实例详解
    oracle创建和删除表分区
    oracle分区表的建立方法(包含已经存在的表要分区)分享
    ajax、axios总结
    css3-动画(animation)
    webstrom 常用快捷键
    补漏洞
  • 原文地址:https://www.cnblogs.com/wjy-lulu/p/9012444.html
Copyright © 2020-2023  润新知