2024-01-01から1年間の記事一覧

『今更ながらVAEってこんなに凄かったの?ってなった話』をPyTorchで実装して結果の再現に成功した話

はじめに 下記の記事にて,VAEの興味深い応用が実装例と共に紹介されている. zenn.dev 要するにVAEの潜在変数からアフィン変換のパラメタを分離できる話である.(各画像で個別の)アフィン変換を施した状態でモデルが訓練されるので,訓練後にその変換を外…

ロバスト主成分分析をcvxpyで実装してみた話

はじめに 最近ロバスト主成分分析(Robust Principal Component Analysis; RPCA)に興味があり、色々と情報を探していた。 記事もいくつか見つかる。例えば以下の記事など。 qiita.com 上の記事ではロバストPCAを丁寧な説明と共に実装しており、とても勉強に…

音声の振幅スペクトル系列から位相スペクトル系列を深層学習で直接推定するときarctan(atan2)を経由するのも悪くないねという話

はじめに 実装 評価実験 実験条件 実験結果 考察 おわりに はじめに 音声の位相スペクトル系列を振幅スペクトル系列から復元する手法はいくつも提案されており,再現実装を試みた記事をこれまで書いてきた. von Mises分布DNNに基づく位相復元手法をPyTorch…

位相スペクトルの有理関数近似に基づく位相復元手法(のプロトタイプ)をPythonで実装した

はじめに お待ちかね(?)の位相復元シリーズである. 手法の説明 記法を簡単にするため,ある特定の音声フレームに固定して考える.このフレームに関して, 位相スペクトル \( \phi(\omega) \) が有理関数で近似できると仮定する. ここで \( \omega \) は…

【Emacs】bsにおけるバッファリストやバッファ切り替え対象を同じタブに限定したいとき

前回記事の関連. tabspaces.elから一部関数を拝借したので,ライセンスを付記する. ;; https://github.com/mclear-tools/tabspaces/blob/main/tabspaces.el ;; Copyright 2013-2015 Justin Talbott ;; Copyright (C) 2022 Colin McLear ;; This program is…

【Emacs】bsにおけるバッファリストやバッファ切り替え対象を同じmajor mode に限定したいとき

bs-configurations という変数にフィルタリング用の関数を追加してやれば良いわけである. ここでは"same-mode"という名前をつけてみた.このcodeはace-jump-bufferから抽出した(実際のコードはマクロ).GPL ライセンスの旨を併記しておく. ;; Copyright …

【Emacs】bm.elの設定例

こんな感じ。 ちなみに、mapc ... で始まる箇所は、バッファ(たち)をdesktop-modeで復元後にbmを復元するための設定である。それゆえ、desktop-modeを使っていないひとには不要な設定である。復元した全バッファに対して処理を回しているので、そもそもbm…

【Emacs】centaur-tabs-mode で黒系のアイコンがdark系カラーテーマのときに見えづらくなる(nerd-icon)

