FC2カウンター FPGAの部屋 2017年05月18日

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DnnWeaverをやってみる1

DnnWeaver をやってみようと思う。
DnnWeaver は、「FPGA上でディープニューラルネットワーク(DNN)を加速するための最初のオープンソースのフレームワーク」(Google 翻訳使用)だそうだ。

DnnWeaver のダウンロードページを見ると、git で clone するようなので、Windows 10 上のVirtualBox でインストールしたUbuntu 16.04 を使用することにした。

まずは、Ubuntu 16.04 のホームで git clone を行った。
git clone https://bitbucket.org/hsharma35/dnnweaver.public.git
すると、dnnweaver.public ディレクトリができた。
DnnWeaver_1_170516.png

DnnWeaver のダウンロードページでは、python 2.7 と Vivado 2016.2 が必須だが、Python 2.7.12 がインストールされているし、Vivado も 2016.4 だが、インストールされているので、これでやってみることにする。

DnnWeaver のダウンロードページでは、fpga ディレクトリに行って、「make PROTOTXT=your_prototxt_here」するようにとのことだった。
dnnweaver.public/fpga に行ってみるとMakefile があった。
DnnWeaver_2_170516.png

しかし、Makefile を見ると、すでに PROTOTXT が定義されているようなので、make だけでやってみることにする。
DnnWeaver_3_170516.png

make すると、google.protobuf.internal の enum_type_wrapper が無いと言われてしまった。
caffe_pb2.py を見ると、、google.protobuf.internal や、google.protobuf からのインポートがたくさんある。
DnnWeaver_5_170516.png

これらはどうやら、googleのprotobuf というものらしい?
DnnWeaver_6_170516.png

googleのprotobufから protobuf-python-3.3.0.tar.gz をダウンロードしてホームディレクトリに解凍した。

caffe_pb2.py のインポートするべきファイルがあった。
DnnWeaver_8_170516.png

今回、protobuf のインストールは行わないで、ファイルだけを利用してみようと思う。
ファイルを利用するためにPYTHONPATH にprotobuf-3.3.0/python を追加する。
export PYTHONPATH="/home/masaaki/protobuf-3.3.0/python:$PYTHONPATH"
そして、もう一度、make を行った。
DnnWeaver_9_170516.png

やはり、エラーで今度は six モジュールが無いとのことだった。
six モジュールは pip でインストールするということで、まずは pip をインストールする。
wget https://bootstrap.pypa.io/get-pip.py
get-pip.py が取得できた。
DnnWeaver_10_170516.png

スーパーユーザー・モードで get-pip.py を起動した。
sudo python get-pip.py
DnnWeaver_11_170516.png

six モジュールをインストールする。
sudo pipinstall six
DnnWeaver_12_170516.png

make すると、今度は、descripter_pb2.py が足りないらしい。
DnnWeaver_13_170517.png

descripter_pb2.py はどうやってゲットするのか?調べていたら、「Why do I see “cannot import name descriptor_pb2” error when using Google Protocol Buffers?」がヒット。それによると、descripter_pb2.py はコンパイルして生成するものらしい?
(注:このWebサイトには、protobuf をインストールするように書いてあったが、インストールしないでやっている。結局うまく行っていないので、インストールしてみようと思う)

続きます。
  1. 2017年05月18日 05:38 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0