スタジオおふとん

プログラミング系

hugoユーザー向けnostrの認証バッジをGitHub Pagesを使って取得するときの注意点

単純にnostrの認証をGitHub Pages使ってとる方法はほかの人が書いてくれていると思うので、ここではhugoユーザー向けの話。
具体的にはすでにGitHub Pagesを持っていて、hugo(gh-pages)デプロイしている人。

注意点

hugoはデプロイするときに隠しディレクトリを全部削除するので、.well-knownディレクトリも消されてしまう。

結論(対策)

staticディレクトリに.well-knownディレクトリを入れる

stackoverflow.com

npub1ndt72ks2zjjt282p99s8jjke4c5l0uyxpfx26fdass6a22dvnkvq9czxdx

補足

Snortで見て、打ち消し線とWarning markがついている場合は失敗している。
また、ほぼ即時でつくので、反映に時間がかかるとかそういうのはない。
Irisで見るとうまくいっているように見えるので紛らわしい。

ローカル環境(RTX3090)でDreamboothを動かしてメルトリリスを学習させた話

これやるためにRTX3090買ったみたいなところはある。
品質がいいとされるJoePenna版。

やり方は主に以下を参照。
補足は後述。

self-development.info

補足

追加のインストール

pip install captionizer をしないとダメだった気がする。

正則化画像

これはStableDiffusionに下記を入力して259個作成。
1girl
たぶんもっといい方法はある。

学習させるためのコマンド

ちゃんと読めばわかるけども、下記も必要に応じて変更する。

--actual_resumeは使うckpt
--reg_data_rootは正則化画像を入れたフォルダ

また、ここではgpusを1にしないとダメ、と言っているが、最新のやつだと1にすると動かないので、0にする。

その他の注意点

  • 裏でいろいろ動かしてるとメモリが足りなくなって途中でエラーになるので注意。
  • data_rootのフォルダを再帰的に見ていくっぽい。
    • さらにpngに限らずあらゆるファイルを参照するので、ツールとか入れているとエラーになる

結果

m_lilith person wearing kimono

学習データ12個、4000step RTX3090で1時間半くらい?
ちなみに800stepだと微妙な感じだった。

RTX3090と電源を買った話

AIお絵描きがすごいことになっていて、Google colabに課金するか。と思った日に改悪のニュースが出たので勢いでRTX3090を買った。
ゲーム目的だったら真RTX4080を買った方がお得だと思うが、機械学習やDeepLearningではVRAMが重要っぽいので、その点でRTX3090は4080より優れている。
じゃあ4090買えよって話だが、高いし、でかいし、消費電力ヤバいし...

グラボ

買ったのはELSAのRTX3090のバルク品
ELSAは信用しているので(高いけど)
電力が心配だったが、ELSAは公式で制御ソフトを出しているのでエコモードで使ってる分には特に問題ないはず...
普通にブラウジングなどで使ってる分には30Wくらい。stable-diffusion web-uiでGenerateすると350Wくらい。
この辺を鑑みるに、4090でも制御次第で電力は問題にならなそうな気もするな。でかさが致命的だが。

電源8x2pinで2カードスロットなので、思ったより(横幅は)コンパクトだった(重量はあるが)。
PCIEは4.0に対応してなくてもいいっぽい。
騒音は全然ない。

VGAサポートステイは付いてなかった(バルク品だから?)

電源

電源はMSI MPG A850GFを買った。
3090は(直ったとは言っているが)いろいろ相性問題があるっぽいので実績のあるやつで
reviewdays.com

差込がかなり固いので、入ってるのかこれ?とちょっと心配になる。
マニュアルがやや不親切だがなるようになる。

というか電源交換するのかなりめんどくさかった。

全然関係ないAIイラスト

スマホの左上に時刻表示はあり得ないという話

何度も蒸し返しちゃいそうなので書いておく。

出っ張りカメラにも物申したい気持ちもあるが、スペック等の都合上仕方なく...という事情もきっとあろう。
といってもユーザーからしたらそんなこと関係ないんだが。

なんで左に時刻表示はあり得ないのか

スマホのステータスバーは
「右側はステータス」「左側は通知」という思想があったんじゃないのか?
時刻は通知じゃないだろう。
過去の設計思想を否定するだけのメリットがあるなら別にいいんだけど、ノッチで右に入らなくなったから左に移した。説が濃厚で、そんな消極的理由で変えちゃダメでしょ。