centaur-tabs-mode で黒系のアイコンの例は ".emacs" の nf-oct-gear だが、これはdark系カラーテーマ(例えばdoom-dracula)のときには見えづらい。 ほか、term-modeの nf-dev-terminal などもそうであり、結局これらにはfaceが付与されていないのである (…

【Emacs】tab-bar-mode のタブ削除・新規タブのボタンが小さいので大きくした / How to make the tab deletion and new tab buttons in tab-bar-mode enlarged

こうする.define-iconで調整する.修正の本質は :height (1.0 . em) を追加することにあり,この1.0を変えれば大きさも変化する.タブ履歴のほうは heightを0.9にしてみた. ただしこのときのEmacsのバージョンは29.4である. (with-eval-after-load 'tab-b…

【Emacs】sticky scroll 相当の挙動を実現するには? / How to achieve sticky scroll behavior in Emacs?

VSCodeではsticky scroll が有効になっている。 Emacsで「ほぼ」同様の機能を実現するには window-stool-modeをインストールし、有効にする のが一番良さそうである。設定はこんな感じ(主にpython向け): (add-hook 'emacs-startup-hook #'(lambda () (add…

【Emacs】dired-modeでGNU sushiを使ったファイルプレビュー機能の実装 / Implementaion of file preview function using GNU sushi in dired-mode

こうする. call-process-shell-command の活用がカギだった. (with-eval-after-load "dired" (defvar dired-sushi-search-command "xdotool search --desktop 0 org.gnome.NautilusPreviewer windowactivate") (defun dired-sushi () (interactive) (call-…

【Emacs】neotreeで使うiconをall-the-iconsからnerd-iconsに変えた

こんな感じで neo-buffer--insert-fold-symbol を再定義した.nerd-icons-icon-for-dir-with-chevron は新規に作成した. (defun neo-buffer--insert-fold-symbol (name &optional node-name) "Write icon by NAME, the icon style affected by neo-theme. `…

【Emacs】completion-preview の設定

ちなみに completion-preview はEmacs 30 系に搭載予定. 最新のソースコードはこちらから。 github.com (require 'completion-preview) ;; Enable Completion Preview mode in code buffers (add-hook 'prog-mode-hook #'completion-preview-mode) ;; also …

【Emacs】centaur-tabs の設定

こんな感じ. ;; 'tab タブ切り替えの単位をグループ内の「バッファ」に限定 ;; 'groups タブ切り替えの単位を「グループ」に限定 (setq centaur-tabs-cycle-scope 'tabs) ;; アイコン表示 (setq centaur-tabs-set-icons t) (setq centaur-tabs-icon-type 'a…

【Emacs】eglotでログをバッファに書き込まない設定

こうする (with-eval-after-load "eglot" (setq eglot-events-buffer-config '(:size 0 :format null)) ;; ログをバッファに書き込まない )

【Emacs】補完機能の運用ポリシー

1. hippie-expand (M-/) 2. completion-preview (C-i, M-i) 3. dabbrev-expand or cape-dabbrev 4. completion-at-point with corfu and hotfuzz (C-M-i) corfu-modeはONだが corfu-auto は nil にしておく。 入力中、基本はhippie-expandで候補検索・確定す…

【Emacs】neotreeで別タブでファイルを開くときの設定

こうする。挙動がVSCodeに近くなると思われる。キーバインドはお好みで。 (defun neo-open-file-other-tab (full-path &optional arg) "Open a file node in another tab. FULL-PATH is the file path you want to open." (neo-global--select-mru-window ar…

【Emacs】diredでfind-fileするときに別タブで開くための設定

こうする。neotree を使っている場合は neotree-toggle を実行してツリーを表示するのも悪くない。 (defun dired-find-file-other-tab () "In Dired, visit this file or directory in another tab." (interactive) (dired--find-file #'find-file-other-tab…

【Emacs】Modusテーマの設定

こんな感じ。tinted 系や deuteranopia 系 を使うならば、MELPAからmodus-themesをインストールする必要があるので注意! (if (display-graphic-p) (progn (setq modus-themes-italic-constructs t) ;; コメントが斜体 (setq modus-themes-bold-constructs t…

【Emacs】Minions:モードラインに表示するマイナーモードをいい感じに表示する

以下の記事でMinionsが紹介されていた。良さげだったので早速使っている。 【Emacs入門】③モードラインについて考える(Moody / Minions) 要するに、メジャーモードを除いてマイナーモードを非表示にするわけだ。 (add-hook 'after-init-hook #'(lambda () …

【Emacs】neotreeの設定

こんな感じ。 (global-set-key [f6] 'neotree-toggle) ;; treeバッファに行番号を表示しない (add-hook 'neotree-mode-hook #'(lambda () (display-line-numbers-mode -1))) ;; 隠しファイルを表示しない (setq neo-show-hidden-files nil) ;; 隠しファイル…

【Emacs】行頭・行末移動を拡張するパッケージ

mwimがそれである。 github.com MELPAからインストールして、下記設定で便利に使える。 (global-set-key (kbd "C-a") 'mwim-beginning) (global-set-key (kbd "C-e") 'mwim-end) 挙動が少し変えたいときは以下。 (global-set-key (kbd "C-a") 'mwim-beginnin…

【Emacs】shackle-mode: ポップアップウィンドウの挙動を調整

shackle-modeは愛用しているパッケージのひとつ。 ポップアップウィンドウの表示位置やサイズを調整できるので。 ひとまずこんな設定。 (add-hook 'after-init-hook #'(lambda () (shackle-mode 1) (setq shackle-rules '( ("*Help*" :align below :select t…

【Emacs】eglotでbasedpyrightを使う設定

basedpyrightをインストールしたうえでこうする。 (with-eval-after-load 'eglot (add-hook 'eglot-server-programs '((python-mode python-ts-mode) . ("basedpyright-langserver" "--stdio")))) 最新のeglotにはbasedpyrightの設定もマージされているけど…

【Emacs】hippie-expandの設定

こんな感じ (global-set-key (kbd "M-/") #'hippie-expand) (setq hippie-expand-try-functions-list '( try-expand-dabbrev try-expand-dabbrev-all-buffers try-complete-file-name-partially try-complete-file-name try-complete-lisp-symbol-partially …

【Emacs】eglotで無効にしたい機能を指定するとき

eglotで無効にしたい機能があれば、eglot-ignored-server-capabilities というリスト変数に追加する(初期値はnil)。 例えばカーソル下のシンボルハイライトを止めたいときは :documentHighlightProvider を追加する。 (with-eval-after-load "eglot" (setq…

tqdmでprogressbar2相当のフォーマット指定をする場合

例えばこう書く。tqdmのbar_formatを少し調整すれば良い。 import time from tqdm import tqdm for _ in tqdm( range(5), desc="Your Description", bar_format="{desc}: {percentage:3.0f}% ({n_fmt} of {total_fmt}) |{bar}|" + " Elapsed Time: {elapsed}…

【Emacs】ヘッダラインにパンくずリストを表示するbreadcrumb-mode

このリポジトリにある.GNU Elpaからパッケージでインストール可能. github.com 設定はこんな感じ.特定のメジャーモードのhookに引っ掛けるのも悪くない. (add-hook 'after-init-hook #'(lambda () (breadcrumb-mode +1)))

【Emacs】新しい補完スタイル hotfuzzの設定

hotfuzzという補完スタイルを提供するEmacsパッケージがある. github.com あいまい入力の補完を助けるので,とても便利である. さらなる高速化を望むなら,hotfuzzの動的モジュールのソースコードをコンパイルしてロードパスの通ったところに置く必要があ…

【Emacs】C言語を書くときの設定

こんな感じ. (add-hook 'c-mode-hook #'eglot-ensure) (add-hook 'c-mode-common-hook #'(lambda () (c-set-style "GNU") (setq c-basic-offset 4) ;; width of indent (setq fill-column 80) (setq-default auto-fill-mode t))) ;; https://emacs.stackexc…