У объекта 'KerasRegressor' нет атрибута 'to_json'
Я не могу сохранить обученную модель с помощью оболочки KerasRegressor...
model = KerasRegressor(build_fn=base_model, epochs=1, batch_size=10, verbose=1)
model.fit(X,Y)
model_json = model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
model.save_weights("model.h5", overwrite=True)
logger.info("Saved model to disk")
Вот мой импорт:
from keras.wrappers.scikit_learn import KerasRegressor
from keras.layers import Dense, Activation
from keras.models import Sequential
from keras.models import model_from_json
# multi gpu
import tensorflow as tf
from keras import backend as K
from keras.models import Model
from keras.layers import Input
from keras.layers.core import Lambda
from keras.layers.merge import Concatenate
И ошибка, которую я получил, заключается в следующем:
Traceback (most recent call last):
File "train-model.py", line 175, in <module>
File "train-model.py", line 114, in main
model.save_weights("model.h5", overwrite=True)
AttributeError: 'KerasRegressor' object has no attribute 'to_json'
Я строю модель с помощью функции, которая возвращает модель:
def base_model():
global N, M
model = Sequential()
model.add(Dense(512, input_dim=M, kernel_initializer='normal', activation='relu'))
model.add(Dense(128, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal', activation='linear'))
model.compile(loss='mean_squared_error', optimizer='rmsprop')
# model = to_multi_gpu(model)
return model
Есть идеи?
1 ответ
Вот код для использования:
model = KerasRegressor(build_fn=base_model, epochs=1, batch_size=10, verbose=1)
model.fit(X,Y)
def save_model_to_json(my_model):
json_model = my_model.model.to_json()
with open("model.json", "w") as json_file:
json_file.write(json_model)
my_model.model.save_weights("model.h5")
save_model_to_json(model)
#two files will be generated, model.json, which is your model and model.h5 which is #the file that has the weights of your model
\