EISegを入れる上で詰まったところ

写真の切り抜きにも使えると触れ込みのEISegを入れてみたんだが、まぁ詰まった詰まった。
ので、その記録を。(Windows 10)

基本的な流れ

基本的な流れはからあげ先生がまとめているので、それに従えばいい。
ただ、事前に必要なことやら、触れられていないこともあるので、そのへんを補足していく。

AIを使った自動セグメンテーションマスクツール「EISeg」のセットアップ方法

事前準備

WSL2環境でやろう

これもからあげ先生。xeyesは後述するので、まずはWSL2入れよう。
ゲーミングPCのWindows環境セットアップ

すでにWSL1環境で動かしているものをWSL2環境にするのはめんどくさそうなので、削除して入れ直した方が楽。
自分はWSL2だと思っていても実はWSL1で動いていたりするので、powershellからwsl -l -v して確認したほうが無難

pyenv環境でやろう(詰まりポイント1)

これもからあげ先生。
pyenv/pyenv-virtualenv/MiniForgeを使ったLinuxのPython環境構築

んでもってここが超重要!!!
versionは3.8未満を選ぼう(実績:3.7.12)
というのも、Ubuntu環境Python3.8のバグらしく、paddlepaddleをversion指定で入れようとすると以下のエラーが出て入れられない。

ERROR: Could not find a version that satisfies the requirement paddlepaddle==2.2.1 (from versions: none)
ERROR: No matching distribution found for paddlepaddle==2.2.1

ERROR: Could not find a version that satisfies the requirement paddlepaddle (from versions: none)_我就吃一口的BLOG-CSDN博客

xeyesを入れておこう

これを入れておかないと、eisegをやったときになんかopenできない系のエラーが出る。
まぁ、当たり前っちゃ当たり前なんだが。

xeyes設定の類(詰まりポイント2)

基本はこれ。
WSL2でROSを使う(2021/4) - Qiita

ただし、これだけだとxeyesと打っても、目玉のウィンドウが出てこなくて、タイムアウトっぽい挙動になる場合がある。
その場合は以下をやる必要がある。
WSL2のX-ServerでGUI表示する際に「export DISPLAY=:0.0」が効かない | Odaryo's blog

ここまでやれば、きっとEISegが起動するはずだ!が!

EISegのメニューが文字化けして何がなんだかわからない(詰まりポイント3)

以下をヒントにしてなんとかEnglishにしよう。なんとかなる。
たった数クリックでセグメンテーションのマスクを作る!? Edge Flowの紹介 - Qiita

あと、モデルの係数のDLと読み込みも忘れがちなので、気を付けた方がいい。
画像読めないときは大体これ。エラーメッセージは中国語のままっぽくて文字化けしててわけわからんのでおそらく。

自分のTwitterアイコンがワンクリックでこんな感じになる。すごい。 f:id:kasero:20211217235341p:plain

Clean Coderを読んだ

面白いは面白いんだが、自分の駄目さに憂鬱になるだけなので微妙。
あといろいろとちょっと古い。
「これからはGitの時代だぜ!(ドヤッ」みたいな話があって、いまさらそんな話する!?って感じたので。
(調べてみたら2012年の本なので、確かに当時としては先見の明があるが)

だいたいこの本に手を出す人は、これ以外にもコードコンプリートなりリーダブルコードなりそれなりに本読んでる(かつ、問題意識を持っていていろいろと学習済み)と思うので、得られる新しい知見はあんまないと思う。

一つだけ挙げるとしたら、見積もりの章が良かったかな。

ベイズ推定入門 モデル選択からベイズ的最適化までを読んだ

読みやすいは読みやすいんだが、結構むずい。
amazonのレビューにある「ベイズ推定が分かった気になれて全く身につかない本」というのが言い得て妙だと思う。

ちょいちょい「機械学習の時にも言ってた」という単語が出てきて、前作読んでない人からするとなんのこっちゃってなるのも気になった。
そこまで致命的ではないにしても、1作目から読んだ方が理解がスムーズになるのかも。

ちゃんと最初から最後まで会話形式で完結してるので、そこは好感持てる。
前作も読んでみたい。