Я запустил несколько моделей глубокого обучения в Керасе, сохранив history
процесса подбора модели в виде файла выбора для черчения с помощью matplotlib
.
history=model.fit_generator(...)
with open('history_'+name+'_.pickle', 'wb') as handle:
pickle.dump(history, handle, protocol=pickle.HIGHEST_PROTOCOL)
Однако при попытке открытьфайл рассола
with open (history_file_name,'rb') as f:
history=pickle.load(f)
Я получил следующую ошибку:
ValueError: Unknown layer: ScoreNormalizationLayer
Я скопировал класс ScoreNormalizationLayer
в сценарий, в котором я открываю попытку открыть засоленный history
class ScoreNormalizationLayer(Layer):
def __init__(self, **kwargs):
super(ScoreNormalizationLayer, self).__init__(**kwargs)
def build(self, input_shape):
super(ScoreNormalizationLayer, self).build(input_shape)
def call(self, x):
max_val=K.max(x,axis=2,keepdims=True) #[0 - seq num; 1 - step in seq; 2 - onehot result]
max_val=K.pow(max_val,-1)
answer=max_val*x
return (answer)
def compute_output_shape(self, input_shape):
return (input_shape)
Но я все еще получил ту же ошибку - как будто он не знает, как связать класс с маринованной историей.
Есть ли способ загрузить эти маринованные файлы? Я бы очень предпочел способ, который бы работал с существующими файлами перебора, а не один, который потребовал бы переобучения моделей и перебора данных другим способом, чтобы сэкономить все время переобучения.