Tensorflow笔记之卷积神经网络

19 篇文章 0 订阅
18 篇文章 2 订阅

如上图所示,该结构为卷积神经网络结构中最重要的部分,被称为过滤器(filter)或者内核(kernel),其作用是将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。单位节点矩阵指长和宽都为1,但深度不限的节点矩阵。

在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是人工指定的,这个节点矩阵的尺寸也被称之为过滤器的尺寸。通常用的尺寸为3x3或5x5.因为过滤器处理的矩阵深度和当前层神经网络节点矩阵的深度一致,所以只需要指定两个维度。

在上图中,过滤器的前向传播就是通过左侧小矩阵中的节点计算出右侧单位矩阵中节点的过程。

以下代码通过Tensorflow实现了卷积层,代码如下:

#通过tf.get_variable的方式创建过滤器的权重变量和偏置项变量,上面介绍了
#卷积层参数个数之和过滤器的尺寸、深度以及当前层节点矩阵的深度有关,所以这里
#声明的参数变量是一个四维矩阵,前面两个维度代表了过滤器的尺寸,第三个维度表示当前
#层的深度,第四个参数表示过滤器的深度
filter_weight=tf.get_variable(
        'weights',[5,5,3,16],
        initializer=tf.truncated_normal_initializer(stddev=0.1)
        )
#和卷积层的权重类似,当前层矩阵上不同位置的偏置项也是共享的,所以总共下一层深度个不同的
#偏置项。本样例为16也就是下一层神经网络中节点矩阵的深度。
biases=tf.get_variable(
        'baises',[16],initializer=tf.constant_initializer(0.1)
        )
conv=tf.n.conv.2d(
        input,filter_weight,strides=[1,1,1,1],padding='SAME'
        )
bias=tf.nn.bias_add(conv,biases)
actived_conv=tf.nn.relu(bias)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值