まだ、カメラサーバーのほうはうまく動作してないが、ステッピングモーターの動作は、コードを多少改善(サーバからのレスポンスも処理するように)してので、だいぶ安定してきた。
Myu
2024年5月3日金曜日
esp32でステッピングモーター操作 ~電源がポイント~
2024年5月2日木曜日
ESP32で、ステッピングモーターとカメラ同時使用 うまくいかない
MLA用のリモート操作バリコンの製作をしばらくぶりに再開してみた。が、ESP32をステッピングモーター用とカメラ用と2つ同時使用を試してみたがうまくいかない。最初は、カメラが動作しているのを確認できたが、ステッピングモータを操作し始めると、カメラがフリーズしてしまう。動画の通信がいったん途切れると復活しないのはなぜか?。もう少し、調整が必要なようです。とりあえず、動作監視なしでの、バリコンだけは操作できそうですが。
2024年4月30日火曜日
Intel、第13~14世代CPUが破損・劣化する不具合
13~14世代の不具合がニュースになっている。自分の場合は、コスパを考え、あえて最新のCPUを避けて、一昨年、第11世代にしたのだけど、何事も新製品が必ずしも確実とは言えないことはよくあることかも。製品選びも難しいものです。
2024年4月29日月曜日
動的計画法について
アルゴリズムの定石?なのかもしれませんが、今まで知らずにいました。わかりやすい説明がありました。時間がかかる探索などに有効なようです。これを、実際の場面に適用するのは、また別の難しさがありそうですが。
https://dai1741.github.io/maximum-algo-2012/docs/dynamic-programming/
2024年4月27日土曜日
ウエブ最適化ではじめる機械学習 備忘録 P19 ベイズ更新について
p(x,y)=p(x|y)p(y) = p(y|x)p(x) 2つ目の=より
p(x|y)=P(y|x)p(x)/p(y) ベイズの定理
p(Θ|D)=p(D|Θ)p(Θ)/p(D) p(D)は定数とみなされるため(Θの影響なし)
p(Θ|D) ∝ p(D|Θ)p(Θ) :p(D)証拠(evidence) or 正規化定数(nomalizing constant) p(Θ)事前分布 p(Θ|D)事後分布
書籍にはないが p(D)=Σp(D|Θi)p(Θi) も頭に入れておいたほうがいいようだ。
p(Θ|D1,D2)=p(D1,D2|Θ) p(Θ) / p(D1,D2)
=p(D1|Θ) p(D2|Θ)p(Θ)/ P(D1)P(D2)
=( p(D2|Θ)/P(D2) )* ( P(D1|Θ) /P(D1) )* p(Θ)
= ( p(D2|Θ)/P(D2) )* p(Θ|D1)
p(Θ|D1,D2,D3)=(p(D3|Θ)/P(D3){(p(D2|Θ)/P(D2))* p(Θ|D1)}
=(p(D3|Θ)/P(D3)) { p(Θ|D1,D2) }
再帰的な構造ともいえそう。つまり
p(Θ|D1,D2,D3...Di)=(p(Di|Θ)/P(Di)* p(Θ|D1,D2,D3...Di-1)
事後分布=(p(Di|Θ)/P(Di)* 事前分布
ということなんだろうと思う。
「事後分布を次の事前分布で使って。。」 という説明があちこちで 見られますが、 最初、なかなかわからなかったけれど、たぶん、こういうことなんだろうと思う。
2024年4月26日金曜日
実用Git第3版 備忘録5 リモートリポジトリ
P258 git init -b main fluff 開発(ノンベア)リポジトリの作成
git init --bare -b main fluff-bare ベアリポジトリの作成(権威ある参照箇所)
--bareオプションを指定してgit cloneを実行すると、ベアリポジトリが作られる
P261 リモートの作成 git remote .git/configにリモートがある git configで操作
P263 リポジトリのブランチの分類: リモート追跡ブランチ(リモートリポジトリの追跡が目的)、ローカル追跡ブランチ(開発ブランチとリモート追跡ブランチの変更の両方を集める)、トピックブランチ(開発ブランチ)、リモートブランチ(リモートリポジトリにある)
main ローカル追跡ブランチ
mylocal-branch トピックランチ(開発ブランチ)
remotes/origin/main リモート追跡ブランチ
2024年4月25日木曜日
実用Git第3版 備忘録4 コミットの書き換え 一時退避
P201 A-B-C-D-E-F-G のコミットDに問題があり、取り消したい場合
git revert main~3
A-B-C-D-E-F-G-D' D'はコミットDの逆(Dの効果を打ち消すようなコミット)
P202 git commit --amend コミット後ログメッセージを修正できる。
それ以外の活用方法として:
例:①誤ったコミット ②ファイルを再編集して、新たにコミット もできるが、
①speech.txt修正 git diffでインデックスと作業ディレクトリの差分チェック
②git add speech.txt ③git commit --amend 必要ならコミットメッセージ編集
git show-branch --more=5 git shouで確認
A-B-C HEAD を A-B-C' HEAD に変更したというイメージ
P205 git reset A-B-C-D A-B-C-D
--soft 〇
--mixed 〇 〇
--hard 〇 〇 〇
P214 git cherry-pick 指定したコミットFをカレントブランチに加える 以下の場合はF’
A-B-C-D-E-F-G-H dev A-B-C-D-E-F-G-H dev
| |
V-W-X-Y-Z rel_2.3 V-W-X-Y-Z-F' rel_2.3
git checkout rel_2.3 のあと git cherry-pick dev~2
P217 reset,revertとcheckoutの関係
ブランチを移るとき:git checkout またはgit switch
git resetはブランチ切り替えはしない:ブランチ名指定するとカレントブランチをリセットしてしまう git rest --hardは既知の状態を復元することが目的
P218 他の開発者があなたの李ぴ時取りをクローンしたり、一部のコミットをフェッチしたりしているときは、リポジトリ内のコミット履歴を書き換えるようなコマンドを使うべきではない。代わりにgit revertを使う。git resetやgit commit --amendを使ってはならない。
P219 rebaseについて:書籍にはないが、簡単な例で試してみる
①topicブランチで git rebase main ②mainブランチで git merge --no-ff topic
(--no-ffはfast-forwardなしで、そのほうがあとで管理しやすいとのこと)
③git log --graph で確認できる
もし、①で競合が発生したら、②エディタで競合の原因(main_file)を編集し、競合を解決 ③git add main_file git rebase --continue(P220) ④mainブランチで git merge --no-ff topic
P221 rebaseを途中でやめたいとなったら git rebase --abort
P225 git rebase -i コミット とすると、指定したコミット以降のコミットが編集可
エディタで先頭のpickをsquashにすると、直前のコミットの結合され、新しいコミットメッセージのテンプレートができる。先頭の#は無視される。
git stash -m コメント でインデックスと作業ディレクトリの内容全体を一時退避 git stash popでもどす
git stash apply + git stash drop =git stash pop
例: ①file1とfile2を作成、add、commit ②file1に追加文字 ③git stash -m 'Tinkerd file1'
④git commit --dry-run 仮コミットしてみると、コミットするものなしと表示、git stashでまったく、残っていない状態であることを示している?
⑤ file3を作成 ⑥git stashしても失敗 新しい未追跡ファイルは-uが必要 ⑦ git stash -u -m 'add new untracked file3'