- 投稿日:2019-04-15T22:04:03+09:00
Windows10にてGPU版OpenPoseを動かしてみた
windows環境にて、OpenPoseのオープンソース実行環境を作る機会があったのでメモします.
[環境]
・Windows10
・GTX1060(6GB)
・CUDA10.0
・cuDNN1.Visualstudio2017インストール
①下記URLより、"Visual studio community 2017"をダウンロード. ※Microsoftアカウントが必要です
「https://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=o~msft~vscom~older-downloads」
②上記にてダウンロードしたものを実行し、インストール.
"C++によるデスクトップ開発"にチェックを入れ、"WindowsSDK"と"C++"が項目に含まれている確認する.
2.CUDAインストール
①"https://developer.nvidia.com/cuda-10.0-download-archive"から対応のものをダウンロード.
②上記にてダウンロードじたものを実行し、インストール.
③再起動.3.cuDNNインストール
①"https://developer.nvidia.com/cudnn"からCUDA10.0に対応したものをダウンロードする.
②展開し、解凍のされた"CUDA"フォルダ以下の"bin"など全てを"CUDAのインストール先"
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0"にコピーする.
③コマンドプロンプトにて"nvcc -V"が以下のように表示されればOK.cuDNNのインストール確認nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018 Cuda compilation tools, release 10.0, V10.0.130ここまでで最低限の準備完了です.
次からは、OpenPoseの動作について.1.OpenPoseの準備
①"https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases"から
GPUバージョン(openpose-1.4.0-win64-gpu-binaries_recommended.zip)をダウンロード.
②上記のファイルを展開し、"openpose-1.4.0-win64-gpu-binaries\models\getModels"を実行し、
学習済モデルを取得する.2.Sampleの実行
Sampleの実行①OpenPose展開フォルダにて、コマンドプロンプトを開き以下のコマンドを実行. ".\bin\OpenPoseDemo.exe --video examples\media\video.avi"3.カメラにてOpenPose
下記のようにオプション付けないことです.カメラでの実行".\bin\OpenPoseDemo.exe"LinuxもWindowsもGPU環境作る手順は同じですので、片方の方法を理解してしまえばOK.
私は、WindowsよりもLinux環境のほうが使いやすいので、記事としてはLinuxがメインになります.
- 投稿日:2019-04-15T18:25:49+09:00
NVIDIAさんのSPADEを使ってみた。
- 投稿日:2019-04-15T09:21:13+09:00
Chainerが作った「ディープラーニング入門」が凄すぎる!
機械学習を勉強していくには、いくつかの課題があります。
- 統計や線形代数といった数学の知識
- Pythonを使うのでプログラミングの知識
- 画像処理、音声処理といった知識
- 学習を行う為のコンピューティングリソースの準備
それらを学ぶ上でいろんな書籍やネットの情報が転がっているのですが、Chainerが出した「ディープラーニング入門」が凄すぎて、もうこれでいいんじゃないか感が凄いです。
https://tutorials.chainer.org/ja/tutorial.html
最低限必要な知識がまとめて学べる
このチュートリアルでは、機械学習を行っていく上で必要な最低限の数学とプログラミングを学んでいくことができます。
- Pythonの文法から条件式、クラスや継承といったところまであります。もちろんNumPyやCuPyもしっかりあります。
- 数学については、微分、合成関数、偏微分といった所もしっかり記述されています。これらを順番にこなすことで、機械学習を行ううえで、「なぜ必要なのか」をしっかり学んでいけます。
- 確率変数、確率分布
ここまでしっかりと揃っているうえに、あちこちサイトを行き来しなくてもよい という所が非常に素晴らしいです。
ブラウザで学べる
機械学習の知識がついてきたところで、さぁやってみようと思った時に問題になるのが環境の構築です。数年前に比べたら比較的簡単に環境を構築できるようになってきましたが、フレームワークの進化も非常に早く、ネットの情報がすでに古いといった事も多いです。
このチュートリアルは、ブラウザ上で学ぶことができます。それも、資料の中に登場するコードがそのままブラウザ上で実行できる という所です。
資料はすべてノートブック形式になっていますので、解説とコードが同時に実行できるようになっています。なので、ただ読むだけの資料ではなく、実際にコードを記述してその結果も学ぶことができます。 これは非常にありがたいです。Google Colaboratoryとして実行できる!!(超重要)
はい。これです。これがこのチュートリアル最大のポイントです。先ほど資料はノートブック形式になっていると書きましたが、これがGoogle Colaboratoryで実行できるようになっている事です。
資料の上部にある「Open in Colab」ボタンを押すとすぐに開くことができます。
基本的にはJupyter Notebookと同じですが、Google Colaboratoryでは GPUリソースが利用できます。しかも無料です。
なので処理の重い畳み込みニューラルネットワークも比較的短時間で体験することができます。GPUが絡むと途端に環境構築が大変になるので、ぜひ活用していきましょう。まとめ
公式にもありますが、 このサイトだけで機械学習・ディープラーニングに入門できる事を目指して作られています。 は伊達ではなく、基本的な知識はすべて網羅されているので、今から始めたい人はぜひ見てみてください。
- 投稿日:2019-04-15T08:09:19+09:00
ボーナスでたら、ゼロからLinuxのGPU機械学習環境を作る ~Ubuntu18.04のインストールからPyTorch実行まで全手順~
概要
- 特に難しいことを考えることなくGPUを使った機械学習(主にディープラーニング向け)環境をPCに構築します
- Linux OSのインストール、各種ドライバ・ソフトウェア類のインストールなど全ての手順をスキップ無しで1つずつハンズオンで確認します
- セットアップしたLinuxに、人気急上昇中の機械学習ライブラリPyTorchを導入します
対象
- そろそろ機械学習はじめようと思ってるけど、とっかかりがつかめない人
- ボーナス出たら「GPU買うぞ~」と思っている人
- Linux,Python,Anaconda,PyTorch,機械学習のいずれかまたは全ての初心者
環境
- OSは Ubuntu 18.04 LTS を導入します
- Pythonは version 3.7 を導入します
- 機械学習フレームワークは PyTorch 1.0 を導入します
- GPUは NVIDIA GEFORCE RTX 2080 Ti を使いますが、CUDAコア搭載の他のNVIDIA GPUでも同等です
ゴール
- OSインストールから、PyTorchでCUDAをつかったテンソル演算を確認するところまでやります。
本編
Linuxをインストールするマシンを用意する
手元で機械学習(主にディープラーニング用途)を実行するために以下のようなスペックのPC(自作)を準備した。
CPU Core i7-9700K マザボ Z390チップセット メモリ 16GB HDD 1TB GPU NVIDIA Geforce RTX 2080 Ti 11GB 搭載 電源 ATX 800W Linuxインストール用のUSBメモリ(Live USB)を作成する
まず、Linuxをインストールするために、インストール用のUSBメモリ(Live USB)を作成するところから開始する。
USBメモリへの書き込みにはWindows PCを利用した例で説明するが、書き込みアプリはWindow版、Mac版、Linux版があり、どれも同じ手順でインストール用USBメモリを作成可能。Ubuntu 18.04のディスクイメージは 2GB程度なので、USBメモリは8GBもあれば十分。
Ubuntu 18.04のディスクイメージのダウンロード
Linuxのディストリビューションには、Ubuntu 18.04 LTSを使用する。
https://www.ubuntu.com にアクセスして、Downloadタブを開いて、Ubuntu Desktop > 18.04 LTS をクリックすると、Ubuntuのディスクイメージ(ISO)がダウンロードされる。
ここでは、ubuntu-18.04.2-desktop-amd64.isoがダウンロードされたので、これのディスクイメージをUSBメモリに書き込む。
USBメモリにLinuxのディスクイメージを焼く
(1)USBメモリ書き込み用のアプリ UNetbootin を以下からダウンロードし、インストールする。
(2)UNetbootinを起動
UNetbootinを起動する
ディスクイメージを選択して、さきほどダウンロードしたISOディスクイメージ ubuntu-18.04.2-desktop-amd64.iso を指定する。
タイプは USBドライブで、ドライブ名は USBメモリが挿入されたドライブを指定する。
OKを押すと、USBメモリの作成が開始する。
あとは、しばらく待っていれば Ubuntu 18.04 LTS をインストールすることができるUSBメモリが完成する
USBメモリからUbuntu 18.04 をインストールしていく
さて、今つくったUSBメモリをPCに挿入して、電源オン
USBメモリから起動したいので、PC起動時にBIOS設定画面を出す。
BIOS設定画面の起動方法は、たいていの場合 PC起動時に F2またはDELを押せばOK。
BIOS設定画面のブートメニュー(Boot Menu)にて、USBメモリでブートを選択すればUSBメモリからブートする。USBメモリからブートできると、以下のようにUNetbootin のブート画面がでるのでInstall Ubuntuを選択する
インストールが開始される
言語設定画面では、日本語を選択
画面に従いすすめていく
今回はまっさらにした状態のPCにLinuxをインストールする
(既存のWindows PCにインストールする場合は削除するか、残すかオプションが出る)ロケールは Tokyo で。(日本語選んでおくとデフォルトでそうなる)
次にユーザー名とコンピューター名を入れ 続ける を押す
あとはインストールが自動で進むので待つ
しばらくするとインストール終了ダイアログがでるので、今すぐ再起動する
再起動すると、このとおり、Ubuntu 18.04 LTSを無事インストール終了!
ただしまだ最適なグラフィックドライバをインストールしていないので、画面描画で残像が出たり、画面解像度などは最適化されていない。
Ubuntu 18.04 をセットアップする
OSは無事インストールできたので、これから基本的な設定や、必要になるソフトウェア群をインストールしていく。
Ubuntuで日本語入力を使えるようにする
Ubuntu 18.04のインストール直後だと、半角/全角ボタンを押しても、日本語IMEが使えず日本語入力ができない場合があるので、画面の右上の▼をクリックして、開いたメニューで 日本語(Mozc)入力を有効にする。
downloadsディレクトリ(フォルダ)を作る
これからら、いくつかのドライバーやパッケージをネットからダウンロードするので、ダウンロードしたファイルの保存先ディレクトリを作成する
左のアプリメニューからファイル
クリックしてファイルマネージャを起動して、開いたユーザーディレクトリ以下にダウンロード用ディレクトリ(フォルダ)を作成する。右クリックでフォルダ作成を選択し、フォルダ名を downloads として作成する。
実は日本語環境でインストールすると、デフォルトでダウンロードというディレクトリ(フォルダ)ができるが、端末(ターミナル)から扱うとき日本語のディレクトリ名(フォルダ名)だとコマンドラインと相性がわるいため、ここでdownloadディレクトリ(フォルダ)を作っておいた。
Chrome(ブラウザ)をインストールする
さきほどのインストール方法でインストールしたUbuntu 18.04 LTSデスクトップディストリビューションでは、Firefoxがデフォルトで入っているが、ブラウザにはChromeを使いたいので、そちらを導入する
以下からGoogle Chrome(Linux版)をダウンロードする
https://www.google.com/intl/ja_ALL/chrome/
64ビット .debパッケージを選択する
こんな画面がでるのでOKする
インストールをクリック
ChromeのインストールはGUIから行ったが、これでインストール完了。
左下のメニューボタンを押してアプリ一覧を表示すれば、ちゃんとGoogle Chromeがインストールされている。ここで、左側のアプリメニューにあるアプリアイコン上で右クリックして、常時表示が不要なものをお気に入りから削除して、スッキリさせた。
規定のブラウザにするにチェック。
■Chromeの規定のダウンロードフォルダの変更
Chromeが起動したら、右上のボタンでメニューを開き、設定を選択する
検索窓に 保存先 と入力すると、ダウンロードしたファイルの保存先の設定画面がでるので、変更を押すと
フォルダ選択画面がでるので、さきほど作成した downloads を選択してフォルダを選択するをクリックする。
NVIDIA グラフィックドライバーのインストール
さて、いままではインストールした素の状態で作業してきたが、解像度が最大になっていなかったり場合によっては描画に残像がでるなどの動作が適正ではなかった。
ここでは、GPUにあったグラフィックドライバーをインストールする。
本稿のPCにはGeForce RTX 2080 Tiを導入しているので、以下サイトからドライバーをダウンロードする。
https://www.nvidia.com/download/driverResults.aspx/138279/en-us
上のリンクをChromeで開いて、GeForce RTX 2080 Tiに対応したドライバをダウンロードする。
■ 端末(ターミナル)をつかってドライバーをインストールする
ここからはコマンドラインでインストールしていく。
1.グラフィックドライバのダウンロードディレクトリに行く
$ cd downloads/2.dirでディレクトリの中身を確認
$ dir NVIDIA-Linux-x86_64-410.57.run3.chmodでパーミッションを変更して、ダウンロードしたドライバインストーラーを実行できるようにする
$ chmod +x NVIDIA-Linux-x86_64-410.57.run4.sudoをつかってルート権限でドライバのインストールを実行する
$ sudo ./NVIDIA-Linux-x86_64-410.57.run --no-x-check■ NVIDIAグラフィックドライバーのインストール・ステップをみていく。
The distribution-provided pre-install script failed! Are you sure you want to continue?と出るが気にせず Continue installation を選択してエンター。
次の画面ではこのように出る。
ERROR: Unable to find the development tool`cc` in your path; please make sure that you have the package 'gcc' installed. If gcc is installed on your system, then please check that `cc` is in your PATH.
「ccにパスが通って無いみたいだけど、gccはインストールしておいてね!」というエラー。
OKを押すとインストーラーが終了する。
gccがインストールされていないようなので、gccをインストールすることにする。
■ gcc をインストールする
端末(ターミナル)から以下のコマンドで gcc を含むビルドツール(makeなども)をインストールする
sudo apt install build-essentialインストール準備がはじまり、続行しますか? [Y\n] 確認があるので Yでインストールが実行される。
■ 再度、NVIDIAグラフィックドライバのインストールを試みる
さきほどはgccが無くて止まってしまったので、gccをインストールした。
ここで、再度、NVIDIAグラフィックドライバのインストールを試みる。
$ sudo ./NVIDIA-Linux-x86_64-410.57.run --no-x-checkThe distribution-provided pre-install script failed! Are you sure you want to continue?と出るが気にせず Continue installation を選択してエンター。
今度はちゃんとビルドできている模様。
WARNING:
Unable to find a suitable destination to install 32-bit
compatibility libraries. Your system may not be set up for 32-bit
compatibility. 32-bit compatibility files will not be installed; if
you wish to install them, re-run the installation and set a valid
directory with the --compat32-libdir option.こんな警告メッセージがでて、「32-bit互換ライブラリをインストールしたいなら再実行してね」と言っている。今回の用途では32-bit互換ライブラリは不要なので、気にせずOKを選択。
An incomplete installation of libglvnd was found. All of the essential
libglvnd libraries are present, but one or more optional components are
missing. Do you want to install a full copy of libglvnd? This will overwrite
any existing libglvnd libraries.libglvndの上書き確認があるので Install and overw を選択で上書きでOK。
次は、この画面
Would you like to run the nvidia-xconfig utility to automatically update
your X configuration file so that the NVIDIA X driver will be used when you
restart X? Any pre-existing X configuration file will be backed up.「Xの設定を更新するか?」聞いている、今はNoでOK。
nvidia-xconfigコマンドを使えばいつでも実行可能。Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64
(version: 410.57) is now complete. Please update your XF86Config or
/usr/share/doc/NVIDIA_GLX-1.0/README.txt for details.これで、NVIDIAグラフィックドライバのインストールは無事成功。OKを押して終了
rebootコマンドで再起動する
rebootすると、
画面がFullHDになった。NVIDIAグラフィックドライバが有効になって、ちゃんと適正な解像度がセットされた。
■ GPUの設定画面を開く
nvidia-settingsコマンドでGPUの設定画面を開くことができるnvidia-settingsこれにて、GPUは正しくインストールされた
Anacondaを導入する
ここでは、Pythonの実行環境をサクっと構築してくれるAnacondaを導入する
■ Anaconda3 をダウンロードする
Chromeを開いて、以下を開く
https://www.anaconda.com/distribution/#download-section上部のタブでLinuxを選び、Python 3.7 versionを選んで、64-Bit(x86) Installer をダウンロードする。
すると、Anaconda3-2019.03-Linux-x86_64.sh というファイルがダウンロードされた
■ Anaconda3をインストールする
ダウンロードしたAnaconda3を
端末(ターミナル)を開いて、以下コマンドを入力して、Anaconda3をインストールするcd downloads/ bash Anaconda3-2019.03-Linux-x86_64.sh
次にAnacondaの保存先を聞かれる
Anaconda3 will now be installed into this location: /home/ml/anaconda3 - Press ENTER to confirm the locationとなっているので、エンターを押して保存先を確定する
インストールが終わると、
Do you with the installer to initialize Anaconda3 by running conda init? [yes|no]「conda initをしてAnaconda3を初期化するかい?」と聞いてくるので
yesと入力する。
これで、Anaconda3のインストールが完了!
また、Pythonのインストールも同時に完了!■ Pythonが動作するかを確認する
Anacondaのインストールが終わったら、いったん、端末(ターミナル)を閉じて、再度 端末(ターミナル)を開く。
端末(ターミナル)を開き直したら以下のコマンドで、インストールされたPythonを確認してみる
- Pythonのバージョン
$ python --version Python 3.7.3
- Pythonのインストール先
$ which python /home/ml/anaconda3/bin/python■ condaコマンドとは
ところで、プロンプトの先頭に以下のように(base)がつくようになった
(base) ml@ml:~$ python --version Python 3.7.3 (base) ml@ml:~$ which python /home/ml/anaconda3/bin/python (base) ml@ml:~$これはcondaが環境名を表示している。
そもそもcondaとは、パッケージ管理や環境の管理してくれるための便利なツールで、Anacondaのインストールと同時にcondaもインストールされている。
さきほどの(base)はcondaのインストール時にデフォルトで付与されたものだが、ジャマなら非表示にすることもできる。
以下のコマンドを実行する
(base)表記を消すconda config --set changeps1 False
ここまでで、Anaconda3のインストールは終了。
この段階で、Python 3.7やcondaコマンドもインストールされており、Pythonの基本的な開発ができるようになっている。PyTorchの導入
さて、ようやくお膳立てができたので、いよいよ機械学習ライブラリ PyTorch を導入する
■ PyTorchのインストール
以下にあるPyTorchのインストールガイドを開く
https://pytorch.org/get-started/locally/
このサイトでは、自分の環境に応じたPyTorchのインストール方法を教えてくれる
ここでは、いままでセットアップしてきた環境にあわせて以下を選択した
PyTorch Build Stable(1.0) Your OS Linux Package Conda Language Python 3.7 CUDA 10.0 すると、Run this Command:の欄に親切にconda install pytorch torchvision cudatoolkit=10.0 -c pytorch と表示される。
これを端末(ターミナル)にそのまま入力すれば PyTorchがインストールできる。とっても簡単。
conda install pytorch torchvision cudatoolkit=10.0 -c pytorchThe following NEW packages will be INSTALLED:と聞かれるので y を入力して、パッケージのダウンロード開始
これにて、NVIDIA GPU対応のPyTorchのインストールが完了!
【補足】
他のライブラリだと CUDA Toolkit 10.0 や cudnn 7.4 といった、GPU処理を行うためのソフトウェアを別途インストールする必要があるのが一般的だが、PyTorchの場合は、上記 condaコマンドで CUDA Toolkit 10.0 もあわせてインストールしておいてくれるし、cudnnはPyTorchに組み込まれた状態のものを、さきほどのcondaコマンドでインストールしているため、別途インストールする必要は無い。以下が具体的なインストール先となる
■ PyTorch(v.1.0.1 CUDA対応版)のインストール先ディレクトリ
~/anaconda3/pkgs/pytorch-1.0.1-py3.7_cuda10.0.130_cudnn7.4.2_2■ PyTorchが使うCUDA Toolkit(v.10.0)のインストール先ディレクトリ
~/anaconda3/pkgs/cudatoolkit-10.0.130-0Pythonのプログラムを書くため、Jupyter Notebookを起動する
では、本稿の最後に、ちゃんとGPUが有効な状態でPyTorchが使えるか試す。
端末(ターミナル)を開いて、PyTorchプロジェクト用のディレクトリを作る
mkdir pytorch_pj cd pytorch_pjディレクトリに移動したら
jupyter notebookでJupyter Notebook(ジュピターノートブック)を起動する。
Jupyter Notebook はPythonのコード作成と実行、実行結果表示、自由コメント(Markdown)編集の3つの機能をそなえたツールで、気軽に利用できるので、Jupyter Notebook上で試す。
jupyter notebookというコマンドを入力するだけでブラウザが立ち上がり、すぐに使える状態になる。
こんな風に、起動する。
これから、Python用のノートブックを作成する。
右上あたりにある New を押して、ポップアップしたメニューからPython3を選択
すると、もう1枚タブが開いて、以下のようなノートブック画面が表示される
PyTorchをGPUで動作させる
さて、ノートブックが起動したところで、早速コードを書く
PyTorchでCUDAが有効か確認するコードfrom __future__ import print_function import torch if torch.cuda.is_available(): # CUDAが有効なら TRUE device = torch.device("cuda") # CUDA(クーダ)デバイスを取得 x = torch.empty(5, 3) # CPU上にテンソルを作る y = torch.ones_like(x, device=device) # GPU上に直接テンソルを作る print(y) x = x.to(device) # CPU上に作ったテンソルをCUDAデバイスに転送 print(x) print("CUDA version:"+torch.version.cuda) #PyTorchが使っているCUDA toolkitバージョンを表示する↓のようにコードをノートブックに記述する
すると、コードが実行され結果が得られる
このとおり、実行結果が表示された
tensor([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], device='cuda:0') tensor([[0.0000e+00, 0.0000e+00, 0.0000e+00], [0.0000e+00, 0.0000e+00, 0.0000e+00], [0.0000e+00, 0.0000e+00, 1.4013e-45], [0.0000e+00, 1.4013e-45, 0.0000e+00], [1.4013e-45, 0.0000e+00, 0.0000e+00]], device='cuda:0') cudatoolkit-10.0.130device='cuda:0'となっている部分で、実際にこのテンソルがCUDAデバイス(GPU)に作られたことが確認できた!
■ GPUの負荷を計測する
nvidia-smiコマンドでGPUの使用率等を取得することができるので、本格的な学習時には以下コマンドでモニタすると良い。
nvidia-smi -lGPUで機械学習できる環境が完成
これにて、Ubuntu 18.04 LTS上に、GPUを活用した機械学習を行う最低限の環境が完成した!
あとは、PyTorchを使って、ディープラーニングをさせるのもよし、他のライブラリを追加するのもよし。
まとめ
- ゼロからLinuxのGPU機械学習環境を構築しました
- PyTorchを動かすのに必要となる各種ソフトウェアを導入し、最終的にGPUをつかって演算をするところまで試すことができました
- 環境はできたので、GPUの性能確認の為にこのあたりから試してみるのも面白いかも知れません。
おまけ(拡張のヒント)
- 今回は環境を固定して愚直にインストールしましたが、ポータビリティをあげるためにDockerを使いたい、という場合は、しっかりとNVIDIA GPU対応を考慮したNVIDIA Docker2が活用できそうです。