在一个项目中同时使用了python和R语言,但如果想要在python中训练模型并保存为h5文件,那么如何在R中打开它并用它来预测数据呢?
答案是R语言keras包(原来R也有keras)
下面是过程示例
install.packages("keras")
install_keras()
随便训练一个模型
def create_model(units_list=[5,5,5],lr=0.01,init='normal'):
# units_list is a list of number of units in each hidden layer
model = Sequential()
units=units_list[0]
model.add(Dense(units=units,activation="relu",input_dim=5,kernel_initializer=init))
for units in units_list:
model.add(Dense(units=units,activation="relu",kernel_initializer=init))
model.add(Dense(units=1,kernel_initializer=init))
model.compile(loss='mean_squared_error',optimizer = optimizers.Adam(lr=lr), metrics=[])
return model
from livelossplot import PlotLossesKeras
model = KerasRegressor(build_fn=create_model,epochs=5000,batch_size=16,verbose=0,lr=0.001)
plotlosses = PlotLossesKeras()
h=model.fit(X_train, Y_train,validation_data=(X_test, Y_test),callbacks=[plotlosses])
保存模型
model.model.save("models/BPNN.h5")
加载模型:
library(keras)
model<-load_model_hdf5("models/BPNN.h5")
预测:
pred<-model %>%predict(as.matrix(data))
解决!
Python可以调用R
R可以调用python训练出的h5模型
我们更自由地使用python和R!