ラベル deep learning の投稿を表示しています。 すべての投稿を表示
ラベル deep learning の投稿を表示しています。 すべての投稿を表示

2025年7月28日月曜日

【本を出版しました】神経科学者と学ぶ深層学習超入門

神経科学者と学ぶ深層学習超入門羊土社から出版いたしました。

本書は、基生研で働く生命系研究者である渡辺の目線から執筆した深層学習の入門書です。

数式やプログラムに慣れない方に配慮しつつ、文章では伝えきれない部分には、手描きイラストを多数掲載し、理解しやすさを心がけました。


要所要所に私なりのAIに対する考え方(そもそもAIとは何か、その歴史や未来など)を書きました。ぜひラボに一冊どうぞ。



2023年5月12日金曜日

WindowsのWSL2は深層学習にガッツリ使える????

いろいろ検討した結果、

「WindowsのWSL2は深層学習に使える」

と、結論しましたので、ここに記録。

が、諸事情によりタイトルは??を付けました。

諸事情は最後に。


まず、

Windows及びNvidia driverはとことんアップデートする。

その後、

https://chigusa-web.com/blog/wsl2-win11/

のようなサイトを参考にWSL2をインストール。

Windowsは、10でも11でもいい。

proでもhomeでもOKだけど、proが無難。

Windows Terminalも導入(デフォルトよりも見やすいし拡張性もある)。

https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701


Windows Terminalの新規タブでUbuntuを選び、

$ nvidia-smi

を走らせてGPUを確認。

(ここは驚き。なにもしてないのにGPUがつかえる!)

つまり、どういうことかというと、

Windowsで導入されている、nvidia driverが、

そのままubuntuにも反映される。

Windowsでnvidia driverをupdateすると、

Ubuntuの再起動後、自動的にubuntuにも反映される。

このUbuntuはWindowsの支配下にあることを忘れてはいけない。

cudaのバージョンを上げてはいけないときは、要注意ポイント。


anacondaをubuntuに導入。

https://www.salesanalytics.co.jp/datascience/datascience141/

とても簡単。


新しいconda環境をつくり、

conda create -n ##

自分のアプリをセットアップ。

Ubuntuでは出なかったようなエラーがいくつかでるかもしれないが、

たいていpathだったり、ちょっと足りないライブラリーだったりなので、

エラーを検索しつつ、黙々と対処。


Windowsのファイルを送り込むときは、

エクスプローラのアドレスバーに「\\wsl$」と入力する。

WSL2がバーチャルマシンであることを目視できる。

ここからhomeにアクセスできる。


UbuntuのGUIアプリは、Windowsのアプリのように動きます。

(これも驚き!)下記の最後のほう。

https://chigusa-web.com/blog/wsl2-win11/


GPUを使った深層学習の計算処理スピードは、純UBUNTUの半分くらい(同じマシンでOSを入れ替えて比較)。この速度をどう考えるか。もう一点。当たり前と言えば当たり前だが、メモリー管理はWindowsがやっているので搭載メモリーの一部だけがUbuntuに割り当てられる。せいぜい半分くらいか。シングルユーザーで使っている分には問題はないとは思うが、これをどう考えるか。

Windowsだからといって、何から何までお世話をしてくれるわけではないし、速度やメモリーに制限はあるにしても、何かと便利なバーチャルubuntu。これからはWindowsが第一選択肢にしてもいいかもしれません。

"""

上記の方法では、まだ全然完全ではないです。WSL2のところはまあいいとして、Ubuntuではなく、Windowsで深層学習をしようとすると、やはりちゃんとcuda+cuDNNをwindowsに、ちゃんと導入しないといけないです。WSL2側にもちゃんとcuda+cuDNNを導入したほうがいいでしょう。「ちゃんと」の前に動いてしまっているのでややこしい。Ubuntuの場合、人がマシンを制御するのですが、Windowsの場合、Windowsがマシンを制御しているのです。そこに横入り的にドライバーをいれるわけですが、Windowsには向いていない作業となります。その意味において、WSL2に限定して深層学習をやるのがいいのかもしれません。その範囲で使う分には、何も問題は起こらないので安心です。要はOSの使い分けです。

"""

