MLOpsの勉強をしている中で管理モジュールのmetaflowが使える環境を構築しました
このブログは備忘録です
目次
- 目次
- この記事でわかること
- 1.Metaflowとは
- 2.実行環境
- 3.Dockerfile作成
- 4.docker imageの作成
- 5.containerの作成
- 6. sampleコードの実行
- deeplearning関連記事
- 参考
- 感想
スポンサーリンク
この記事でわかること
Jetson Xavier NXとdockerでmetaflowの実行環境構築方法
1.Metaflowとは
Netflixが公開しているワークフロー管理モジュールです
metaflow.org
2.実行環境
Jetson Xavier NX
ubuntu18.04
docker
python3.x
3.Dockerfile作成
FROM nvcr.io/nvidia/l4t-pytorch:r32.7.1-pth1.10-py3 ENV LC_ALL C.UTF-8 ENV LANG C.UTF-8 RUN pip3 install --upgrade pip RUN pip3 install --ignore-installed PyYAML RUN pip3 install metaflow ARG USERNAME=your_name ARG GROUPNAME=your_group_name ARG UID=1000 ARG GID=1000 RUN groupadd -g $GID $GROUPNAME && \ useradd -m -s /bin/bash -u $UID -g $GID $USERNAME USER $USERNAME
4.docker imageの作成
以下コマンドでdocker imageを作成します
sudo docker build . -t tag_name
5.containerの作成
以下コマンドでコンテナーを作成し、立ち上げます
sudo docker run -it --rm --runtime nvidia --network host -v path/to/metaflow/workspace/:/workspace --name metaflow tag_name
6. sampleコードの実行
以下ページのサンプルコードを実行します
from metaflow import FlowSpec, step class HelloFlow(FlowSpec): """ A flow where Metaflow prints 'Hi'. Run this flow to validate that Metaflow is installed correctly. """ @step def start(self): """ This is the 'start' step. All flows must have a step named 'start' that is the first step in the flow. """ print("HelloFlow is starting.") self.next(self.hello) @step def hello(self): """ A step for metaflow to introduce itself. """ print("Metaflow says: Hi!") self.next(self.end) @step def end(self): """ This is the 'end' step. All flows must have an 'end' step, which is the last step in the flow. """ print("HelloFlow is all done.") if __name__ == '__main__': HelloFlow()
-> 実行後に.metaflowディレクトリが生成されていればOKです
deeplearning関連記事
technoxs-stacker.hatenablog.com technoxs-stacker.hatenablog.com technoxs-stacker.hatenablog.com
参考
感想
とりあえず動かす環境ができたので、いろいろ試してみたいところです
スポンサーリンク