TF学习笔记2 - 实现卷积神经网络

本文介绍了卷积神经网络的基本结构,包括输入层、卷积层、池化层和全连接层,并详细阐述了卷积层和池化层的工作原理,强调了它们在图像处理中的优势以及在TensorFlow中的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卷积神经网络和全连接神经网络的唯一区别是神经网络中相邻两层的连接方式。

但在TensorFlow中训练一个卷积神经网络的流程和训练一个全连接神经网络没有任何区别。

全连接神经网络来处理图像数据会出现参数增多导致速度变慢以及过拟合问题。

一、卷积神经网络结构

由输入层、卷积层、池化层、全连接层、softmax层

1、卷积层

过滤器:将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。

规定过滤器的尺寸为输入节点矩阵的大小,过滤器的深度为输出单位节点矩阵的深度。

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

在CNN中,每一个卷积层中使用的过滤器中的参数都是一样的。

卷积层的参数个数只和过滤器的尺寸、深度以及当前层节点矩阵的深度有关。

一般卷积层通常采用补0或者改变步长来不改变节点矩阵大小。

#卷积层的前向传播过程
import tensorflow as tf

filter_weight = tf.get_variable('weights', [5, 5, 3, 16], initializer=tf.truncated_normal_initializer(stddev=0.1))

biases = tf.get_variable('biases', [16], initializer=tf.constant_initializer(0.1))

#卷积神经网络的前向推导,添加偏置项,采用relu激活函数去线性化
#strides控制步长,padding控制填充方式

conv = tf.nn.conv2d(input, filter_weight, strides=[1, 1, 1, 1], padding="SAME")
bias = tf.nn.bias_add(conv, biases)
actived_conv = tf.nn.relu(bias)

2、池化层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值