Closed4

colabratoryとmlflowの連携をするときに使うコード集

currypurincurrypurin

mlflowで作られるファイルのダウンロードとアップロード

設定

from pathlib import Path
from google.cloud import storage


BUCKET_NAME = '<バケットの名前>'
MLRUN_DIR = Path('<mlrunが保存されるディレクトリ>')
JSON_PATH = '<GCSの設定でダウンロードしたjsonのpath>'
storage_client = storage.Client.from_service_account_json(JSON_PATH)
bucket = storage_client.bucket(BUCKET_NAME)

ダウンロード

上の記事のコードから、yamlファイルのみをダウンロードするように変更した。要動作確認

blobs = storage_client.list_blobs(BUCKET_NAME)
for blob in blobs:
    filepath = blob.name
    if filepath[-5:]=='.yaml':
        dir_ = (MLRUN_DIR / '/'.join(filepath.split("/")[1:-1]))
        dir_.mkdir(exist_ok=True, parents=True)
        blob.download_to_filename(filepath)

アップロード

gcsにないファイルをアップロードする。

files = [str(f) for f in MLRUN_DIR.glob('**/*') if str(f)[:8]!="mlruns/." and not f.is_dir()]
files_in_bucket = [f.name for f in storage_client.list_blobs(BUCKET_NAME)]

for f in files:
    if f not in files_in_bucket:
        blob = bucket.blob(f)
        blob.upload_from_filename(f)
currypurincurrypurin

gceの設定(更新中)

  • インスタンスを作成
    • Ubuntu 18.04 LTS・e2-micro
    • ファイアウォールの作成
      • 外向き
      • tcp:5000
  • ログインし、次を実行
sudo apt update
sudo apt install python3 python3-dev python3-venv python3-pip
pip3 install mlflow
gsutil -mq cp -rn gs://<バケットの名前>/mlruns ./
mlflow server --host XX.XX.XX.XX

XX.XX.XX.XXは、GCEインスタンスのインターナルIP

このスクラップは2021/11/06にクローズされました