機械学習タスク用のVMインスタンスGoogle Cloudを構成する

固定コンピューターでの機械学習の難しいタスクの解決策は、恩知らずで不快なビジネスです。 自宅のラップトップでN個のニューラルネットワークのアンサンブルを作成して、ラップトップでAmazonの森探索しているとします 。 疑いの余地はありません。特に今では、これらの目的にアマゾンウェブサービス、Googleクラウドプラットフォーム、Microsoft Azureなどのクラウドサービスが豊富に揃っています。 比較的無料のグラフィックカードもあります。


画像


Google Cloud PlatformでVMをゼロから設定します。 ボーナス-1つのGmailアカウントで年間300ドルから。 行こう


  1. 仮想マシンインスタンスの作成と構成
  2. ネットワーク設定
  3. Anacondaとオプションパッケージをインストールする
  4. Jupyterノートブックを構成する
  5. ファイル転送の設定

1.仮想マシンインスタンスを作成および構成する


アカウントを作成する


最初のステップから、Googleがあなたをそのステータスを変更する権利を持たない法人として明確に認定していると誤解される可能性があります。 これは最近の標準であり、これに対処する必要があります。 次に、支払いデータを大胆に示してください。無料の制限を使い果たした場合でも、警告なしにお金が引き出されることはありません。


仮想マシンを作成し、パラメーターを選択します


ここには興味深い点がいくつかあります。 GPUはすべての地域で利用できるわけではありません。 ヨーロッパや西アジアでは見つけられず、南アメリカでは検索しなかったため、東アメリカのゾーンを選択しました。 そこで、1時間あたり5,000ドルの月額料金で少なくとも8つを設定できます。 データを平均化し、8つのプロセッサ、20ギガバイトのRAM、1つのGPUを構成します。 このすべての喜びは1時間あたり1ドルかかります。


画像


オペレーティングシステムは、あらゆる好みに合わせて選択できます。 好きなLinuxディストリビューションを選択し、[トラフィックを許可する]ボックスをオンにします。 ネットワークのセットアップとSSHはスキップします。 さらに設定します。 最後に、重要なポイントの1つは、インスタンスが削除されたときに削除ブートディスクをオフにします 。 これにより、さまざまなタスクのイメージの作成を開始するときに神経を節約できます。


画像


2.ネットワーク設定


静的IP設定


デフォルトでは、外部IPは動的です。 それを静的にして、すぐにライブがずっと簡単になるようにしましょう。 プロジェクトまたは仮想マシンにリンクしている場合(この場合のみ)-無料です。


画像


ファイアウォールを構成します。


Jupyter Notebookはメインツールであり、仮想マシンにアクセスする必要があります。 次のパラメーターを使用してルールを作成します。



画像


クリーンなVMを作成し、次のような結果になるはずです。


画像


そして最も重要なこと-完了したらVMをオフにすることを忘れないでください!


3. Anacondaとオプションパッケージをインストールする


作成されたインスタンスを起動し、SSH経由で接続し、コマンドラインを入力してAnacondaディストリビューションをインストールします。


wget http://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh bash Anaconda3-5.0.1-Linux-x86_64.sh 

インストールの最後に、必ず「yes」と入力してPATH変数を指定してください
お気に入りのパッケージを配置します。


 conda install seaborn conda install keras conda install tensorflow 

Jupyter Notebookのセットアップに進みます。


4. Jupyterノートブックのセットアップ


コマンドラインに入力します(ポート-ファイアウォール設定で指定したポート):


 echo c.NotebookApp.ip = '*' > ~/.jupyter/jupyter_notebook_config.py echo c.NotebookApp.open_browser = False> ~/.jupyter/jupyter_notebook_config.py echo c.NotebookApp.port = 8888 > ~/.jupyter/jupyter_notebook_config.py 

私たちはチェックします:


 tail -n 10 ~/.jupyter/jupyter_notebook_config.py 

以下を開始します。


 jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser & 

そして今、興味深い点が1つあります。 すべてがうまくいった場合、bashでJupiter Serverを起動すると、次のように表示されます。


 Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=[  id ] 

リンクをたどると、ブラウザで認証エラーが発生しますが、これは完全に明らかです。 これを行うには、ブラウザーの行で、上記で作成した外部静的IPを明示的に指定する必要があります。


http:// <your IP>:8888 /?token = [token id will here]

ようこそ!


画像


これで、ローカルシステムとリモートの間でファイル転送を設定するだけで済みます。 この森がなければ、アマゾンを探索することはできません。


5.ファイル転送を構成する


Linuxブートディスクがあるため、4つの方法を使用できます。


  1. gcloudコマンドラインを使用する(プライベートSSHキーが必要)
  2. ブラウザのSFTP経由。 これは、SSHキーを必要とせず、ネイティブブラウザを使用する最も簡単な方法です。 前提条件は、LinuxまたはMacのローカルシステムです。
  3. SDCコマンドラインの使用(プライベートSSHキーが必要)
  4. Windowsの幸せな所有者のためのWinSCPプログラム(プライベートSSHキーが必要)

ここで詳細を読み、最も好きな方法を選択できます。 私はラップトップにWindows 10を持っているので、選択肢は豊富ではありません。 最も簡単な方法ではなく、4番目の方法を詳細に検討しましょう。


まず、SSHキーを生成する必要があります。 PuTTYディストリビューションをダウンロードしインストールします。 それを使用して、キーを生成します。


  1. puttygen.exeを開きます。 キーを生成できるウィンドウが表示されます。
  2. キーコメントフィールドを除くすべてのデフォルトパラメータはそのままにします。 リモートシステムのユーザー名を入力します。 ほとんどの場合、これはGmailアカウントです。 重要-すべてのメールではなく、@記号までの部分のみ。 私は最初に対角線の指示を読み、30分間殺して、WinSCPがエラーを返した理由を見つけました。
  3. 秘密キーを保存します-WinSCPでローカルに使用します。
  4. 秘密鍵のテキストフィールドをコピーします(すべてのテキストを完全にコピーしてください!スクリーンショットにはその一部のみが含まれています)

画像


  1. Googleクラウドに移動し、「メタデータ-> SSHキー」でコピーしたキーを追加します。

Google Offsiteの詳細


残りはほとんどありませんが、最も楽しい部分はWinSCPファイルマネージャーを構成することです。


  1. ここからダウンロードしてください
  2. 構成を構成します。 IPはリモートシステムの静的IPであることに注意してください。 ユーザー名-PuTTYに似ています。

画像


追加設定で、秘密鍵を指定し、スクリーンショットのようにボックスをチェックします。


画像


それだけです! 私たちの戦闘システムは、重い畳み込みニューラルネットワークと膨大なデータを消化する準備ができています。


さらに、1つのインスタンスを使用することは経済的に非常に合理的ではないことに注意してください。 異なるタスクには異なるリソースが必要です。 プロセッサ、メモリ、グラフィックスの設定が異なる12個の仮想マシンを作成したり、イメージを操作したりできます。 実験し、データを愛します。


便利なリンク:


  1. 計算エンジンの機能
  2. インスタンスへのファイルの転送
  3. SSHキーを使用したインスタンスアクセスの管理


Source: https://habr.com/ru/post/J341446/


All Articles