Я перевожу код TensorFlow в Tensorflow 2.1.0.
Вот оригинальный код:
conv = tf.layers.conv2d(inputs, out_channels, kernel_size=3, padding='SAME')
conv = tf.contrib.layers.batch_norm(conv, updates_collections=None, decay=0.99, scale=True, center=True)
conv = tf.nn.relu(conv)
conv = tf.contrib.layers.max_pool2d(conv, 2)
И вот что я сделал:
conv1 = Conv2D(out_channels, (3, 3), activation='relu', padding='same', data_format='channels_last', name=name)(inputs)
conv1 = Conv2D(64, (5, 5), activation='relu', padding='same', data_format="channels_last")(conv1)
#conv = tf.contrib.layers.batch_norm(conv, updates_collections=None, decay=0.99, scale=True, center=True)
pool1 = MaxPooling2D(pool_size=(2, 2), data_format="channels_last")(conv1)
Моя проблема в том, что я не знаю, что делать с tf.contrib.layers.batch_norm
.
Как мне перенести tf.contrib.layers.batch_norm
в Tensorflow 2.x?
UPDATE: Используя предложение комментария, я думаю, что я мигрировал правильно:
conv1 = BatchNormalization(momentum=0.99, scale=True, center=True)(conv1)
Но я не уверен, что decay
похож на momentum
, и я не знаю, как установить updates_collections
в BatchNormalization
метод.