Google colab не находит keras.engine при повторной инициализации весов нейронной сети - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно создать простую модель нейронной сети с небольшим количеством узлов, обучить ее и затем оценить определенные параметры в полученной уже обученной сети.

Мне нужно повторить это несколько раз (> 100). Таким образом, я просто хочу заново инициализировать веса вместо того, чтобы каждый раз создавать новую модель.

Вот проблемная часть моего кода:

 import tensorflow as tf
 from tensorflow import keras
 from keras import backend as K

 def reinitLayers(model):
     session = K.get_session()
     for layer in model.layers: 
         if isinstance(layer,keras.engine.network.Network):
             reinitLayers(layer)
....

Вот что я получаю:

 "module 'tensorflow._api.v1.keras' has no attribute 'engine'"

Однако существует keras.engine: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/python/keras/engine

Очень похожий вопрос: AttributeError: модуль 'keras.engine' не имеет атрибута 'input_layer' Однако ответ там не помогает мне.

Та же проблема описана здесь, но поток там не помогает: https://github.com/keras-team/keras/issues/341

1 Ответ

0 голосов
/ 20 марта 2019

Не могли бы вы переставить веса и использовать их вместо повторной инициализации, как указано в https://github.com/keras-team/keras/issues/341? В чем проблема?

Обновление

Я запустил следующий код

def reinitLayers(model):
    session = K.get_session()
    for layer in model.layers: 
        if isinstance(layer, keras.engine.network.Network):
            reinitLayers(layer)
            continue
        print("LAYER::", layer.name)
        for v in layer.__dict__:
            v_arg = getattr(layer,v)
            if hasattr(v_arg,'initializer'):
                initializer_method = getattr(v_arg, 'initializer')
                initializer_method.run(session=session)
                print('reinitializing layer {}.{}'.format(layer.name, v))

(указано на https://github.com/keras-team/keras/issues/341#issuecomment-423637768) в google colab. Он работал как с графическим процессором, так и без него, и я смог повторно инициализировать сеть. Другими словами, я не смог воспроизвести вашу ошибку. Дважды проверьте, что вы использовали это код и попробуйте запустить его снова.

...