あまりに記事がすくない(書けない)ので
そうだ、この手でいこう!かえるのクーの助手の「井戸中 聖」でございます。
先月は、試行錯誤ばかりでちゃんとした記事が書けませんでした。(アニメ見すぎであるにせよ)
今月も「いろいろやってみましたが、難しいものですね!」でおわりそうなので、失敗の過程もより細かくネタにすることにします。なにせ、ネットを探してもこんな馬鹿を真剣にやっている方は(ほぼ)皆無なので。。。Koo's Mad Labo の使命感(おばかサイエンス[≠似非科学]の普及!)に燃えるのです。
というわけで
実験モニタソフトをネタにする
いろいろな組み合わせ確認の結果、わたくしの現在の実験のモニタとしては以下のことが「よさげ」とわかっています。(何回も書いてますが、ご容赦)
・実験ソフトとモニタソフトは別プロセス(別スレッドではなく!)として独立させる。:pythonを使うので、マルチスレッドは苦手。
・実験ソフトからはキュー出力ではなく、メモリ共有(種類は問わず)で情報を渡す。
・モニタへの疎なタイミング伝達が必要な場合は、tcp/ipでの通知がやりやすい。(密なtcp/ipタイミング通知は、モニタソフトの処理性能を超えると、いろいろ厄介でした)
・メモリでの情報渡しは厳密な高速化を要求されないのであれば、オブジェクトをシリアライズして渡した方が汎用性があり、とても楽。(どんなオブジェクトでも結果としてそのまま渡せる。双方どんどん変更できる。)
・グラフはリアルタイム性重視であればpyqtgraphがとても良い。(音響オシロスコープを作れるくらいの応答性能はある)それほどのリアルタイム性が必要なければ、matplotlibでOK。
・画面をつくるのはQTDesignerが超便利。
実験モニタリングソフトは春くらいに構想しましたが、いまだ一部分しかできていません。(先月一部動作動画をアップしました)
まずは、このモニタリングソフトを「必要最小限」まで完成させます。
コスト(エラー)グラフ部の作成
エンコード・デコード処理結果と元の図形の差異をグラフ化したものです。
自己符号化器はこのコスト(エラー=元との差異)を小さくするように学習するので、毎回計算している値です。コストにはいろいろな計算方法がありますが、このグラフでは単純な最小二乗法で計算しています。エントロピーの計算もしていますが、厳密なものではなく、最小二乗法よりも学習の進度をわかりやすく表せるように多少手を加えています。(クーが作った部分でソースを見ても「謎」な部分です)
このグラフは順次プロットなので、「ゆっくり」書いていけばいいので、matplotlibで十分です。順次プロットのやり方は調査済です。
ではコーディングにとりかかります。(細切れ時間にやるので、おそらく2~3日かと)
ただいまコーディング中
QTで画面にmatplotlibオブジェクトを張り付ける方法をわすれたので、助手ページに手順を書きました。もう忘れても大丈夫です!!