相关疑难解决方法(0)

偏差在神经网络中的作用

我知道梯度下降和反向传播定理.我没有得到的是:什么时候使用偏见很重要,你如何使用它?

例如,在映射AND函数时,当我使用2个输入和1个输出时,它不会给出正确的权重,但是,当我使用3个输入(其中1个是偏置)时,它会给出正确的权重.

artificial-intelligence machine-learning neural-network

750
推荐指数
18
解决办法
31万
查看次数

在卷积层中不能同时使用偏差和批量归一化

我使用slim框架进行张量流,因为它简单.但是我希望卷积层具有偏差和批量标准化.在vanilla tensorflow中,我有:

def conv2d(input_, output_dim, k_h=5, k_w=5, d_h=2, d_w=2, name="conv2d"):
    with tf.variable_scope(name):
        w = tf.get_variable('w', [k_h, k_w, input_.get_shape()[-1], output_dim],

    initializer=tf.contrib.layers.xavier_initializer(uniform=False))
    conv = tf.nn.conv2d(input_, w, strides=[1, d_h, d_w, 1], padding='SAME')

    biases = tf.get_variable('biases', [output_dim], initializer=tf.constant_initializer(0.0))
    conv = tf.reshape(tf.nn.bias_add(conv, biases), conv.get_shape())

    tf.summary.histogram("weights", w)
    tf.summary.histogram("biases", biases)

    return conv

d_bn1 = BatchNorm(name='d_bn1')
h1 = lrelu(d_bn1(conv2d(h0, df_dim + y_dim, name='d_h1_conv')))
Run Code Online (Sandbox Code Playgroud)

然后我把它重写为苗条:

h1 = slim.conv2d(h0,
                 num_outputs=self.df_dim + self.y_dim,
                 scope='d_h1_conv',
                 kernel_size=[5, 5],
                 stride=[2, 2],
                 activation_fn=lrelu,
                 normalizer_fn=layers.batch_norm,
                 normalizer_params=batch_norm_params,                           
                 weights_initializer=layers.xavier_initializer(uniform=False),
                 biases_initializer=tf.constant_initializer(0.0)
                 )
Run Code Online (Sandbox Code Playgroud)

但是这段代码不会给conv层增加偏见.那是因为https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/layers.py#L1025其中是

    layer = layer_class(filters=num_outputs,
                    kernel_size=kernel_size, …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

16
推荐指数
1
解决办法
7232
查看次数

过滤器如何在 CNN 的第一层中穿过 RGB 图像?

我正在看这个图层的打印输出。我意识到,这显示了输入/输出,但与如何处理 RGB 通道无关。

在此处输入图片说明

如果您查看 block1_conv1,它会显示“Conv2D”。但是如果输入是 224 x 224 x 3,那么这不是 2D。

我的更大、更广泛的问题是,在整个训练这样的模型的过程中如何处理 3 个通道输入(我认为它是 VGG16)。RGB 通道是否在某个时刻组合(相加或连接)?何时何地?为此需要一些独特的过滤器吗?或者模型是否从头到尾分别跨越不同的通道/颜色表示?

convolution neural-network channels conv-neural-network vgg-net

6
推荐指数
1
解决办法
1158
查看次数