b站tensorflow2学习(2)

使用一层全连接层隐藏层的神经网络实现书写数字识别时,输入为2828个像素,输出为10个类别各自的概率值,假设隐藏层有128个神经元,那么待训练的参数就有784128个w+128个b+128*10个w+10个b,共101770个参数。
实际应用中,规模更大,如果直接使用全连接层,待优化的参数过多容易导致模型过拟合。
为了减少待训练的参数,会先对原始图片进行特征提取,把提取出来的特征送给全连接网络,再让全连接网络输出识别结果。
卷积计算就是一种有效的特征提取方法。
一般会用一个正方形的卷积核,按指定步长,在输入特征图上滑动,遍历输入特征图中的每个像素点。每一个步长,卷积核会与输入特征图出现重合区域,重合区域对应元素相乘,求和,再加上偏置项得到输出特征的一个像素点。
输入特征图的深度(channel数),决定了当前层卷积核的深度。
当前层卷积核的个数,决定了当前层输出特征图的深度。(n个卷积核,就对应着n张输出特征图)
卷积核越多,特征提取能力越强。

每个卷积核里的一个元素,就代表着一个待训练参数,前向传播时这些参数固定,反向传播时这些参数被更新(卷积核的值是自己设定的,然后通过反向传播更新)

感受野(Receptive Field):
卷积神经网络各输出特征图中的每个像素点,在原始输入图片上映射区域的大小
虽然两层33卷积核与一层55卷积核,输出特征图的感受野相同,但是2层3*3卷积核所需训练的参数更少,计算量更小,是更优的选择

全零填充padding
在输入特征图周围填充0(且卷积核步长为1),可以使得输出特征图的尺寸与原始输入图片相同。
tf描述全0填充: padding=’SAME’(填充) or padding=’VALID’(不填充)

TF描述卷积计算层
tf.keras.layers.Conv2D(
filters=卷积核个数,
kernel_size=卷积核尺寸,(or(核高h,宽w))
strides=滑动步长 (默认为1)or (纵向步长h,横向步长w)
padding=’same’ or ‘valid’
activation=’relu’ or ‘sigmoid’ or ‘tanh’ or ‘softmax’
input_shape=(高,宽,通道数)

批标准化(Batch Normalization,BN)
标准化:使数据符合0均值,1为标准差的分布。
批标准化:对一小批数据(batch),做标准化处理,使数据回归到标准正态分布。
BN常用在卷积操作和激活操作之间
为了防止批标准化带来的负面影响(激活函数非线性性质的缺失),为每个卷积核引入两个可训练参数γ和β,调整批归一化的力度,反向传播时更新这两个参数。
h=γ*x+b
tf描述批标准化
tf.keras.layers.BatchNormalization() 放在卷积层与激活层之间

池化
池化用于减少特征数据量。
最大值池化可提取图片纹理,均值池化可保留背景特征。
tf描述池化
tf.keras.layers.MaxPool2D(
pool_size=池化核尺寸,strides=池化步长,padding=‘valid’ or ‘same’)
or .AveragePooling2D

舍弃
在神经网络训练时,将一部分神经元按照一定概率从神经网络中暂时舍弃。在神经网络使用时,被舍弃的神经元再恢复链接。
tf描述舍弃
tf.keras.layers.Dropout(舍弃的概率)

卷积神经网络
卷积神经网络就是借助卷积核对输入特征进行特征提取,再把提取到的特征送入全连接网络进行识别预测,提取特征包括卷积,批标准化,激活,池化四步
卷积就是特征提取器,就是CBAPD

cifar10数据集
导入cifar10数据集:cifar10=tf.keras.datasets.cifar10
(x_train,y_train),(x_test,y_test)=cifar10.load_data()
可视化样本:plt.imshow(x_train[0])
plt.show()
输出样本特征:print(x_train[0])

卷积神经网络搭建示例 ——cifar数据集中识别十种动物
C(核:655,步长:1,填充:same)
B(Yes)
A(relu)
P(max,核:2*2,步长:2,填充:same)
D(0.2)
Flatten 把卷积送来的数据拉直
Dense 128 (神经元:128,激活:relu,dropout:0.2)
Dense 10 (神经元:10,激活:softmax) softmax函数使得输出符合概率分布
实现经典卷积网络
LeNet卷积神经网络的开篇之作,通过共享卷积核减少了网络的参数,LeNet一共有五层网络,LeNet比BN提出要早,所以不使用BN
在这里插入图片描述
在这里插入图片描述
AlexNet网络诞生于2012年,使用relu激活函数,dropout缓解过拟合
AlexNet共有8层,五个卷积-池化层和三个全连接层
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值