Tensorflow⑥——基本的な畳み込み演算 CBAPD

畳み込みニューラル ネットワーク: 畳み込みカーネルを使用して特徴を抽出した後、それらは完全に接続されたネットワークに送信されます。
畳み込みとは、畳み込みは特徴抽出器、つまり、CBAPD
畳み込み - ファイ標準化 - 活性化層 - プーリング層 - 完全接続
(畳み込み - BN - 活性化 - プーリング - ドロップアウト) の後、完全接続層 (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