Python培训之高级架构模式的整理

发布时间:2023-01-03 09:38:30 人气:47 作者:多测师

  Python高级架构模式的整理

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

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

  from keras import layers

  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())

Python培训之高级架构模式的整理

  # Dense

  dense_model.add(layers.Dense(32, activation='relu'))

  dense_model.add(layers.BatchNormalization())

  3、深度可分离卷积层,在Keras中被称为SeparableConv2D,其功能与普通Conv2D相同。

  但是SeparableConv2D比Conv2D轻,训练快,精度高。

  from tensorflow.keras.models import Sequential, Model

  from tensorflow.keras import layers

  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学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线