1,tensorflow部分,
注意backbone利用了mobilenetv2,其中tf使用注意事项:
-
使用 tf.variable_scope(‘mv2’,reuse=tf.AUTOREUSE):
其中reuse可以节省图空间,一样的scope可以利用这个scope省资源。 -
使用kernal卷积核,tf中格式是(kh,kw,kc,outputnum):即
w = tf.get_variable(‘w’, [k_h, k_w, input_.get_shape()[-1], output_dim],
regularizer=tf.contrib.layers.l2_regularizer(weight_decay),
initializer=tf.truncated_normal_initializer(stddev=stddev))
而卷积过程是[1,stridey,stridex,1]如下:
conv = tf.nn.conv2d(input_, w, strides=[1, d_h, d_w, 1], padding=‘SAME’) -
而卷积偏置是与通道无关的:
biases = tf.get_variable(‘bias’,[output_dim],initializer=tf.constant_initializer(0.0))
conv = tf.nn.bias_add(conv, biases)
2.mobilenetv2部分:
注意点:c是输出通道,n是此步骤的单个res_block数量,s是stride,对应stride=1和stride=2 不用架构,t是膨胀系数,可以认为升维减少relu