web-dev-qa-db-fra.com

Mise à niveau manuelle de tf.contrib.slim vers tf 2.0

J'ai un problème avec mon code python qui utilise tf.contrib.slim fonctionnalités et ne fonctionne plus après la mise à niveau vers tensorflow vers 2.0.

Comment puis-je mettre à niveau les éléments suivants vers tf 2.0:

import tensorflow.contrib.slim as slim
import tensorflow.contrib.slim.nets

# ...

net = slim.conv2d(
    inp, 
    dim,
    [3, 3],
    rate=1,
    normalizer_fn=slim.layer_norm,
    activation_fn=lrelu,
    scope='g_' + str(width) + '_conv1') 

Merci.

2
Jonas G.

Cela pourrait le faire:

net = tf.keras.layers.Conv2D(filters=dim, kernel_size=3, name='g_' + str(width) + '_conv1')(inp)
net = tf.keras.layers.BatchNormalization()(net)
net = tf.keras.layers.LeakyReLU()(net)

En utilisant slim, il y a une option pour mentionner la normalisation et l'activation de lot que vous souhaitez avoir après la couche de convolution. Vous ne pouvez pas le faire en 2.0, vous devez donc spécifier exactement la normalisation et l'activation que vous souhaitez dans 2 couches différentes.

0
Ohad Meir