TensorFlow中CNN有关(基础)

TF中CNN有关(基础)

piccolo(一个正在学的人)
最近开始接触 学习,主要是记录自己好找的东西

Input

tf中一般用一个4-Dtensor来表示
shape[batch_size, in_width, in_height, channels]

卷积核

一般也用一个4-Dtensor来表示,其shape[filter_width, filter_height, input_channels, output_channels],卷积核移动的步长strides一般为[1, strides, strides, 1].

举例
输入为6x6的单通道(1)图片,每一次输入batch数目

[batch_size, 6, 6, 1]

Convolution

h_conv2d = tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
  • 卷积计算函数
  • stride [1, x步长, y步长, 1]
  • padding:SAME/FULL/VALID(边距处理方式)

325*5卷积核,其shape[5,5,1,32]

Padding

可参考TensorFlow中CNN的两种padding方式“SAME”和“VALID”

  • padding='SAME'(尺寸填充为原尺寸)

  • 模型尺寸分析:卷积层全都采用了(填充)补0,所以经过卷积层长和宽不变,只有深度加深。池化层全都没有补0,所以经过池化层长和宽均减小,深度不变。

    out_height = ceil(float(in_height) / float(strides[1])
    out_width  = ceil(float(in_width) / float(strides[2]))
    
  • padding='VALID'(尺寸不够就缩小)

  • 模型尺寸分析:经过卷积层长和宽往往都缩小,

    out_height = ceil(float(in_height - filter_height + 1) / float(strides[1]))
    out_width  = ceil(float(in_width - filter_width + 1) / float(strides[2]))
    

Max Pooling

h_pool = tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')#2x2的池化窗口 步长为2  

2*2max_pooling,其形状为[1,2,2,1],其步长strides[1,2,2,1]

  • max池化函数
  • ksize [1, x边长, y边长,1]池化窗口大小
  • stride [1, x步长, y步长, 1]
  • padding:SAME/FULL/VALID(边距处理方式)

激活函数

全连接层一般使用sigmoid或者tanh
卷积层一般使用tanhReLu及其改进型
可参考
常用激活函数(激励函数)理解与总结
深度学习之损失函数与激活函数的选择

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值