Giter Site home page Giter Site logo

ml-docker-boilerplate's Introduction

ml-docker-boilerplate

機械学習用のDocker環境のテンプレートを提供します。

主な特徴

このリポジトリでは特に技術的に新しいことはやってません。Dockerの特徴を利用した機械学習プロジェクトの運用スキームを提案します。

  • 資材の重複を最小限に
    • Docker Imageはベースイメージからの変更差分のみを保持するため、似たようなプロジェクトが増えても資材の重複を最小限に収められます。
  • スピーディな環境構築
    • 必要なものはベース環境にインストールされているため、ベース環境の構築時間分が短縮されます1
  • 簡単に復元可能
    • Dockerコンテナは使い捨てなので仮に壊れても簡単に初期状態に戻すことができます。

image

前提知識と必要な資材

Dockerおよびdocker composeを利用しているため、これらの技術に対する運用レベルの知識を前提としています。 また、環境構築に必要な資材は以下です。

ディレクトリ構成(コンテナ内)

  • /ml-docker/input: データセットを格納することができます。ホストマシンの./inputと同期しています。
  • /ml-docker/working: ノートブックやノートブックの出力ファイルが作成されます。ホストマシンの./workingと同期しています。

運用フロー

初回構築時

  1. このテンプレートリポジトリから新しいリポジトリを作成します
  2. 定義のカスタマイズ
    • Dockerfileを編集してベースイメージを変更します(特にこだわりがなければそのままでも可)
    • 初回でインストールする依存パッケージを./artifact/requirements.txtに追加します(試行錯誤したい場合は起動後にターミナルからインストールしても可)
  3. docker compose up --build dockerイメージをビルドしてコンテナを起動します

機械学習タスクの実行

  1. ホストマシン上で必要に応じて./inputにデータセットをダウンロードしておきます(notebookからダウンロードしても可)。
  2. ブラウザからhttp://localhost:8888にアクセスしてJupyter Labのクライアントを立ち上げます。
  3. ipython notebookを新規作成して機械学習タスクのコードを編集し、実行します。
  4. 使い終わったらdocker composeを起動しているターミナルでCtrl-Cを押してコンテナを停止します。
  5. コンテナに対して行った変更(例: pip install)をクリアしたい場合はdocker compose rmします。

関連プロジェクト

Footnotes

  1. ただし、最初にベースイメージのダウンロードの時間がかかります。

ml-docker-boilerplate's People

Contributors

bilzard avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.