TensorFlow не может сохранить модель с отсутствующим аргументом self - PullRequest
3 голосов
/ 27 апреля 2019

Пожалуйста, помогите мне со следующим. Я не могу спасти свою модель. Как вы видите, я ссылаюсь на экземпляр Sequential() метода

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.InputLayer(input_shape=[timePortion,1 ]))
model.add(tf.keras.layers.Conv1D(kernel_size=timePortion,
                                 filters=1000, 
                                 strides=1,
                                 use_bias=False,
                                 activation="relu",
                                 kernel_initializer=tf.keras.initializers.VarianceScaling))
model.summary()
model.add(tf.keras.layers.Dropout(rate=0.2))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(32,
                                activation='relu', 
                                kernel_initializer=tf.keras.initializers.VarianceScaling))
model.add(tf.keras.layers.Dense(8,
                                activation='relu', 
                                kernel_initializer=tf.keras.initializers.VarianceScaling))
model.add(tf.keras.layers.Dense(1, 
                                kernel_initializer=tf.keras.initializers.VarianceScaling))
model.summary()
model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.001),
              loss="mean_squared_error", 
              metrics=["accuracy","mae"])
filepath = "model.h5"
model.fit(inputs,
          labels,
          steps_per_epoch=1,
          epochs=2,
          shuffle=False, 
          verbose=1)
tf.keras.models.save_model(model,
                           filepath, 
                           overwrite=True,
                           include_optimizer=True)

У меня проблемы с сохранением модели в блокноте Jupyter. Файл фактически создается, но затем я получаю эту ошибку. Это странно, потому что я ссылаюсь на экземпляр модели.

TypeError: get_config() missing 1 required positional argument: 'self'

1 Ответ

2 голосов
/ 27 апреля 2019

Проблема в инициализаторе ядра, который не может быть сериализован, потому что вы его не создали.Для создания экземпляра добавьте круглые скобки ():

kernel_initializer=tf.keras.initializers.VarianceScaling()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...