"""

なぜタイトルに??がついているかというと、WSL2をテストしたWindowsPCは結局のところすぐにUBUNTU22.04に書き換えてしまったからです。メモリをWindowsにとられるのは我慢するとしても、計算速度の遅さが致命的です。。。あとMSの都合でハードの制限がかかったりするのも気になります。やはりWSL2はあくまでも補助的な役割のように思えます。よくよく考えると何でわざわざWindowsからUbuntuを使う必要があるのか不思議です。

"""

2023年3月9日木曜日

AI初心者Q&A

"""

よく受ける質問をまとめておきます。この記事は順次更新します。

"""

Q1:深層学習はGoogle Colabじゃダメですか?

A1:ダメじゃないです。他者との共有が簡単に出来るので、Google Colabですべてが出来れば、再現性という意味では理想的です。が、学習をガンガンやりだす、あるいは遺伝子データや動画データなどの巨大なデータを扱い出すと、無理筋になる状況が出てきますので、その時点が分岐点です。逆に、場合によってはGoogle Colabではローカルよりも大きなメモリー空間を確保できることがあります。これはGoogle Colabのメリットです。教育のプラットホームとしてもたいへん優れています。

"""

Q2:深層学習をローカルサーバーでやるか、クラウドサーバーでやるか?

A2:どちらでもいいです。が、クラウドでやるにしても一つくらいはローカルサーバーはあったほうがいいので、第一選択としてローカルサーバー、それ以上の処理はクラウドサーバーとなるでしょう。また最近ではGUI完備のAIツールもでてきているので、その場合、ローカルサーバーはあったほうが随分操作が楽になります。AWSやGoogleなどのクラウドサーバーは高額ですが、公立の研究者であれば、大学や研究所が共同利用のために用意しているスパコンは格安で使えることがあります。また逆に潤沢な研究資金があるならば、自分でニューラルネットワークをあれこれ触らなくてもノーコードのクラウドサービスもいっぱいあります。

"""

Q3:深層学習はWindowsじゃダメですか?

A3:ダメじゃないです。ただ、深層学習のコードの大半はLinux(多くの場合はUbuntu)で開発されていますので、Windowsで動かないコードが「かなり」あります(経験談)。例えば、DeepLabCutのようなメジャーコードですら一発起動とはいきません。とういわけで、Linuxが第一選択になります。あえてWindowsを第一選択にするとすれば、SONY Neural Network Consoleをメインで使いたいときです。

最近のWindowsはWSL2というバーチャル空間にUbuntuを内挿しており、これは「完全なUbuntu」を謳っておりまり、このWSL2を深層学習に利用する手があります。純粋なLinuxと比べれば、それなりのクセがありますが、Windows側からもファイルにアクセスできますし、Linux側からもWindowsのファイルにアクセスできますのでとても便利です。また、ハードウエアのセッティングはWindowsがやってくれますので超楽ちんです。ゲーミングPCを買ってきたらすぐに深層学習ができます。生粋のUbuntuよりは計算処理スピードの面で劣っておりますし(当社比で半分程度)メモリーもWindowsから恵んでいただく状態なのは大問題ですが、これもそのうち多少は改善されるでしょうし、今後、windowsは選択肢としてはありかもです。ただ私としては非推奨です。

"""

Q4:深層学習はMacじゃダメですか?

A4:ダメです。優れたコードエディターとしては使えますが、Macだけで深層学習をやることはできません。理由はNvidiaのGPUが使えないからです(いまのところ)。NvidiaのGPUで計算しても数十時間の学習はざらにありますので、それが使えない環境は、選択肢から外れます。ただ、どのみちローカルGPUも、SSH接続や、リモートデスクトップで使いますので、手元のマシンは慣れたOSがいいので、手元のインターフェースとしてMacはいい選択でしょう。

"""

Q5:GPUワークステーションは値段が高いのですが、必要でしょうか?

A5:市販のゲーミングPCで十分です。というか、速度だけで言えば、ゲーミングPCのほうが速いです(経験談)。GPUメモリーのエラーチェック機構は深層学習には必要ありません。選ぶ基準はGPUメモリーの大きさを優先させてください。次は電源の大きさ、メインメモリーの大きさ(GPUメモリーの倍くらい欲しい)、熱処理(とても大事。最悪扇風機の出番)、筐体の大きさ(できるだけ大きいほうがいい)、拡張性の高さなどです。

