로컬 및 AWS S3에서 Tensorflow 및 sklearn 파이프라인 저장/로드

이 작업을 수행하는 데 많은 어려움을 겪은 후 마침내 간단한 방법을 찾았습니다.
Tensorflow를 사용하여 sklearnjoblib 모델/파이프라인을 쓰고 읽을 수 있습니다.

로컬 쓰기/읽기




from pathlib import Path
path = Path(<local path>)

# WRITE
with path.open("wb") as f:
    joblib.dump(model, f)

# READ
with path.open("rb") as f:
    f.seek(0)
    model = joblib.load(f)

boto3 클라이언트를 사용하여 AWS S3에서 동일한 작업을 수행할 수 있습니다.

AWS S3 쓰기/읽기




import tempfile
import boto3
import joblib

s3_client = boto3.client('s3')
bucket_name = "my-bucket"
key = "model.pkl"

# WRITE
with tempfile.TemporaryFile() as fp:
    joblib.dump(model, fp)
    fp.seek(0)
    s3_client.put_object(Body=fp.read(), Bucket=bucket_name, Key=key)

# READ
with tempfile.TemporaryFile() as fp:
    s3_client.download_fileobj(Fileobj=fp, Bucket=bucket_name, Key=key)
    fp.seek(0)
    model = joblib.load(fp)

# DELETE
s3_client.delete_object(Bucket=bucket_name, Key=key)

좋은 웹페이지 즐겨찾기