Tensorflow⑥——基本卷积操作CBAPD

卷积神经网络:借助卷积核提取特征后,送入全连接网络。
卷积是什么,卷积是特征提取器,就是CBAPD
卷积——披标准化——激活层——池化层——全连接
(Convolutional——BN——Activation——Pooling——Dropout),之后送入全连接层(FC)

tf.keras.layers.Conv2D

tf.keras.layers.Conv2D (
    filters = 卷积核个数,
    kernel_size = 卷积核尺寸, #正方形写核长整数,或(核高h,核宽w)
    strides = 滑动步长, #横纵向相同写步长整数,或(纵向步长h,横向步长w),默认1
    padding = “same” or “valid”, #使用全零填充是“same”,不使用是“valid”(默认)
    activation = “ relu ” or “ sigmoid ” or “ tanh ” or “ softmax”等 , #如有BN此处不写
    input_shape = (,, 通道数) #输入特征图维度,可省略
    )

在这里插入图片描述

tf.keras.layers.BatchNormalization()

tf.keras.layers.BatchNormalization()——批标准化,BN层通常位于卷积层之后,激活层之前。

model = tf.keras.models.Sequential([
	Conv2D(filters=6, kernel_size=(5, 5), padding='same'), # 卷积层
	BatchNormalization(), # BN层
	Activation('relu'), # 激活层
	MaxPool2D(pool_size=(2, 2), strides=2, padding='same'), # 池化层
	Dropout(0.2), # dropout层
])

tf.keras.layers.MaxPool2D、tf.keras.layers.AveragePooling2D

池化层。

tf.keras.layers.MaxPool2D(
	pool_size=池化核尺寸,#正方形写核长整数,或(核高h,核宽w)
	strides=池化步长,#步长整数, 或(纵向步长h,横向步长w),默认为pool_size
	padding=‘valid’or‘same’ #使用全零填充是“same”,不使用是“valid”(默认)
)

tf.keras.layers.AveragePooling2D(
	pool_size=池化核尺寸,#正方形写核长整数,或(核高h,核宽w)
	strides=池化步长,#步长整数, 或(纵向步长h,横向步长w),默认为pool_size
	padding=‘valid’or‘same’ #使用全零填充是“same”,不使用是“valid”(默认)
)

# 举例如下
model = tf.keras.models.Sequential([
	Conv2D(filters=6, kernel_size=(5, 5), padding='same'), # 卷积层
	BatchNormalization(), # BN层
	Activation('relu'), # 激活层
	MaxPool2D(pool_size=(2, 2), strides=2, padding='same'), # 池化层
	Dropout(0.2), # dropout层
])

tf.keras.layers.Dropout

tf.keras.layers.Dropout(舍弃的概率)

猜你喜欢

转载自blog.csdn.net/CRW__DREAM/article/details/127614012