SlideShare uma empresa Scribd logo
1 de 12
2019/01/10
サイエンスパーク
安原彬裕
機械学習の環境構築でハマったこと
1
自己紹介
SP1901-E04
2
• ID: ak1x(connpass, GitHub共通, SNSはやってません)
• 名前: 安原彬裕
• 画像処理を主にやっています。
• 他はWebアプリ・Windowsスタンドアロンアプリ・IoTなど
ネットでよくある記事
SP1901-E04
$ git clone https://github.com/pjreddie/darknet
$ cd darknet
$ make
$ wget http://pjreddie.com/media/files/yolo.weights
$ ./darknet detect cfg/yolov2.cfg yolo.weights data/dog.jpg
できた。以上。
・・・こんなにすんなりいくわけがない
3
今回の環境
SP1901-E04
Linux(Debian 9.6 x86_64)
Python 2.7, 3.5
GCC
CUDA
OpenCV
Yolo v3
4
Linuxをネットワークインストールしようとしてハマる
SP1901-E04
問題:
ネットワークインストール用OSイメージ(.iso)をUSBメモリに入れてUSBメモリから起
↓
無線LANのドライバが検出できず、インストールが中途半端に止まる
解決策:
通常のCD(DVD)インストール用OSイメージでとりあえずインストール、無線LANのド
バはあとから入れる
ドライバは/lib/firmware/以下に入れておけばいい。
firmwareディレクトリがなかったら作る←ここポイント
5
gitが入っていない、そしてgitのインストールもできない
SP1901-E04
問題:
$ git clone https://github.com/pjreddie/darknet
gitが入っていない←ここまではわかる
# apt install git
依存しているパッケージrsync、liberror-perlが入ってないよエラー
解決策:
rsyncはapt install rsyncでインストールできた
liberror-perlはapt install liberror-perlでnot found
仕方ないのでdebパッケージをDLして# dpkg -i liberror-perl_0.17027-1_all.debで
その後# apt install git
6
GPUドライバインストール(1)
SP1901-E04
NvidiaからDLしてインストール
# sh NVIDIA-Linux-x86_64-410.78.run
→Xが起動してたらだめだよって言われる
↓
Ctrl + Alt + F1でGUI→CUIに切り替えて
/etc/init.d/lightdm stop
さらに
# sh NVIDIA-Linux-x86_64-410.78.run
↓
nouveau kernel driverが入ってるからインストールには失敗したけど、modprobeで無効化し
ようか?って言われるのでYESを選択する
→少し進むがgccがないよと言われたりLinuxのソースコードがないとだめだよって言われ
る
7
GPUドライバインストール(2)
SP1901-E04
# apt install gcc
# apt install linux-headers-$(uname -r)
# apt install linux-source-$(uname -r)
今度こそ・・
# sh NVIDIA-Linux-x86_64-410.78.run
→インストールできた
8
CUDAインストール
SP1901-E04
ドライバインストール同様にCtrl + Alt + F1でGUI→CUIに切り替え、/etc/init.d/lightdm stop
続いて
# su cuda_10.0.130_140.48_linux.run
→g++がないからだめだよエラー
# apt install g++
続いて
# su cuda_10.0.130_140.48_linux.run
→なんとインストールできた
何回か質問されるので適当にYesって答えとく
9
YOLOのビルド(1)
SP1901-E04
Yolo公式に従って以下を実行
$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
$ make
→cudnn.hがないよエラーがでる
nvidiaからlibcudnn, libcudnn-devをダウンロード
(libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb, libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb)
インストール(nvidiaに登録しないとならないので注意)
# dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
# dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
cudnn.hの存在を確認できたので $ make
→7以降のバージョンのgccはサポートしてないんだよエラー
10
YOLOのビルド(2)
SP1901-E04
# apt install gcc-6
# apt install g++-6
これだけではgccのバージョンが変わらないためシンボリックリンクを張り替える
# cd /usr/bin
# mv gcc /tmp
# ln -s gcc-6 gcc
# mv g++ /tmp
# ln -s g++-6 g++
再度ビルド
$ make
→成功
パスを通しとく(.bashrcにも書いとく)
$ export PATH=$PATH:/usr/local/cuda-10.0/bin
11
darknet実行
SP1901-E04
$ cd darknet
$ ./darknet
→libcudart.soが見つからないよエラー
パスを通す(.bashrcにも書いとく)
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
$ ./darknet
usage: ./darknet <function>
できた
12

Mais conteúdo relacionado

Semelhante a 機械学習の環境構築でハマったこと

Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical ComputingTakahiro KUREBAYASHI
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみたkinneko
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMFAtomu Hidaka
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介Hiromu Yakura
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶKenichiro MATOHARA
 
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐBug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐNetwalker lab kapper
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Atomu Hidaka
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : ReloadedMasataka Kondo
 
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果Tsuyoshi Torii
 
AOSPをミラーしてみた
AOSPをミラーしてみたAOSPをミラーしてみた
AOSPをミラーしてみたkinneko
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokeeyut148atgmaildotcom
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築Kei Nakazawa
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析Akinori Abe
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話Kouhei Maeda
 
AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)shimadah
 
いろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたいろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたTone Blue
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
SONiCインストールしてみた
SONiCインストールしてみたSONiCインストールしてみた
SONiCインストールしてみたwataken44
 

Semelhante a 機械学習の環境構築でハマったこと (20)

Android & Nui & Physical Computing
Android & Nui & Physical ComputingAndroid & Nui & Physical Computing
Android & Nui & Physical Computing
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみた
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
 
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐBug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
 
Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1Hardware control by .NET Core 3.1
Hardware control by .NET Core 3.1
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : Reloaded
 
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
 
AOSPをミラーしてみた
AOSPをミラーしてみたAOSPをミラーしてみた
AOSPをミラーしてみた
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 
AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)
 
いろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたいろんなコミュニティに参加してみた
いろんなコミュニティに参加してみた
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
SONiCインストールしてみた
SONiCインストールしてみたSONiCインストールしてみた
SONiCインストールしてみた
 

Mais de Study Group by SciencePark Corp.

WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)Study Group by SciencePark Corp.
 
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件Study Group by SciencePark Corp.
 
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能Study Group by SciencePark Corp.
 
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみたローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみたStudy Group by SciencePark Corp.
 
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法Study Group by SciencePark Corp.
 
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)Study Group by SciencePark Corp.
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでStudy Group by SciencePark Corp.
 

Mais de Study Group by SciencePark Corp. (20)

WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
 
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですかYOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
 
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
 
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
 
ドライバへのETWの埋め込み
ドライバへのETWの埋め込みドライバへのETWの埋め込み
ドライバへのETWの埋め込み
 
JTAGを使ってみよう
JTAGを使ってみようJTAGを使ってみよう
JTAGを使ってみよう
 
JTAG入門
JTAG入門JTAG入門
JTAG入門
 
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
 
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみたローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
 
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
 
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
 
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
 
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみたVisual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
 
MacOS10.15への対応について
MacOS10.15への対応についてMacOS10.15への対応について
MacOS10.15への対応について
 
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
 
リモートでの勉強会参加方法
リモートでの勉強会参加方法リモートでの勉強会参加方法
リモートでの勉強会参加方法
 
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2) 初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
 
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
 
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
 

機械学習の環境構築でハマったこと