标签:padding 说明 kernel BatchNormalization activation same 656 SegNet Conv2D
代码:
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
标签:padding,说明,kernel,BatchNormalization,activation,same,656,SegNet,Conv2D 来源: https://www.cnblogs.com/alex-bn-lee/p/15228416.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。