Как правильно сохранить и загрузить вложенную модель keras (модель, содержащую другую модель, переданную в качестве аргуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно сохранить и загрузить вложенную модель keras (модель, содержащую другую модель, переданную в качестве аргу

Сообщение Anonymous »

Я работаю над сохранением и загрузкой вложенной модели Keras, где внутренняя модель передается в качестве аргумента внешней модели. Код сохраняет модель без проблем, но когда я ее загружаю, восстанавливаются только слои внешней модели. Внутренняя модель потеряна. Вот код:

Код: Выделить всё

import keras

class InnerModel(keras.Model):
def __init__(self, **kwargs):
super().__init__()
self.dense1 = keras.layers.Dense(64, activation='relu')
self.dense2 = keras.layers.Dense(32, activation='relu')

def call(self, inputs):
x = self.dense1(inputs)
return self.dense2(x)

@keras.saving.register_keras_serializable()
class OuterModel(keras.Model):
def __init__(self, inner_model, **kwargs):
super().__init__(**kwargs)
self.inner_model = inner_model
self.dense3 = keras.layers.Dense(16, activation='relu')
self.output_layer = keras.layers.Dense(1)

def call(self, inputs):
x = self.inner_model(inputs)
x = self.dense3(x)
return self.output_layer(x)

def get_config(self):
config = super().get_config()

config.update({
"inner_model": self.inner_model,
})

return config

inner_model = InnerModel()
outer_model = OuterModel(inner_model)

outer_model.save('outer_model.keras')

loaded_model = keras.saving.load_model('outer_model.keras')
loaded_model.summary()
Чтобы это исправить, я попытался переопределить from_config, чтобы он мог перестроить внутреннюю модель во время загрузки, и это сработало. Вот пример:

Код: Выделить всё

@classmethod
def from_config(cls, config):
inner_model = config["inner_model"]
return cls(InnerModel.from_config(inner_model))
Обратите внимание, что для работы примера конфигурация должна быть получена следующим образом:

Код: Выделить всё

"inner_model": self.inner_model.get_config()
Есть ли лучший способ правильно сохранить и загрузить вложенную модель, сохранив при этом внутреннюю модель?


Подробнее здесь: https://stackoverflow.com/questions/793 ... taining-an
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»