プログラミング
Pythonは言語仕様としてデフォルト引数を再利用する。これは mutable オブジェクトとの組み合わせで容易にバグを引き起こす。 言語仕様 関数定義時にデフォルト引数が評価されて確定し(=評価は一度きり)、これが関数呼び出し時に渡される。 The default va…
OmegaConf は構造化コンフィグの入れ子(Nesting structured configs)をサポートしている(docs - Nesting structured configs)。 その際、default_factory の利用が推奨されている。 @dataclass class Group: name: str = MISSING admin: User = field(de…
PyTorchとTensorFlowで再現性の違いが出ることはよくある。 その要因の一つが初期化手法の違い。 なのでドキュメントとコードを当たって初期化手法をチェックした。 PyTorch vs TensorFlow Linear: kaiming_uniform(a=√5) == ~U[±√1/fan_in] vs glorot_unifo…
PyTorchでnn.LSTMCellをONNXにエクスポートすると、LSTM operatorになるでもなく、LSTMCell operatorになるでもなく、プリミティブ opsの集まりとして出力される。 gist.github.com まず、ONNXにはRecurrentCellに相当するoperatorがない(参考: wikipedia/O…
命名規則: saveされる変数はexposedとして扱う モデル状態は state_dict() で保存され、後日loadされる。 state_dict()はパラメータ(例: nn.Module) とバッファを変数名に基づいて保存し、load時は変数名に基づいて状態がrestoreされる。 なのでモジュール…
幅のある入力をスライドさせながら処理していくとき、左右端をどうするかという問題がでてくる。 端を何かしらの値で埋める(入力をちょっと大きくしておく)処理をパディングという。 特にPyTorchにおけるパディング実装のまとめ。 F.pad torch.nn.function…
引数で初期化され内部状態を持つインスタンスがあったとき、それをいかに保存し、のちに復元するか. 問題整理 class A: def __init__(self, arg1): parts = SubA(arg1) self.var = 1 def add(self): self.var += 5 def save(self): pass def from_snapshot(s…
Write a feature, Copy it for another usage, then Merge them for 3rd common use case. 機能を書き、次の利用時はコピペし、3度目の共通用途になったらマージしろ. 3rd merge principleは早すぎる共通化を戒めるプラクティス. 同じ動作をするコードが2度…
Lockファイルは依存性のバージョンを厳密に指定することで動作を保証することを目的とする. 依存性の中にはハードウェアとの兼ね合いで(動作は同じ)ハードウェア固有バージョンを要求する場合がある. この2つは噛み合わせが悪い. Lockで厳密に縛るとハード…
gslm/speech2unit: Speech-to-連続unit-to-離散unit. モデルと学習済みパラメータが配布. /pretrained: Speech-to-連続unitの部分 /cpc_feature_reader.py: PCP Speech-to-unitモデルの色々 CPCEncoder: [Conv-CN-ReLU]x5だけ. 超シンプル. CPCAR: ただのLST…
sys.float_info.min (とても小さい値) を代入しても何故か0.になる。logが死ぬ。 データ型を疎かにしてたらハマった. 再現コード float_array = numpy.array([1., 2.,], dtype=np.float32) tiny = sys.float_info.min print(float_array) # [1. 2.] float_ar…
Windowsにおいて、ユーザーモードとカーネルモード間でデータ転送を行う手法. Buffered I/O: user-mode Buffer, kernel-mode nonpaged Buffer, then an I/O manager transfers contents between buffers Direct I/O: user-mode Buffer, kernel-mode MDL whic…
オーディオの入出力・ルーティング・処理を担うWinRT高レベルAPIs1. 入出力のマイク・ファイル指定、合成音の入力化などが可能. UnityやWebにあるノードベースオーディオとだいたい同じ機能を提供. 音響効果の差し込みも可能. Audio graphs - UWP applicatio…
もはやパソコンいらずでReactアプリを作成・公開できる時代. 必要なもの Webブラウザ GitHubアカウント steps レポジトリ生成: 好きな名前のGitHubレポジトリを.gitignore=Nodeで生成 (10秒) 編集モード: ↓Codeボタン -> Open with Codespaces (待ち1分) 素…
A: 逐次処理と中間結果利用を、関心に基づいて分離できる Async Generator (Async Iterator with Generator) とは async function*で定義できるGeneratorのこと。 例: // Delay utility const asyncProcessing = (output: number): Promise<number> => new Promise((</number>…
Domain + declarativeUI + UIstate = M-V-VM 固いことはWikipediaへ転記済み
Redux ToolkitのcreateSliceはちょっとReduxぽくない処理をしてる。その背景にある哲学は何か。 特徴: ActionとReducerの凝集/密結合 Reduxは「ActionとReducerはN:M対応、互いに疎結合」という哲学1,2. しかしRTK.createSliceはCaseReducerからAction/Actio…
何を状態とするか、どこに状態を置くか、誰が状態へ変更するか、いつ状態を読み取るか Viewにも変数、モデルにも変数、コントローラーにも変数、みたいな. 誰でもread/write可、変数を直接触れる、フォーマッターメソッド経由で触ることもある. 状態の分割等…
イベント駆動プログラミングの実装において、イベントやイベントループはしばしばプラットフォームから提供される(c.f. ウェブブラウザ). 一方でイベントハンドラの設計は規定されず実装者に一任される。イベント駆動プログラミングにはしばしば頻出するハ…
副作用(プログラミング)== 定められた範囲の外側に対して「値渡し」以外の作用を与えること. 関数の副作用: 関数外に対し、値を渡す以外の何かをすること. 副作用の問題点 副作用を意識して呼び出しをおこなわなければいけなくなる. 「この関数を呼び出し…
まとめ: Numberは適当に使うと痛い目にあうよ 変な振る舞い 入力した数値が勝手に変更される. console.log(1.01234567890123456789); // 1.0123456789012346 「ああ、有効数字(小数点の桁)の話?」と思いきや、もっと不思議な振る舞いをする. for (let i =…
ECSは色々抽象化してくれているが、いざ不具合にであうと内部が見えなくて困る事が多い(抽象化とは). なので詳細仕様の早見表をつくった. Amazon Linux 2 based 対象: Amazon ECS-optimized Amazon Linux 2 AMI Amazon ECS-optimized Amazon Linux 2 (arm6…
コンテナに割り当てるストレージの大きさ ストレージドライバの種類によって大きく異なる。 overlay2 driver 標準的な環境でのデフォルトドライバ。 /var/lib/docker/overlay2/配下にimageとコンテナ(read-only layerとr/w layer)が置かれてmergedがファイ…
ブラウザ & JavaScript C++ブラウザ / JSエンジン/ JSスクリプト JSは(エンジンが提供する)サンドボックス内で動く。 サンドボックス外へのアクセス用に色々インターフェイスが生やされてるのでそれを使う (e.g. DOM API). ブラウザ & WASM C++ブラウザ / …
オープンソースの特徴: ある意味で自分のコントロールが全く効かない. PR reviewで取りこみの可否や修正は可能. でも、gitの、logは、制御できない、、、 feature branchをmainへ取りこむflowの場合、gitのログがそのままレポジトリにやってくる. gitの粒度…
※CoI: PyTorch-Lightning のcontributor (Checkpointing周り) です 比較 wrapper checkpoint local/remote resume/nullable Catalyst ☑ ☑ / □ ☑ / ? Lightning ☑ ☑ / ☑ ☑ / ☑ Ignite ☑ ☑ / △ ☑ / ? △: no direct support, but implementable (handler argume…
ExecutionRoleArn authZ for docker command authZ for Amazon ECS container agent TaskRoleArn/JobRoleArn AuthZ for containerized app authZ for container outbound AWS API calls https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/Use…
Jobの中断と復帰 Preemptible利用とか 要件 resume read先がnullの時にerrorじゃなくてfrom scratch処理できると実装が楽 auto healing
状態を復元する: restore/load states 状態の読み込み/read states (files) local/remote 対応形式 失敗時の対応 エラー fail properly -> from scratch 状態の適用/ load? restore? apply? states 例 Python PyTorch-Lightning (DeepLearning framework's w…
"isolated environment" Docker provides the ability to package and run an application in a loosely isolated environment called a container. Docker Overview 手法 Container: Docker Python: venv, virtualenv, pipenv, poetry Node.js: nvm, nvm-wi…