MacでAI::MXNetを動かして見た
公式ドキュメントを見ながらやってみる
http://mxnet.io/get_started/osx_setup.html#build-the-shared-library
Perlが公式ドキュメントにありテンションが上がる。
exampleを実行してみる
cd ~/mxnet/perl-package/AI-MXNet/examples/ perl mnist.pl
動いたようだ!
折角だシンボルAPIを試してみよう
use AI::MXNet qw('mx'); $aaa = mx->symbol->Variable("aaa"); $bbb = mx->symbol->Variable("bbb"); $c = $aaa + $bbb; $nd1 = mx->nd->array([1,2]); $nd2 = mx->nd->array([3,4]); $executor = $c->bind(ctx => mx->Context('cpu'), args=> [$nd1, $nd2]); $result = $executor->forward(); print $result->[0]->aspdl(); [4,6]
SYNOPSISの方のMINISTを動かしてみる
dataフォルダに以下の4ファイルを格納しておく
t10k-images.idx3-ubyte
t10k-labels.idx1-ubyte
train-images.idx3-ubyte
train-labels.idx1-ubyte
あとはsynopsisのファイルをtest.plとして格納して実行するだけで動きました。
wgetほにゃららとでていて、ネットからダウンロードしようとしているのかな??
$ perl test.pl 1..1 Can't exec "wget": No such file or directory at /Users/dokechin/perl5/lib/perl5/AI/MXNet/TestUtils.pm line 85. unzip: cannot find or open mnist.zip, mnist.zip.zip or mnist.zip.ZIP. [20:50:08] src/io/iter_mnist.cc:94: MNISTIter: load 60000 images, shuffle=1, shape=(100,1,28,28) [20:50:09] src/io/iter_mnist.cc:94: MNISTIter: load 10000 images, shuffle=1, shape=(100,1,28,28) Epoch[0] Train-accuracy=0.657233 Epoch[0] Time cost=9.599 Epoch[0] Validation-accuracy=0.944500 ok 1
SYNOPSYSのモデルを簡略化してみたけど
accuracyは変わらない。むしろ良くなっている?
### model my $data = mx->symbol->Variable('data'); ### 畳み込み my $conv1= mx->symbol->Convolution(data => $data, name => 'conv1', num_filter => 32, kernel => [3,3], stride => [2,2]); ### バッチ正規化 my $bn1 = mx->symbol->BatchNorm(data => $conv1, name => "bn1"); ### 活性化関数 my $act1 = mx->symbol->Activation(data => $bn1, name => 'relu1', act_type => "relu"); my $mp1 = mx->symbol->Pooling(data => $act1, name => 'mp1', kernel => [2,2], stride =>[2,2], pool_type=>'max'); my $fl = mx->symbol->Flatten(data => $mp1, name=>"flatten"); my $fc1 = mx->symbol->FullyConnected(data => $fl, name=>"fc1", num_hidden=>30); my $act3 = mx->symbol->Activation(data => $fc1, name=>'relu3', act_type=>"relu"); my $fc2 = mx->symbol->FullyConnected(data => $act3, name=>'fc2', num_hidden=>10); my $softmax = mx->symbol->SoftmaxOutput(data => $fc2, name => 'softmax');
吉祥寺pm #11に参加しました
感想を雑につらつらと。
19:30〜19:40(10分) オープニングトーク(magnolia)
回を重ねるごとに大盛況。そろそろ3周年なんですね。やっぱ
雰囲気が良いので、また行きたくなるんですよね。
19:40〜19:55(15分) Talk1: Using Scala.js with the JavaScript ecosystem(しんぺい a.k.a. 猫型蓄音機)
レイヤを綺麗に書いて、依存関係をいい感じにするというお話でした。
適材適所に使い分けるというのはためになりました。
19:55〜20:10(15分) Talk2: MySQLステータスモニタリング 〜それ、Perlで(も)できるよ〜(yoku0825)
SQLでモニタリングすることができるというお話でした。新しい方と古い方で
方式が違うなど、とても丁寧に解説されておりました。
20:10〜20:25(15分) Talk3: yoku0825とsoudai1025のキャッキャウフフです(soudai1025)
MySQL,Postgres。適材適所。レプリケーションが弱いとか。ためになります。
トーク面白いですなぁ。とにかく、中国地方のDB勉強会がすごいんですね。
20:25〜20:40(15分) Talk4: タイトル未定(Songmu)
1つにまとめることでバイナリのサイズが小さくなるというお話。なるほどしならなったです。
Perlも出てきました!
20:45〜20:50(5分) LT1: 検索について(sakura)
広告を排除したらどんな世界になるのか見てみたいです。
それにしても、検索サイトを1から作ってすごいですね。
続けて入ればいいことがあるという言葉が突き刺さりました。私も頑張ろう。
20:50〜20:55(5分) LT2: タイトル未定(ytnobody)
運用関連は専門に任せてというところ。私もアプリ大好き人間なので
開発していたいです。これからも開発に注力していこうという気になってきました。
あれもこれもやるには人生短すぎる。
20:55〜21:00(5分) LT3: タイトル未定(otukutun)
UI周りのライブラリはカスタマイズが効かなくて大変というお話でした。
私は、Androidでアルバムサイトを作ろうとしてほったらかしにしております。
全部自分で実装してしまうなんて、すごいなぁ。
21:00〜21:05(5分) LT4: タイトル未定(mackee_w)
三島PM#1が出てきて、嬉しかったです。自分の作ったツールがギークたちの手でさらに
洗練かして、社内でも使われてきているというお話でした。さすがです。
21:05〜21:10(5分) LT5: fields は CLI ツールに使っても ええんやで(hkoba)
fieldsは使ったことないけれど、頭の片隅に入れておこう。
綴りミスを防ぐことができるみたいです。
Arduinoで音源方向に振り向く雲台を作れないか?
2chマイクにこだわって、いろいろと試しているのですが、
ネタをばらすと音源方向に振り向く雲台を作れないかと試行錯誤しているからです。
高速なサンプリングレートで扱うには、それなりのCPUパワーが必要という点で
Arduinoでは少し厳しいですが。Genuino101等の高速処理に向いたものならば
なんとかこなせそうな気がします。1アナログリードに27マイクロsec程度の
性能が出ます。
マイクとマイクの距離は近すぎると、到達時間の差があまり出ないので
10cmは欲しいところ。
マイクはこちらから購入。200円程度です。Rail to Railのオペアンプと言うらしいです。
VCCで与えた電圧の半分を中央に波形を出してくれると言う単純明快扱いやすいです。
左右2つのコンデンサマイクで取得した信号をオペアンプで増幅して
アナログ入力。1000個、値を拾って。
左右の波形の位相差を計算して距離に換算します。
計算方法は単純で左右の値を掛け合わせて和を求めて。最大になるところが
位相が一致したところとしています。
アルゴリズムはこちらを参照しました。
できたのは、こんな感じのプログラムです。
github.com
Genuino101が壊れた!
Uno R3という互換ボードを購入してアナログリードの性能を調べたら
116マイクロsecもかかってしまった。これは実用に耐えられなさそうだ。
でも、大丈夫以下の記事を発見。これをしたら、なんと20マイクロ秒まで速度アップしました。
ameblo.jp
MAX4466+コンデンサマイクのモジュールをためしてみる
マイクからの波形で遊ぼうと思って、色々とためしております。
昨日MAX4466のマイクモジュールが届きましたのでためしてみます。
こちら無音の時。
こちら声を出した時。
3.3Vで使用しています。
ゲインは可変抵抗で帰られますが、これで目一杯です。
もう少し感度が欲しい気もしますね。
左右、だいたい同じような波形が出ています。
マイクを外して
秋月で買ったコンデンサマイクを取り付けたくなってしまいますが。
そこは壊してしまいそうなので、とりあえず我慢。
こちらが、購入したモジュールです。航空便で届くので結構早めに届きました。1週間程度。
rover.ebay.com
AndroidタブレットのUSB端子をマグネテック化(WSKEN)使用感は最高です!
サーボブラケットの使い方を調べよう
サーボモータ単独だと、面白くないので
雲台みたいな感じで使いたい。
回転部分の金具をサーボホーンというらしい。
サーボブラケットで雲台として使う方法を調べよう
U字型のブラケットとL字型のブラケットがあるらしい
手軽に使えそうなのはL字型かなー。
# サーボホーンとブラケット
直径14mmでM3のねじ4本で止めるタイプ
rover.ebay.com