使用tensorflow.keras.models的model_from_json()函数加载Json表示的tensorflow.keras模型
发布时间:2023-12-24 14:16:56
使用tensorflow.keras.models的model_from_json()函数可以加载保存为Json格式的tensorflow.keras模型。
首先,我们需要先保存模型为Json文件。下面是一个简单的例子:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 创建一个简单的Sequential模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(10,)))
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 编译并训练模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, batch_size=32)
# 保存模型为Json文件
model_json = model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
上述代码中,首先创建了一个简单的Sequential模型,包含了三个全连接层。然后编译并训练了模型。最后,将模型保存为Json文件,文件名为model.json。
接下来,我们可以使用model_from_json()函数加载这个Json格式的模型。下面是一个加载并使用Json模型的例子:
import tensorflow as tf
from tensorflow.keras.models import model_from_json
# 从Json文件中加载模型
with open("model.json", "r") as json_file:
loaded_model_json = json_file.read()
loaded_model = model_from_json(loaded_model_json)
# 编译加载的模型
loaded_model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 加载权重
loaded_model.load_weights("model.h5")
# 使用加载的模型进行预测
predictions = loaded_model.predict(x_test)
上述代码中,首先使用model_from_json()函数从Json文件中加载模型的结构。然后,编译加载的模型,并加载之前保存的权重。最后,可以使用加载的模型进行预测。
需要注意的是,将模型保存为Json文件只包含了模型的结构,而不包含模型的训练权重。如果想要保存和加载完整的模型,可以使用tf.keras.models.save_model()和tf.keras.models.load_model()函数。
