首页 > 编程知识 正文

deeplab系列详解,deeplab v2

时间:2023-05-04 08:18:53 阅读:196677 作者:4024

前言

Deeplab系列网络是由Geogle所提出,V2以后主要是引入了atrous spatial pyramid pooling(ASPP),利用不同膨胀因子的空洞卷积融合多尺度信息。其实就是利用空洞卷积(带孔卷积)用不同的rate来对图像特征进行操作的。

其具体结构如图所示:特征经过pooling5以后,分别采用了33卷积,rate不同,进行多尺度特征融合,后两层都用11卷积,最后相加。

代码实现

总的来说ASPP的代码架构还是非常好实现的

#################ASPPimport tensorflow as tfx = tf.placeholder(tf.float32,[None, 500, 500, 3])#输入图片大小def ASPP(x, rate1, rate2, rate3, rate4, channel): ##第一层 layer1_1=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate1) layer1_2=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate2) layer1_3=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate3) layer1_4=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate4) ##第二层 layer1_1=tf.layers.conv2d(layer1_1,channel,1,strides=1, padding='same') layer1_2=tf.layers.conv2d(layer1_2,channel,1,strides=1, padding='same') layer1_3=tf.layers.conv2d(layer1_3,channel,1,strides=1, padding='same') layer1_4=tf.layers.conv2d(layer1_4,channel,1,strides=1, padding='same') #第三层 layer1_1=tf.layers.conv2d(layer1_1,channel,1,strides=1, padding='same') layer1_2=tf.layers.conv2d(layer1_2,channel,1,strides=1, padding='same') layer1_3=tf.layers.conv2d(layer1_3,channel,1,strides=1, padding='same') layer1_4=tf.layers.conv2d(layer1_4,channel,1,strides=1, padding='same') output=layer1_1+layer1_2+layer1_3+layer1_4 return output layer1=tf.layers.conv2d(x,256,3,strides=1, padding='same')layer1=tf.nn.relu(layer1)layer2=ASPP(layer1,2,4,6,8,256)print(layer2)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。