Невозможно загрузить модель keras с пользовательским ограничением - PullRequest
1 голос
/ 27 марта 2019

Я создал пользовательское ограничение для своего keras GRU-NN и смог обучить свою сеть с ним.Ограничение выглядит следующим образом:

import keras.backend as K
from keras.constraints import Constraint

class WeightClip(Constraint):
def __init__(self, mn=0.1, mx=1.0):
    self.mn = mn
    self.mx = mx

def __call__(self, p):
    return K.clip(p, self.mn, self.mx)

def get_config(self):
    return {'name': self.__class__.__name__,
            'minimum': self.mn, 'maximum': self.mx}

После сохранения модели и попытки перезагрузить ее с помощью

model = keras.models.load_model(modelFile, custom_objects={'WeightClip': WeightClip})

я получил это сообщение об ошибке:

TypeError: __init__() got an unexpected keyword argument 'name'

Сама модель выглядит следующим образом:

    model = Sequential()
    model.add(GRU(
        params.recurrent_units, activation='linear',
        input_shape=(pr.n_features, pr.feature_size), dropout=params.dropout, name='net',
        kernel_constraint=WeightClip(0.1, 1.0),
        bias_constraint=WeightClip(0.1, 1.0)
    ))
    model.add(Dense(1, activation='sigmoid', kernel_constraint=WeightClip(0.1, 1.0),
                    bias_constraint=WeightClip(0.1, 1.0)))

Обращаясь к другим подобным вопросам по stackoverflow, которые в большинстве случаев связаны с пользовательскими метриками, я пробовал различные комбинации параметра custom_objects, но, похоже, ничего не помогло.Спасибо за любую помощь!

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