您现在的位置是:课程教程文章

Python高级架构模式的整理

2023-12-13 23:44课程教程文章 人已围观

1、残差连接是目前常用的组件,解决了大规模深度学习模型梯度消失和瓶颈问题。

通常,在10层以上的模型中追加残差连接可能有帮助。

fromkerasimportlayers

x=...

y=layers.Conv2D(128,3,activation='relu',padding='same')(x)
y=layers.Conv2D(128,3,activation='relu',padding='same')(y)
y=layers.MaxPooling2D(2,strides=2)(y)

#形状不同,要做线性变换:
residual=layers.Conv2D(128,1,strides=2,padding='same')(x)#使用1×1卷积,将x线性下采样为与y具有相同的形状

y=layers.add([y,residual])

2、标准化用于使模型看到的不同样本更相似,有助于模型的优化和泛化。

#Conv
conv_model.add(layers.Conv2D(32,3,activation='relu'))
conv_model.add(layers.BatchNormalization())

#Dense
dense_model.add(layers.Dense(32,activation='relu'))
dense_model.add(layers.BatchNormalization())
3、深度可分离卷积层,在Keras中被称为SeparableConv2D,其功能与普通Conv2D相同。
但是SeparableConv2D比Conv2D轻,训练快,精度高。
fromtensorflow.keras.modelsimportSequential,Model
fromtensorflow.kerasimportlayers

height=64
width=64
channels=3
num_classes=10

model=Sequential()
model.add(layers.SeparableConv2D(32,3,
activation='relu',
input_shape=(height,width,channels,)))
model.add(layers.SeparableConv2D(64,3,activation='relu'))
model.add(layers.MaxPooling2D(2))

model.add(layers.SeparableConv2D(64,3,activation='relu'))
model.add(layers.SeparableConv2D(128,3,activation='relu'))
model.add(layers.MaxPooling2D(2))

model.add(layers.SeparableConv2D(64,3,activation='relu'))
model.add(layers.SeparableConv2D(128,3,activation='relu'))
model.add(layers.GlobalAveragePooling2D())

model.add(layers.Dense(32,activation='relu'))
model.add(layers.Dense(num_classes,activation='softmax'))

model.compile(optimizer='rmsprop',loss='categorical_crossentropy')

以上就是Python高级架构模式的整理,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

课程教程:Python高级架构模式的整理

上一篇:python超参数如何优化

下一篇:没有了

站点信息

  • 文章统计篇文章