python架构图(Python高级架构模式的整理)
导读:1、残差连接是目前常用的组件,解决了大规模深度学习模型梯度消失和瓶颈问题。...
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基础教程
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!