net = batch_norm(Conv2DLayer(net,
num_filters=32,
filter_size=7,
pad='same',
nonlinearity=elu,
W=GlorotUniform('relu')))
在这里,我将应用一系列位于net-> conv2d-> batch_norm-> elu的图层。我对relu被用作globaluniform的输入参数感到困惑。这是否意味着将relu应用于权重集?该文档使我更加困惑。
权重的比例因子。对于线性和S形将此值设置为1.0 单位,以“ relu”或sqrt(2)表示已校正的线性单位,并以 sqrt(2 /(1 + alpha ** 2))用于带有泄漏的泄漏整流线性单元 α。其他传递函数可能需要不同的因素。
我对语句'relu'或sqrt(2)感到困惑。
这就是我在tensorflow中解释此代码流的方式。
with tf.variable_scope(name, reuse=tf.AUTO_REUSE):
with tf.variable_scope('conv_1', reuse=tf.AUTO_REUSE):
w = tf.get_variable(name='w',
shape=[ksize, ksize, layer.shape[3], ft_size],
dtype=dtype, initializer=initializer)
w = tf.relu(w)
b = tf.get_variable(name='b',
shape=[ft_size],
dtype=dtype,
initializer=tf.zeros_initializer())
layer = tf.nn.conv2d(input=layer, filter=w, strides=strides, padding=padding)
layer = tf.add(layer, b)
layer = tf.layers.batch_normalization(layer, training=is_training, momentum=0.9, epsilon=1e-4)
layer = tf.nn.elu(layer)