もうひとつ言うと、GPUワークステーションは拡張性は高く、しかも使われているパーツの耐久性は抜群なのですが、メモリーやファンなど、ワークステーション専用のパーツを使っていることが多く、これらのパーツは手に入りにくく、しかも高価なので要注意です。

ゲーミングPCのGPUで対応しきれなくなったらクラウドPCのレンタルという選択が良いと思います。現状のゲーミングPCのGPUメモリーが24Gbが最大(2023年3月現在)ですので、このメモリーを超えるような処理が必須になってきた時、クラウドPCの40Gb、80Gb(あるいはそれ以上のモンスター)の出番となります。

"""

Q6:コードエディターは何がいい?

A6:好きなものをお使いください。ちまたではVS Codeが大人気です。迷ったらこれです。みんなが使っているので安心感が違います。私は使っていません。

===

Q7:

A7:

2023年2月28日火曜日

DeepLabCutとDeepEthogramのインストール

DeepLabCutとDeepEthogramは、動物の行動解析に人気です。

http://www.mackenziemathislab.org/deeplabcut

https://elifesciences.org/articles/63377

DeepLabCutは、座標トラッキング、

DeepEthogramは、行動パターンの分類を定量化するのに役に立ちます。


いずれもpip install で一発導入できますが、互いに異なる環境に依存していますのでanacondaなどの仮想環境にインストールします。また現状(2023年2月)では、cuda12には対応しておりませんので、cuda11.xの環境にしておきます。既にcuda12環境にあるときは、

sudo apt-get -y install cuda-11-7

sudo unlink /usr/local/cuda

sudo ln -s /usr/local/cuda-11.7 /usr/local/cuda

のようにして、cuda11.xに切り替えます。


DeepLabCutは、

https://github.com/DeepLabCut/DeepLabCut

ここを参照し、

conda create --name dlc python=3.8

conda activate dlc

pip install 'deeplabcut[gui,tf]'

でインストール、

python3 -m deeplabcut

で起動です。


DeepEthogramは、

https://github.com/jbohnslav/deepethogram/blob/master/docs/installation.md

ここを参照し、

conda create --name deg python=3.7

conda activate deg

conda install -c conda-forge pyside2==5.13.2

Install pytorch

pip install deepethogram

でインストール、

python3 -m deepethogram

で起動です。




2019年3月5日火曜日

ゼロから始めるAI実験@応用物理学会(東工大)

ゼロから始めるAI実験(2019年3月11日、東工大)でのリンクまとめ

応用物理学会@東工大でチュートリアルを行いました。内容はOSすら入っていないPCから深層学習環境を作るというチャレンジでした。なかなかハードな時間でしたが、山本研@宇都宮大の皆さんのおかげでなんとか最後までたどり着きました。聴衆の皆様お疲れ様でした。チュートリアルで使ったリンクを以下にまとめておきます。不明な点ありましたら、メールでおねがいします。GMAILアカウントは、eijwatになります。

参照する本ブログ記事

1)Ubuntu16.04LTSにChainerをInstallする(GTX1080 & GTX1080Ti)
2)Windows10とUbuntu14.04.5のデュアルブート(OMEN by HP Desktop 880)
3)UbuntuにChainerをInstallする(GTX1080)

補助テキスト
1)Option Text for "AI experiment starting from scratch" IN JAPANESE

プログラムコードとデータセット
Code and Data)@FIGSHARE

Predictive Coding Deep Neural Network in Chainer (ver.TB8B)
https://doi.org/10.6084/m9.figshare.7801154

Auto_Encoder with Convolutional_LSTM / SONY NEURAL NETWORK CONSOLE
https://doi.org/10.6084/m9.figshare.7679057

Optical flow analysis
https://doi.org/10.6084/m9.figshare.5483716

Test data for prediction
https://doi.org/10.6084/m9.figshare.5483680

Training_data for prediction
https://doi.org/10.6084/m9.figshare.5483668


AI実験応用例
1)研究室のHP
2)論文のHP
3)プレスリリース



2016年9月5日月曜日

UbuntuにChainerをInstallする(GTX1080)

DEEP LEARNINGの計算をする際、NVIDIAのGTX1080の威力は凄いとの噂で、今回ラボに導入することにしました。DEEP LEARNINGだけではなく、メダカの3Dアニメーションのレンダリングにも活躍するはずです。研究費を節約するためごく普通のマザーボード(Intel H97Express)にGTX1080という構成です。電源は850W、SSDは256Gb、メモリーは16Gb確保しました。

インストールに苦労したので、ここに書き留めておきます。ネット上の沢山のサイトを参考にしました。感謝です。参考サイトはあまりにも多く、そして修正箇所多々でしたので引用は控えます。2016年の夏の時点でのインストールです。

準備
0)ディスプレイはGTX1080ではなく、ひとまずマザーボードのポートに差しておく。

OSのインストール
1)Ubuntu14.04LTS(64ビット)をイメージDVDからインストール(16.04LTSは非推奨)。
2)Ubuntuをアップデート。

Chainerが依存するライブラリーをインストール
3)以下はTerminalからのコマンド実行。
4)sudo apt-get install g++
5)sudo apt-get install python2.7
6)sudo apt-get install libhdf5-dev
7)sudo apt-get install python-dev
8)sudo apt-get install python-pip
9)sudo pip install -U setuptools
10)sudo pip install -U cython
11)sudo pip install -U filelock

以下12)~24)は最近は様変わりをしたようである。
最近(2020年春)にTitanRTX追加を導入したときは、
こちら。
<-これをやったら、25)へ進むが、cudnnもバージョンは上がっておりますぞ。

GTX1080のドライバーをインストール
12)リポジトリ登録
13)sudo add-apt-repository ppa:graphics-drivers/ppa
14)sudo apt-get update
15)sudo apt-get install nvidia-370
この時点の最新版が370でした。
sudo apt-cache search 'nvidia-[0-9]+$'
で確かめることができます。
16)おそらく途中で「BIOSのセキュアブートをオフにしますか」という指令がくるのでOKに。
17)sudo reboot
18)ここでマザーのビデオポートは使えなくなるので、ディスプレイをGTX1080に差し直す(使える場合もあります。使えるならマザーのビデオボードを使いましょう。現在本マシンはマザーのビデオボードでディスプレイを表示させていますので、GTX1080のメモリーは全部深層学習に使える状態になりました)。
18)おそらくここで「BIOSのセキュアブートをオフにしますか」という指令がくるのでOKに。次回からは聞かれない。ちなみにセキュアブートのオフ状態はOSをクリーンインストールしても生きた状態が続くので注意。
19)nvidia-smiで確認。テーブルが出てくればOK。GPU番号と稼働状態が確認できる。

CUDAのインストール
20)CUDA Toolkit8.0(RC)をnvidiaのサイトからWEBからダウンロード。ダウンロードするのは.debファイル。NVIDIAにアカウントを登録する必要がある。GTX1080の場合、現状RC版しか選択はない。
21)sudo dpkg -i ###.deb
###.debはダウンロードしたファイルのディレクトリー。Terminalにそのまま投げ込めばOK。
22)sudo apt-get update
23)sudo apt-get install cuda
24)sudo apt-get install nvidia-370(23でダウングレードされてしまうため。そのうちここは必要なくなる?)

もし修正パッチがあった場合は、
sudo dpkg -i ###.deb
でパッチをあてる。

cudnnのインストール
25)NVIDIAからcudnn5.1をダウンロード(Library for Linux)。適当なところに解凍。
26)解凍したフォルダーから所定の場所にファイルをコピー
sudo cp ###/lib* /usr/local/cuda/lib64/
sudo cp ###/cudnn.h /usr/local/cuda/include/
###は所定のディレクトリ-(Terminalにそのまま投げ込めばOK)。行った先のファイルパーミッションは644に変更(sudo chmod 644 ###)。

パスを通す
27)sudo vi ~/.bashrcで以下を一番下に付け加える。エディターviの使い方は各自勉強。
export CUDA_ROOT=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:
export CPATH=$CPATH:/usr/local/cuda/include
export CUDA_INC_DIR=/usr/local/cuda/bin:$CUDA_INC_DIR

リブートしてパスをアクティブにする
28)sudo reboot

パスを書き間違えているとターミナルからのコマンドがまったく通らなくなるので注意。もしすべてのコマンドが通らなくなったら、ターミナルから、
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
を実行してみる。

プロトコールバッファーを導入
29)sudo pip install protobuf

chainerのインストール
30)sudo pip install chainer
CUDAの位置などはchainerが自動で探し出してくれるので指定不要。

テストラン
31)sudo apt-get install git
32)sudo git clone https://github.com/pfnet/chainer.git
33)ホームのchanierフォルダーのパーミッションは丸ごと777に設定。
34)ホームのchainer/example/mnist内のtrain_mnist.pyを実行。
(CPUで計算。train_mnist.pyのとこはディレクトリーを)
python train_mnist.py
(GPUで計算)
python train_mnist.py --gpu=0
GPU番号はコマンドnvidia-smiで確かめることができる。普通は0になっている。
pythonのプログラム実行は、クセのようになっているsudo実行をやらないこと
sudo vi ~/.bashrcで通したパスはログインユーザーにのみ有効。

結果
35)CPU計算すると数分かかる1 epochが、GPU計算すると1秒ほどになりました。train_mnist.pyをデフォルト設定で実行すると(20 epoch)、CPU計算で約2時間、GPU計算で約20秒です。DEEP LEARNINGにはGPU計算が必須なのは間違いありません。今後複数マシンでの分散計算へと時代は移行していくでしょうが、それはまだ試験段階のようです。

後日追記1
2017年2月27日に新たなマシンが来たので再びセットアップ。インストールしていて気になったポイントは以下の通り。
A)15)sudo apt-get install nvidia-370はnvidia-378になっていた。
B)それに伴う変更なのかBIOSのセキュアブートをオフにしますかという指令が来なかった(セキュアブートに対応した?)
C)CUDA Toolkit8.0(RC)はCUDA Toolkit8.0になっていた。にも関わらず、24)のバージョン戻しは相変わらず必要。ひょっとしたらドライバーのインストールが省略できるのかもしれない。
D)python train_mnist.pyの実行でPlotReport関係のエラーが発生。それは以下でリポート済みの現象。
https://github.com/pfnet/chainer/pull/2277
古いtrain_mnist.pyファイルを動かしてみたら問題なく動いた。GPUもちゃんと動いた。

後日追記2
2016年9月にセットアップしたのはIntel H97ExpressのボードにCorei7 6700K/4core 4Ghzに16Gbメモリーという構成だった。メモリーは32Gbに増設はした。2017年2月にセットアップしたのはIntel H99ExpressのボードにCorei7 6800K/6core 3.4Ghzに32Gbメモリーという構成だった。使ってみると2016年版のほうが1.2倍くらい速い。同じGTX1080を積んでいても、古い方のマシンが速いという結果になった。

後日追記3
2017年6月19日に新しいハードディスクにインストール。既存のChainerプログラムを走らせるとCUPY関係のエラーがでた。知らない間にChainerがバージョン2に上がっていたので、たぶんこれが原因ということで、sudo pip install chainer==1.20.0.1で古いCHAINERをインストール。

後日追記4
別用途に買ってあったGTX1070を深層学習用に使えるようにした。既存のChainerプログラムを動かしてみたが十分実用に耐える実力を持っていた。十二分に速かった。

後日追記5
最近、深層学習専用機が売られています。自作PCのと差は、1)一連の深層学習用のフレームワーク(ライブラリーやツール)がプレインストールされているか否か、2)ディスプレイ専用のGPUが別に付属しているか否か、3)価格が高いか安いか、の3点だとおもいます。2)に関しては、ほんの若干計算のリソースに影響を与えるものと思いますが、大勢に影響なしだと思われますし、なんでしたら安価なグラフィックボード追加するのも一手です。1)のプレインストールは確かにありがたいですが、セットアップは数時間ですし、必要のないツールが入っていても無駄ですし、3)との兼ね合いかと思います。

後日追記6
Windows10とUbuntu14.04のデュアルブート(OMEN by HP Desktop 880)







【本を出版しました】神経科学者と学ぶ深層学習超入門

神経科学者と学ぶ深層学習超入門 を 羊土社 から出版いたしました。 本書は、基生研で働く生命系研究者である渡辺の目線から執筆した深層学習の入門書です。 数式やプログラムに慣れない方に配慮しつつ、文章では伝えきれない部分には、手描きイラストを多数掲載し、理解しやすさを心がけました。...