gpt4 book ai didi

python - 如何在 Watson Studio 的 WML 存储库中保存 keras 模型?

转载 作者:行者123 更新时间:2023-12-01 08:47:12 27 4
gpt4 key购买 nike

我尝试通过在 Watson studio 上训练 MNIST 数据集来部署 Keras 模型,但无法保存并成功部署它。

当我尝试保存模型对象时,它说无法保存顺序对象。当我尝试将 hd5 转换为 tgz 并保存它时,它被保存,但在部署时出现错误

"{"code":"load_model_failure","message":"SavedModel file does not exist at: /opt/ibm/s..."

当我尝试部署 hd5 文件时,它说它不是压缩格式。

任何人都可以帮助我如何准确保存 keras 模型并将其部署在 watson studio 上吗?

# 

convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])

model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

model_result_path = "keras_model.h5"
model.save(model_result_path)

published_model = client.repository.store_model(model='keras_model.h5', meta_props=model_props,training_data=x_train, training_target=y_train)

最佳答案

第 1 步:将模型保存到 .h5 文件。

model_result_path = "keras_model.h5"
model.save(model_result_path)

第2步:将.h5文件压缩为tgz。

!tar -zcvf keras_model.tgz keras_model.h5

第 3 步:重要>为了部署 keras 模型,必须传递 FRAMEWORK_LIBRARIES 以及其他元属性。 store_model WML documentation .

metadata = {
client.repository.ModelMetaNames.NAME: 'Image-classifier',
client.repository.ModelMetaNames.FRAMEWORK_NAME: 'tensorflow',
client.repository.ModelMetaNames.FRAMEWORK_VERSION: '1.5',
client.repository.ModelMetaNames.FRAMEWORK_LIBRARIES:[{'name':'keras', 'version': '2.1.3'}]
}

第 4 步:存储模型。

published_model = client.repository.store_model(model= 'keras_model.tgz', meta_props=metadata, training_data= X_train,training_target= y_train)

第 5 步:部署模型。

model_id = published_model["metadata"]["guid"]

model_deployment_details = client.deployments.create(artifact_uid=model_id, name="deployment_name" )

关于python - 如何在 Watson Studio 的 WML 存储库中保存 keras 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53258236/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com