Python 如何保存包装在sklearn中的keras神经网络?
如何保存sklearn模型中的神经网络?。我曾尝试将其保存为类似于keras中的h5文件,但得到了以下错误“Pipeline对象没有属性保存”。还尝试保存在类似sklearn的pickle文件中,但获取以下错误无法pickle“\u thread.RLock”对象Python 如何保存包装在sklearn中的keras神经网络?,python,keras,scikit-learn,Python,Keras,Scikit Learn,如何保存sklearn模型中的神经网络?。我曾尝试将其保存为类似于keras中的h5文件,但得到了以下错误“Pipeline对象没有属性保存”。还尝试保存在类似sklearn的pickle文件中,但获取以下错误无法pickle“\u thread.RLock”对象 #Relevant Code def create_model(): model = Sequential() model.add(Dense(40, input_shape=input_shape,activatio
#Relevant Code
def create_model():
model = Sequential()
model.add(Dense(40, input_shape=input_shape,activation="relu"))
model.add(BatchNormalization())
model.add(Dense(40,activation="relu"))
model.add(BatchNormalization())
model.add(Dense(40,activation="relu"))
model.add(Dense(1))
model.compile(loss='mean_squared_error',optimizer='Adam')
return model
Estimator = KerasRegressor(build_fn=create_model,epochs=60,callbacks=[Early_stopping],validation_data=(X_test,y_test))
model = make_pipeline(StandardScaler(), Estimator)
input_shape=X1.shape[1:]
model.fit(X_train,y_train)
with open('Neural_network.pickle','wb') as file:
pickle.dump(model,file)
基于
变量(模型)
的输出:
{'steps':[('standardscaler',standardscaler()),('kerasregressor',)],'memory':无,'verbose':假}
您可以使用从管道访问KerasRegressor
对象
kreg = model.steps['kerasregressor']
基于经过训练的Keras模型,回归器上的模型属性应为:
model = kreg.model
(我建议将管道对象重命名为pipeline
,以避免混淆。)基于vars(model)
的输出:
{'steps':[('standardscaler',standardscaler()),('kerasregressor',)],'memory':无,'verbose':假}
您可以使用从管道访问KerasRegressor
对象
kreg = model.steps['kerasregressor']
基于经过训练的Keras模型,回归器上的模型属性应为:
model = kreg.model
(我建议将管道对象重命名为pipeline
,以避免混淆。)您查看过管道内部吗<代码>打印(vars(model))
?是的,它只打印管道中使用的步骤以及对象所在的位置。{'steps':[('standardscaler',standardscaler()),('kerasreservator',)],'memory':None,'verbose':False}这正好解决了您的问题。您是否窥视了管道内部<代码>打印(vars(model))
?是的,它只打印管道中使用的步骤以及对象所在的位置。{'steps':[('standardscaler',standardscaler(),('kerasregressor',)],'memory':None,'verbose':False}这正好解决了您的问题。