クーの自由研究

マスターのかえるのクーは、弟子達の召喚術により新たな依り代を得てⅡ世として復活しました。

Phthonの自作ライブラリや勝手パッケージの配置

lib\site-packagesには入れず、個別に管理しましょう

「まだ確定していない情報を嬉々としてつたえようとするな」@無惨

かえるのクーの助手の「井戸中 聖」(いとなか あきら)です。ごめんなさい。

f:id:AssistantOfKoo:20201206123705j:plain (全然わからない説明の例)

pythonの実行時のライブラリパスのお話です

matplitlib のウイジェットをQT デザイナーで扱う方法を以前(あるいは最近しつこく)投稿しました。画面デザインが完了し、実際に動作させるときにはpythonのライブラリ検索パスに拡張フラグインを入れる必要があります。

f:id:AssistantOfKoo:20201206123137j:plain  f:id:AssistantOfKoo:20201207223041p:plain (駅からの通り道でよく行った図書館)

 site-packagesフォルダはpipやcondaで頻繁に書き換わるので、自分で作成したライブラリやpip/condaで扱っていないソースは別の場所に置きましょう。(ローカルにおいておくと、次のプロジェクト作成で「あれ?」となりますし、バージョン管理しているはずなのに、結構散らかります。)

わたくしは、PYTHONPATHに個別に入れています。

(というか、入れるのを忘れていたので、今後そうします)

pythonがどのようにライブラリ/ソースを検索するのかは、

import sys
import pprint

pprint.pprint(sys.path)

で確認できます。表示順番が検索順番になるので、とても大切です。

わたくしの環境では、

['C:\Users\Mariel\PycharmProjects\AutoEncoder-master20201206',
'C:\Users\Mariel\PycharmProjects\AutoEncoder-master20201206',
'C:\intel\intelpython3\Lib\site-packages',
'C:\ProgramData\Anaconda3\python37.zip',
'C:\ProgramData\Anaconda3\DLLs',
'C:\ProgramData\Anaconda3\lib',
'C:\ProgramData\Anaconda3',
'C:\ProgramData\Anaconda3\lib\site-packages',
'C:\ProgramData\Anaconda3\lib\site-packages\win32',
'C:\ProgramData\Anaconda3\lib\site-packages\win32\lib',
'C:\ProgramData\Anaconda3\lib\site-packages\Pythonwin']

でした。そうです。matplotlibのQT用widget拡張にパスをいれていなかったので、実行時に

    form_main, base_main = uic.loadUiType(uifile_main)
File "C:\ProgramData\Anaconda3\lib\site-packages\PyQt5\uic\__init__.py", line 201, in loadUiType
exec(code_string.getvalue(), ui_globals)
File "<string>", line 75, in <module>
ModuleNotFoundError: No module named 'matplotlibwidget'

と出てしまいました。

f:id:AssistantOfKoo:20201206121746p:plain

登録するとちゃんと起動しました。(;C:\install\qtpluginを追加)

['C:\Users\Mariel\PycharmProjects\AutoEncoder-master20201206',
'C:\Users\Mariel\PycharmProjects\AutoEncoder-master20201206',
'C:\intel\intelpython3\Lib\site-packages',
'C:\install\qtplugin',
'C:\ProgramData\Anaconda3\python37.zip',
...
f:id:AssistantOfKoo:20201206121503p:plain

matplotlibの初期化や動作設定はこれから実装です。

「みちくさ」して肝心のグラフ部を実装していなかったので実装します。ほぼ、コピペですが。

 (追記)実装しました。間引きGIFなのでカクカクですが、こんな感じです。*1

f:id:AssistantOfKoo:20201206232432g:plain

画面にはありませんが、中盤以降バイオス(b:青プロット)が動きすぎているので、中盤以降のバイオスの学習係数をもう少し下げる必要があることがわかりました。(初盤のバイオス学習はピーキーなくらいが好みです)当研究所では(実験の結果により)バイオスの学習とウエイトWの学習とを分けて扱っています。

例としては学習の立ち上がりがはやすぎるので、グラフの「ありがたみ」はないのですが、「うまくいっていない程度」を視覚化できるのはとってもよいです。

 

というわけで、パスは忘れずに通しましょう。という反省でした。

アニメ好きですが、きわめて小心者なので

恥ずかしながらまだ「鬼滅の刃」を(1話しか)見ていません。「進撃の巨人」もまだ途中までです。

わたくし的には精神的に安定しているときにしか見れないジャンルのひとつなのです。

なお、最も精神力が必要なのは、ジャンルはまったく違いますが、「新世界より」とか「灰羽連盟」とかです。このあたりをまた改めて見るのは、3~5年くらい先になりそうです。(価値観を再構築するぐらいの危険度があるアニメです。決してお勧めしません。残虐なシーンはありませんが、センシティブな子はトラウマになるかもしれないので、大人になるまで見てはいけません。)

なお「灰羽」はかえるのクーが巧妙にこのブログにコンセプトを織り込んでいると分析しています。クウという登場人物がいたり、井戸が象徴的に使われたり、灰羽→hibernationのゴロ合わせだったり。ラッカが(無意識に)巣立ったクウの部屋のカエルの置物を倒してしまうのは、何かの暗示なのでしょうか。(倒しているのは自分のなまえ「らっか」と書かれたほうのかえるです。「くう」は右側のかえるです)でもこの物語のマクガフィン(もしくはアンチデーゼ?)はかえるではなく黒い羽根を持つカラス)なのでしょうけど。

うーん。かえるのクーのほうは来年も戻る気ないのかなぁ。

f:id:AssistantOfKoo:20201208001822p:plain

 

*1:左がコスト(エラー)で低いほど元と同じです。右上は各ノードWの範囲(赤)とバイアスb(青)のプロットです。横軸がノード、縦軸がノード値の範囲です。右下はノードの活性化状況です。サンプル数値(一例)処理によるノード活性化を表しています。横軸がノードで縦軸が活性化です。どちらかというと、スパース性の確認に使っています。ピーキーなチューニングをすると発散するので、その兆候ないか、あるいは学習が遅すぎないかをリアルタイムモニタリングするのは、構成構築において結構大切です。「いけるんじゃない?」発想はだいたいが「いけない」なので、早めにそれを検知することはとっても有用です。