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