Help us understand the problem. What is going on with this article?

Jetson TK1でchainerを使う

More than 3 years have passed since last update.

1.モニター、キーボード接続

(HDMIのみ対応)

2.電源を入れる

3.キーボードを日本語に設定

sudo dpkg-reconfigure keyboard-configuration

4.初期設定

ubuntu画面から
ログイン
インストーラの実行

cd ~/NVIDIA-INSTALLER
sudo ./installer.sh
sudo reboot

再起動すると、GUIのubuntuが使えるようになります。

5.母体環境(Ubuntu14.04)の構築

Jetson TK1の開発キットのインストールはUbuntu14.04からしかできないようなので、Virtual BoxにUbuntu14.04をインストール

Virtual boxでUSBが使えるようにextension packの導入
https://www.virtualbox.org/wiki/Downloads

画面の解像度を大きくしたい場合は以下を参照
http://mogi2fruits.net/blog/os-software/windows/2389/

6.母体UbuntuからTk1を認識させる

MacとTK1をUSBケーブルで接続、フォースリカバリボタンを押しながらリセットボタンを押します。
真っ暗な画面になればリカバリーモードで起動できています。
この状態で、Virtual boxの 設定→Port→USB から
右のUSB追加アインコンをクリックして「NVIDIA Corp.〜」の文字が出て来ればMacから認識できています。
(この時、「NVIDIA Corp.〜」を一度クリックしてチェックされた状態じゃないと、host Ubuntuからは見えていないので注意)

7.Jetpack for L4Tのダウンロード

https://developer.nvidia.com/embedded/jetpack

8.実行権限を付与

なお、日本語のディレクトリ内では実行に失敗するようですので、
英語ディレクトリを作ってファイルを移動するか実行権限を付与します。

chmod +x jetpack-${VERSION}.run

9.実行

ダウンロードしたJetpackを実行します。

途中でNetwork Layoutを聞かれますが、
「Device accessinternet via router/switch」の方で普通にいけました。
(PCのネットワーク環境に合わせる必要があります。)

Flashingが終わると、Jetsonが再起動されて、通常の画面が表示されます。

母体のほうでInput device informationの画面が表示されるので、
JetsonのIPを設定します。
(arp-scanとか使って接続しているIPを特定します。)

sudo arp-scan -I xxxx -l

よしなに進めていくとL4Tのセットアップが終わります。
(Jetsonの画面にGUIが表示されたら終了。)

10.ssh用にJetsonに固定IPをセット

/etc/network/interfacesに以下を追記

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.xxx.xxx
netmask 255.255.255.0
gateway 192.168.xxx.xxx
dns-nameservers 192.168.xxx.xxx

再読み込み

sudo /etc/init.d/networking restart

これで固定IPに出来ました。

11.gitインストール

以下から入れてください
https://git-scm.com/book/ja/v1/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

12.Python環境構築

pyenvのインストール

git clone https://github.com/yyuu/pyenv ~/.pyenv

依存ライブラリのインストール

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev
sudo apt-get install -y libreadline-dev libsqlite3-dev wget curl llvm

.bash_profileや.zshenvなどにパスを通します

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

ついでに、CUDAのパスも通しておきます。
(TX1とかだとcuda-7.0になるはず)

export PATH=/usr/local/cuda-6.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

pythonのインストール

pyenv install 2.7.12

適当なディレクトリを作り、そこに移動して仕様するpythonを設定

pyenv local 2.7.12

バージョン確認で2.7.12がでてればOK

python -V

関連ライブラリのインストール

pip install --upgrade pip
pip install numpy
sudo apt-get install libatlas-base-dev gfortran
pip install scipy
pip install matplotlib
pip install scikit-learn
pip install pillow

13.chainerインストール

sudo apt-get install python-dev python-virtualenv
pip install cython
sudo apt-get install libhdf5-dev
pip install chainer

サンプルコードをダウンロード
https://github.com/mattya/chainer-gogh

chainer-goghのディレクトリに行って、実行

python chainer-gogh.py -m nin -i input.png -s style.png -o output_dir -g 0

ninモデルは正常にうまくいくようでした、 i2vとかはなんかkilledがでるので要調査。

なお、実行時に

modprobe: FATAL: Module nvidia not found.

みたいなエラーがでるので、出したくない場合は以下を参照。
http://qiita.com/suisuina/items/e1ce1d9805f4d8772594

補足

swap状態の確認

sudo cat /proc/swaps

swap作成
(USBなどでswapする場合は、sudo fdisk -l でUSBのパスを確認して、以下/var/swap/ の部分を置き換える)

sudo mkdir /var/swap/
sudo dd if=/dev/zero of=/var/swap/swap0 bs=2M count=2048
sudo chmod 600 /var/swap/swap0

スワップファイルをスワップに割り当て

sudo mkswap /var/swap/swap0
sudo swapon /var/swap/swap0

起動時にスワップファイルとして設定されるようにする

sudo vi /etc/fstab

以下を追加
/var/swap/swap0 swap swap defaults 0 0

スワップ解除

sudo swapoff -a

ユーザーをrootに変更

sudo su -

シャットダウン

sudo shutdown -h now

再起動

sudo shutdown -r now

システムレイアウト
system_layout.jpg

i2vを使う際のエラーについてはメモリをswapしたところ、「MemoryError」になって実行されない模様。
多分32bitなので上限4Gでやられているのかと。。

参考
http://qiita.com/ktyubeshi/items/847b05b7879e2f45da54

http://developer.download.nvidia.com/embedded/jetson/TK1/docs/2_GetStart/Jeston_TK1_QuickStartGuide.pdf#nameddest=Introduction

http://qiita.com/0x0c@github/items/bc2683b00617981e4468

http://vboxmania.net/content/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%91%E3%83%83%E3%82%AF%E3%81%AE%E5%B0%8E%E5%85%A5

http://mogi2fruits.net/blog/os-software/windows/2389/

USBフォーマット
http://qiita.com/suisuina/items/690feac29bbfeec2da64
swap
http://qiita.com/scleen_x_x/items/f3fc492bcbf0f6c2896c

suisuina
Technical director,engineer
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away