2018年3月5日月曜日

Intel FPGAのOpenCLのオフラインコンパイル時にrestrictに関するエラーが出る

Intel FPGAでOpenCLを動かすためにゴニョゴニョいじっていたらこんなエラーに遭遇した.
とりあえず下記のように何も考えずにrestricを前につければ出なくなる.

(意味的には,引数にとってるポインタちゃんたちが同じ領域を示したりしないよっていう制約だった気がする.)

restrictを付ける付けないで,実行速度は1msecほど変化した.

付けない場合 -> 1.83933 [ms]
付けた場合 -> 0.95214 [ms]

※余談
カーネルの実行時間の計測に,clGetEventProfilingInfo()を使ってstart, endを計測.
しかし,計測してみると18446233763891.16797[ms] とか出てて,
なんじゃこりゃとか思ってendの中身を見ると,endに何も入ってないやないかーい😇
カーネルのキューイングは非同期なので,キューイング直後にevent時間取得したい場合は, clWaitForEvents()`が必要だったよ,という余談でした.

2018年3月2日金曜日

パーセプトロンの実装

パーセプトロンのアルゴリズムを学習するためにpythonでサクッと実装.



正しいかは未保証.グラフ書いたら分かるかもねー
とりあえず,何かしら学習が進んで分類されてる感じはする.

クラスが3つ以上の奴とか,ロジスティック回帰のアルゴリズムも勉強したい.
(数学的に深く理解したいとは言っていない)

2018年3月1日木曜日

仕事ではじめる機械学習 ─ 2.2 分類 パーセプトロン

仕事ではじめる機械学習を最近買ったので学習のメモ

とりあえず,パーセプトロンのページまで読み進めた.
この図が















下のソースに対応する .
本のソースをいじって,step関数だけ外に出した.

いちいち図に書かないと理解できないのは自分のあたまがわるいから;;

バイアス項については省略されてしまっているが,詳しいアルゴリズムを追いたい場合は,本書にも書いてあるようにCourseraのMachine Lerningや「ゼロから作るDeep Learning」を読んだほうが良いかもね.(英語苦手なので,ずっと前にCoursera挫折😇)

2018年1月30日火曜日

もふもふの入力インタフェースの作成日記(その5)

前回のつづき
これで最後

Demo動画撮ったのでこれを見てもらえればと思います😊
それぞれ,左上(カメラ動画),左下(プログラム),右(キーボード入力)です



ときどき誤認識してるけど,入力インタフェースとして動作するようになりました〜

コンテンツ周りと繋げてないと,RとTしか入力できないゴミ入力インターフェイスですが💦
ゆくゆくはコンテンツ作成して使いたいなぁ

2018年1月22日月曜日

もふもふの入力インタフェースの作成日記(その4)

機械学習まわりについて書きたいと思う(すぐ忘れるので備忘録的な)

Arduinoがシリアル通信で出力したセンサの値をCSV形式で保存すると,
そのままAzure MLの機械学習のデータとして使かえるので便利.



Azure ML自体は学習コストが低くていい感じだった.
こんな感じにお絵描きすれば機械学習してくれる.



下にあるevaluate modelを右クリックして,evaluation resultsからvisualizeを選択すれば
この学習モデルの評価結果が見られる.



なでたときの誤認識が若干あるが,いい感じに認識してくれたかな?

2018年1月19日金曜日

もふもふの入力インタフェースの作成日記(その3)

前回の続き(もふもふの入力インタフェースの作成日記(その2))

結局,センサ変えたらあっさり電圧を得られてしまった。
やはりセンサ曲げ曲げして遊んでたときに壊したかな??? (バカ丸出し)

下図のようにしきい値を設定すれば,3つのステータス「触れた・触れていない・なでた」を簡単に分けられそう.


  • 触れていない 0〜62
  • 触れている 63〜150
  • なでている 3500〜


そのため,機械学習を使う必要は現段階では無くなってしまったが,
検知したい項目が今後増えるかもしれない&しきい値だけでみると精度に欠けるので
やっぱ機械学習はつかうかんじでー



触れてないとき
触れたとき

撫でたとき




2018年1月18日木曜日

もふもふの入力インタフェースの作成日記(その2)

前回の記事の続き(もふもふの入力インタフェースの作成日記(その1)

センサの取得値(生データで,FFTかけてない)はこんな感じになった.
全体的に取得値が低い問題はセンサを曲げたりして遊んでたから壊わしたかも...

この段階で,FFTかけて機械学習させてみると,触ったときと触っていないときの識別は90%くらいの精度で認識できていた(逆に,撫でた・触ったの識別があやしい).



触れてないとき

触れたとき

撫でたとき

センサ変えても同じであれば,アンプで信号増幅するか,裏紙を当てて振動を増幅させればいいかなー??

2018年1月17日水曜日

もふもふの入力インタフェースの作成日記(その1)

まえがき:
output学習すると良いと@kakakakakkuさんがこの前の勉強会でおっしゃられているのを見てひさびさにブログを書いた次第.

やってること:
社内向けのイベントで「“もふもふの入力インタフェース”があったらいいな〜」と,ふと思ってCFPを出してみたらすんなり通ったので開発することになった.
最終的にはVR内でケモノとかをなでられるようにしたいが,ひとまずはコレ(キーボード入力できるようにする)で

イメージとしては,こんな感じで



ファーに貼っつけたセンサの値をArduino microで取得して,Arduino microのHID機能を使ってPCにキーボード入力として認識させる.

実際のものはこんなの

ファー(毛皮):

左に伸びてるのがセンサ用の銅線

Arduino:




取得したデータをFFTにかけるところまではすんなりできたので,ここからどうやって,触れた・触れてない・なでたを認識・検知するか...
まぁ,どうやって識別するかは自分の中で答えが出てるけど(もう進めているけど),ココに書くのはまた今度で!