影醉阏轩窗

衣带渐宽终不悔,为伊消得人憔悴。
扩大
缩小

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')

 

posted on 2018-05-09 09:24  影醉阏轩窗  阅读(272)  评论(0编辑  收藏  举报

导航

/* 线条鼠标集合 */ /* 鼠标点击求赞文字特效 */ //带头像评论