def constructNet(input_dim=784,n_hidden=1000,n_out=1000,nb_filter=50,prob=0.5,lr=0.0001):
nb_filters=50
input_img= Input(shape=list(input_dim))
a = input_img
a1 = AtrousConvolution2D(nb_filters, 3, 3,atrous_rate=(1,1),border_mode='same')(a)
b = AtrousConvolution2D(nb_filters, 3, 3,atrous_rate=(1,1),border_mode='same')(a) #We only use the diagonal output from this, TODO: only filter diagonal
a2=Lambda(GetDiag, output_shape=out_diag_shape)(b)
comb=merge([a1,a2],mode='sum')
comb = BatchNormalization()(comb)
a = Activation('relu')(comb)
l=5
for i in range(1,l):
a1 = AtrousConvolution2D(nb_filters, 3, 3,atrous_rate=(l,l),border_mode='same')(a)
b = AtrousConvolution2D(nb_filters, 3, 3,atrous_rate=(l,l),border_mode='same')(a) #We only use the diagonal output from this, TODO: only filter diagonal
a2=Lambda(GetDiag, output_shape=out_diag_shape)(b)
comb=merge([a1,a2],mode='sum')
comb = BatchNormalization()(comb)
a = Activation('relu')(comb)
decoded = Convolution2D(1, 1, 1, activation='sigmoid', border_mode='same')(a)
final=Flatten()(decoded)
model = Model(input_img, final)
model.summary()
model.compile(optimizer='adam', loss='binary_crossentropy')
return model
python类AtrousConvolution2D()的实例源码
densenet_fc.py 文件源码
项目:Fully-Connected-DenseNets-Semantic-Segmentation
作者: titu1994
项目源码
文件源码
阅读 25
收藏 0
点赞 0
评论 0
def __transition_up_block(ip, nb_filters, type='upsampling', output_shape=None, weight_decay=1E-4):
''' SubpixelConvolutional Upscaling (factor = 2)
Args:
ip: keras tensor
nb_filters: number of layers
type: can be 'upsampling', 'subpixel', 'deconv', or 'atrous'. Determines type of upsampling performed
output_shape: required if type = 'deconv'. Output shape of tensor
weight_decay: weight decay factor
Returns: keras tensor, after applying upsampling operation.
'''
if type == 'upsampling':
x = UpSampling2D()(ip)
elif type == 'subpixel':
x = Convolution2D(nb_filters, 3, 3, activation="relu", border_mode='same', W_regularizer=l2(weight_decay),
bias=False, init='he_uniform')(ip)
x = SubPixelUpscaling(scale_factor=2)(x)
x = Convolution2D(nb_filters, 3, 3, activation="relu", border_mode='same', W_regularizer=l2(weight_decay),
bias=False, init='he_uniform')(x)
elif type == 'atrous':
# waiting on https://github.com/fchollet/keras/issues/4018
x = AtrousConvolution2D(nb_filters, 3, 3, activation="relu", W_regularizer=l2(weight_decay),
bias=False, atrous_rate=(2, 2), init='he_uniform')(ip)
else:
x = Deconvolution2D(nb_filters, 3, 3, output_shape, activation='relu', border_mode='same',
subsample=(2, 2), init='he_uniform')(ip)
return x