Невозможно сохранить модель с помощью model.save('modelName')Python

Программы на Python
Ответить
Anonymous
 Невозможно сохранить модель с помощью model.save('modelName')

Сообщение Anonymous »


Я обучил сиамскую модель, но теперь столкнулся с проблемой сохранения этой модели, используя:

siamese_model.save('siamesemodel.h5')

Вот код сиамской модели:

def make_embedding(): inp = Input(shape = (100, 100, 3), name = 'Входное изображение') #Первый Блок c1 = Conv2D(64, (10, 10), активация = 'relu')(inp) m1 = MaxPooling2D(64, (2,2), дополнение = 'тот же')(c1) #Второй блок c2 = Conv2D(128, (7, 7), активация = 'relu')(m1) m2 = MaxPooling2D(64, (2,2), дополнение = 'тот же')(c2) #Третий Блок c3 = Conv2D(128, (4, 4), активация = 'relu')(m2) m3 = MaxPooling2D(64, (2,2), дополнение = 'тот же')(c3) #Финальный блок закрепления c4 = Conv2D(256, (4,4), активация = 'relu')(m3) f1 = Сгладить()(c4) d1 = Плотный (4096, активация = 'сигмовидная') (f1) return Model (входные данные = [inp], выходные данные = [d1], имя = 'Встраивание') встраивание = make_embedding() класс L1Dist(Слой): def __init__(self, **kwargs): супер().__init__() # Здесь происходит волшебство def call(self, input_embedding, validation_embedding): возврат (input_embedding-validation_embedding) защита get_config (сам): base_config = супер().get_config() config = { "подслой": keras.saving.serialize_keras_object(self.sublayer),} вернуть {**base_config, **config} def make_siamese_model(): # Обрабатывать входы # Закрепить ввод изображения в сети input_image = Input(name = 'input_img', shape = (100, 100, 3)) # Проверка изображения в сети validation_image = Input(name = 'validation_img', shape = (100, 100, 3)) # Объединить компонент L1Dist сиамский_слой = L1Dist() siamese_layer._name = 'расстояние' расстояния = siamese_layer(embedding(input_image), embedding(validation_image)) # Уровень классификации классификатор = Dense(1, активация = 'сигмовидная')(расстояния) return Model (входные данные = [input_image, validation_image], выходные данные = классификатор, имя = 'siameseNetwork') siamese_model = make_siamese_model()

ОШИБКА: модуль «tensorflow.keras» не имеет атрибута «сохранение»

У меня также возникла проблема с загрузкой уже сохраненной сиамской модели. Я попробовал загрузить модель, используя пользовательские объекты, как показано ниже, но это не сработало:

из tensorflow.keras.models import load_model model = load_model('siamesem_model.h5', custom_objects={'L1Dist':L1Dist, 'BinaryCrossentropy': tf.losses.binary_crossentropy}) NameError: имя «L1Dist» не определено
Ответить

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

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

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

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

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