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挫折😇)