【656】SegNet 相关说明
2021/9/5 6:07:56
本文主要是介绍【656】SegNet 相关说明,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码:
from keras import Model, layers from keras.layers import Input, Conv2D, BatchNormalization, Activation, Reshape, MaxPooling2D, UpSampling2D def segnet(pretrained_weights=None, input_size=(512, 512, 3), classNum=2, learning_rate=1e-5): inputs = Input(input_size) #encode #第一层 64,64 conv1 = BatchNormalization()( Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(inputs)) conv1 = BatchNormalization()( Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv1)) pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) #第二层 128,128 conv2 = BatchNormalization()( Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool1)) conv2 = BatchNormalization()( Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv2)) pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) #第三层 256,256,256 conv3 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool2)) conv3 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv3)) conv3 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv3)) pool3 = MaxPooling2D(pool_size=(2, 2))(conv3) #第四层 512,512,512 conv4 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool3)) conv4 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv4)) conv4 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv4)) pool4 = MaxPooling2D(pool_size=(2, 2))(conv4) #第五层 512,512,512 conv5 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(pool4)) conv5 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv5)) conv5 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv5)) pool5 = MaxPooling2D(pool_size=(2, 2))(conv5) #decode #上采样 up1 = UpSampling2D(size=(2, 2))(pool5) #第六层 512,512,512 conv6 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up1)) conv6 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv6)) conv6 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv6)) up2 = UpSampling2D(size=(2, 2))(conv6) #第七层 512,512,512 conv7 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up2)) conv7 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv7)) conv7 = BatchNormalization()( Conv2D(512, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv7)) up3 = UpSampling2D(size=(2, 2))(conv7) #第八层 256,256,256 conv8 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up3)) conv8 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8)) conv8 = BatchNormalization()( Conv2D(256, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv8)) up4 = UpSampling2D(size=(2, 2))(conv8) # 第八层 256,256,256 conv9 = BatchNormalization()( Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up4)) conv9 = BatchNormalization()( Conv2D(128, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv9)) up5 = UpSampling2D(size=(2, 2))(conv9) #第九层 64,64 conv10 = BatchNormalization()( Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(up5)) conv10 = BatchNormalization()( Conv2D(64, 3, activation='relu', padding='same', kernel_initializer='he_normal')(conv10)) # softmax输出层 conv11 = Conv2D(1, 1, padding='same', activation='sigmoid')(conv10) model = Model(inputs=inputs, outputs=conv11) return model
这篇关于【656】SegNet 相关说明的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南