Docker は素晴らしいです。開発と配布に Docker を使用する人が増えています。 Docker には、即時の環境設定、プラットフォームに依存しないアプリ、既成のソリューション、優れたバージョン管理、メンテナンスの簡素化など、多くの利点があります。 しかし、データ サイエンスやディープラーニングに関しては、Docker を使用する上でいくつかの障害があります。ホストとコンテナ間でポートとファイルを共有し、不要な run.sh スクリプトを作成し、CUDA バージョンと GPU 共有に対処するには、すべての Docker フラグを覚えておく必要があります。次のようなエラーを見たことがあるなら、その苦痛はわかるでしょう。
私たちの目標 この記事の目的は、当社で頻繁に使用する Docker ユーティリティと GPU 対応のボイラープレートのセットを紹介することです。 したがって、次の結果は発生しません。
代わりに、次の結果になります。
いいね! 私たちが実際に達成したいこと:
以下は、すべてのディープラーニングのユーザーに強くお勧めするツールのリストです。 1. CUDA まず、CUDA ツールキットが必要です。これは、自分でモデルをトレーニングする予定がある場合に必須です。将来のアップデート時に依存関係が混乱することがないように、deb ではなく runfile インストーラー タイプを使用することをお勧めします。 (オプション) 動作したかどうかを確認する方法:
2. ドッカー 膨大な数のライブラリでコンピューターを汚染したくないし、バージョンの問題も心配です。同様に、自分でビルドしてインストールする必要もありません。通常、ソフトウェアはすでに作成され、イメージにパッケージ化されています。 Docker のインストールは簡単です:
3. エヌビディアドッカー Docker を使用する場合は、NVIDIA のこのユーティリティ (https://github.com/NVIDIA/nvidia-docker) が必要です。これにより、Docker コンテナー内で GPU を使用する手順が非常に簡素化されます。 インストールは非常に簡単です:
今では、NVIDIA デバイスを毎回共有する代わりに、次のことが可能になります。
nvidia-docker コマンドを使用できます:
同様に、ドライバー バージョンの不一致についても心配する必要はありません。NVIDIA の Docker プラグインがそれを処理します。 4. Dockerコンポーズ docker 実行構成をファイルに保存し、アプリケーションの状態をより簡単に管理できる非常に便利なユーティリティです。複数の Docker コンテナを組み合わせるように設計されていますが、サービスが 1 つしかない場合でも、docker compose は非常に便利です。安定版はここにあります (https://github.com/docker/compose/releases):
5. Nvidia Docker Compose 残念ながら、Docker Compose は Nvidia Docker の存在を認識しません。幸いなことに、回避策があります。nvidia-docker ドライバーを使用して構成を生成できる小さな Python スクリプトがあります。 pip 経由で Nvidia Docker Compose をインストールします。
これで、docker-compose の代わりに nvidia-docker-compose コマンドを使用できるようになりました。 代替案 nvidia-docker-compose を使用しない場合は、ボリューム ドライバーを手動で渡すことができます。そのためには、docker-compose.yml に次のオプションを追加するだけです。
6. Bash エイリアス しかし、nvidia-docker-compose では 21 文字の入力が必要で、これは多すぎます。
幸いなことに、bash エイリアスを使用できます。お気に入りのエディターで ~/.bashrc (場合によっては ~/.bash_profile) を開き、次の行を入力します。
source ~/.bashrc を実行して設定を更新します。 TensorFlow Servingを開始する これで、上記のすべてのツールを活用する準備が整いました。たとえば、Tensorflow GPU 対応の Docker コンテナを実行します。 プロジェクト ディレクトリに次の内容の docker-compose.yml ファイルを作成します。
これで、1 つのコマンドで TensorFlow Jupiter を起動できるようになりました。
doc は nvidia-docker-compose のエイリアスです。正しいボリューム ドライバーを使用して変更された構成ファイル nvidia-docker-compose.yml を生成し、docker-compose を実行します。 同じコマンドを使用してサービスを管理できます。
結論は しかし、それだけの価値があるのでしょうか? 以下に長所と短所を見てみましょう。 アドバンテージ
欠点
生産準備はできていますか? はい。映画推奨アプリ Movix では、GPU アクセラレーション TensorFlow ネットワークを使用して、ユーザー入力に基づいてリアルタイムで映画の選択を計算します。 プロキシ API 用の Rancher クラスターには、Nvidia Titan X を搭載したコンピューターが 3 台あります。構成は通常の docker-compose.yml ファイルに保存されるため、アプリケーションを新しいサーバーにデプロイしたり、開発環境をセットアップしたりすることが容易になります。これまでのところ、そのパフォーマンスは優れています。 機械学習の未来に備えましょう! オリジナル: https://hackernoon.com/docker-compose-gpu-tensorflow-%EF%B8%8F-a0e2011d36 [この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です] この著者の他の記事を読むにはここをクリックしてください |
<<: 60年間の浮き沈みを経て、人工知能はどれだけの偏見や誤った判断を経験するのでしょうか?
>>: プライベートコレクション、オープンソースのトップディープラーニングプロジェクト9つ
1. 背景検索シナリオでは、ユーザーの検索クエリと思い出された記事のタイトルとの関連性は、ユーザーの...
ますます激化する競争の中で、どのように効率的に生産するかと問われれば、答えは自動化の助けを借りること...
[51CTO.com クイック翻訳] 過去1年間、人工知能と自動化技術が人間の雇用と労働市場に与え...
Statistaの最近のレポートによると、「AI市場の世界的価値は2025年までに年間890億ドル...
2月28日、Adweekは、Googleがいくつかの出版社と、ニュースコンテンツを作成するための新...
[[432777]]中国新聞社、北京、11月1日(記者:孫子発)中国国家知識産権局の沈長宇局長は1...
優れた AI システムは、企業に大きな競争上の優位性をもたらすことができます。理論的には、AI と機...
要点一般的な機械学習/ディープラーニング プロジェクトでは、データ準備が分析パイプライン全体の 60...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
[51CTO.com クイック翻訳] 最近、ロボットスタートアップのMarbleがYelpと提携し...