tl.layers.BatchNormLayer使用

首先应注意batch_normalization的位置,一般是在conv之后,激活函数之前。

那么如何在自己的网络结构里插入bn呢?

TensorLayer官方示例

       net = Conv2dLayer(net_in,
                          act=tf.identity,
                          shape=(3, 3, 3, 32),
                          strides=(1, 1, 1, 1),
                          padding='SAME',
                          name='conv_1')
        net = MaxPool2d(net,
                        filter_size=(2, 2),
                        padding='SAME',
                        name='maxpool_1')
        net = BatchNormLayer(net, is_train_bn, name='batchNorm_1', act=tf.nn.relu)

上述代码conv2dlayer中的激活函数为tf.identiy,其作用简单来说将tensor变量转化为graph上的一个节点,实际上并没有真正起到类似于relu、tanh等函数作用。

最终在bachnolayer后使用激活函数relu。

你可能感兴趣的:(tl.layers.BatchNormLayer使用)