将持久的keras模型写入s3

问题描述 投票:0回答:1

我在keras中运行了一个lstm模型并将其持久化为一个json对象。我想将这个json对象直接写入s3存储桶。 Boto3教程真的没有涉及到这个,它们只展示了如何将文件写入s3。我真的需要能够将json中的keras模型直接从python(在内存中)存储到s3。有任何想法吗?

amazon-s3 keras bucket
1个回答
1
投票

您可以使用Client.put_object()直接写入S3对象,而无需保存并上载文件。这是一个具体的例子:

import boto3

# Convert your existing model to JSON
saved_model = model.to_json()

# Write JSON object to S3 as "keras-model.json"
client = boto3.client('s3')
client.put_object(Body=saved_model,
                  Bucket='BUCKET_NAME',
                  Key='keras-model.json')

然后,您可以下载keras-model.json,然后使用model_from_json将其加载到这样的Keras模型中。

from keras.models import model_from_json

# Read the downloaded JSON file
with open('keras-model.json', 'r') as model_file:
   loaded_model = model_file.read()

# Convert back to Keras model
model = model_from_json(loaded_model)

# Confirmation
model.summary()
© www.soinside.com 2019 - 2024. All rights reserved.