Есть ли способ обойти устаревший tf.contrib.slim.batch_norm ()? - PullRequest
0 голосов
/ 21 марта 2020

Я использую Darkflow с YOLO для обнаружения объектов и Tensorflow 2.1.0. Я получаю сообщение об ошибке модуля, не найденного при попытке импорта, поскольку tf.contrib.slim устарел и tf.compat.v1 не может использоваться с ним.

Я попытался использовать tf.nn.batch_normalization, что дало мне ошибку -

Отсутствует аргумент Center

и

Использование tf.keras.layers дал мне ошибку -

TypeError: ('Аргумент ключевого слова не понят:', 'scope')

, когда я попытался заменить последний строка в коде -

def batchnorm(self, layer, inp):
        if not self.var:
            temp = (inp - layer.w['moving_mean'])
            temp /= (np.sqrt(layer.w['moving_variance']) + 1e-5)
            temp *= layer.w['gamma']
            return temp
        else:
            args = dict({
                'center' : False, 'scale' : True,
                'epsilon': 1e-5, 'scope' : self.scope,
                'updates_collections' : None,
                'is_training': layer.h['is_training'],
                'param_initializers': layer.w
                })
            return slim.batch_norm(inp, **args)

Я также попытался использовать репозиторий tf-slim google-research, который тоже не работал бы

Вот ссылка на страницу с полным кодом - https://github.com/thtrieu/darkflow/blob/master/darkflow/net/ops/convolution.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...