将千层面的重量激活转换为张量流

时间:2018-11-07 16:13:25

标签: tensorflow theano lasagne

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) 

0 个答案:

没有答案