argparse-dataclass使用時に__future__.annotationsをimportするとエラーが出るので中身を調べてみた

argparse-dataclassはdataclassをargparseに合う形に変換して渡してくれるもの。 https://github.com/mivade/argparse_dataclass もともとargparseを使っていたのだが、以下の理由から引数を管理するクラスを作りたくなった。 package化して外から使える形に…

pythonのlinter&formatterを設定する

前回neovimに関連したpython環境を見直したが、ついでにlinterやformatterをちゃんと入れておくことにしたのでメモ linterの設定 vim-lspにて表示するための設定はこちらを参考にして以下のようになった。 https://qiita.com/tk0miya/items/5a5beb2586c63792…

neovimのpython環境についてメモ

vim-lspによる補完がうまく効かない状態になっていた。補完が効かない問題自体はvenvの環境そのものがおかしくなっていたようで新しく作り直したら問題なかったのだが、その際に調べたことをせっかくなのでメモしておく。 手元の環境はこんな感じ pyenvで入…

colaboratoryでapexのinstallに失敗する

タイトルの通りでapexのinstallに失敗したのでメモ。 実行したコマンドはこちら !git clone https://github.com/NVIDIA/apex.git !git checkout ebcd7f084bba96bdb0c3fdf396c3c6b02e745042 # 2021/09/18時点での最新 %cd apex !pip install -v --no-cache-di…

pytorchのdata load時に処理が止まる

dataloader経由でデータを取得する際に処理待ちのような状態になって動かなくなることがあったのでメモ。 具体的にやろうとしてたのはDETRを動かしてみることで、画像2枚だけの小さなデータセットを用意して実行したところ以下の部分以降に処理が進まなかっ…

coqui-ai/ttsでvocoderの学習

こちらの続きとしてvocoderの学習と、生成したmelspectrogramをvocoderに通して音声生成してみる https://jsapachehtml.hatenablog.com/entry/2021/06/16/094213 学習 前回書いた通りmultiband-melganを試してみる。データセットもJSUTで同じくLJSpeechと同…

spreadsheetへの貼り付け時にダブルクォーテーションが消える

spreadsheetに以下のような複数行のテキストをコピペして貼り付けるとダブルクォーテーションが消える "example1" "example2" ちなみにコピーするのが一行だけだとちゃんとダブルクォーテーションも貼り付けられる どうやらテキスト先頭にダブルクォーテーシ…

colab proを使ってみた

1ヶ月だけcolab proを使ってみたのでメモ https://jsapachehtml.hatenablog.com/entry/2021/06/16/094213 こちらの記事で少し書いたが、学習に数日かかるものだったため再実行の頻度を下げようと思って一度使ってみることにした colaboratoryの無料版、有料…

coqui-ai/ttsで日本語音声合成を試す

いままで音声の生成はやってみたことがないため勉強のためにやってみたのでメモ。 目的としてはどういうことを行っているのか理解したいというのと、TTSを学習させてみた場合にどの程度のコストがかかってどのくらいの音声が生成できるのかというのが気にな…

colaboratoryとGCSのregionを一致させる

https://jsapachehtml.hatenablog.com/entry/2021/04/25/142900 こちらの書いたことの補足として調べたことをメモ サーバの位置を割り出すipinfo.ioを参照するのが簡単そうだった。 モダンなIPアドレス表示サービス「ipinfo.io」 - ソフトアンテナブログ col…

colaboratoryで使うdatasetをどこに置いておくのがよいか調べる

前回こんな記事を書いたが、どこに置いておくのが効率よいのか気になったので調べてみた https://blog.hatena.ne.jp/y-kamiya/jsapachehtml.hatenablog.com/edit?entry=26006613718710543 colaboratoryは起動のたびにまっさらの状態になるためデータセットな…

google colaboratoryでGCSからデータ取得

gcsとデータをやり取りする場合、gcloudを入れて初期設定をしてから付属のgsutilを使うという流れでやっていたが、実はgcloudは入れなくてもよいことに気づいたのでメモ gsutilの公式のインストール方法として、Pythonパッケージからのインストールという項…

google colaboratoryで効率よくデバッグしたい

google colaboratoryはgpuやtpuを無料で使うことができ大変便利だが、gpu関連の処理をデバッグしたい場合などは多少手間がかかる colab上での実行が必須のコードのデバッグ時に私が行っていた手順は以下 ローカルでコードを変更 適当にコミット colab上でgit…

テキスト感情分類(マルチラベル)

こちらの記事で追加でやってみると書いたことのいくつかについてやったのでメモ https://jsapachehtml.hatenablog.com/entry/2021/01/17/142444 マルチラベル分類 参考にしたこちらの論文と同じ形にして精度を比べてみることにした(英語のデータセットで) …

日本語のテキスト感情分類をやってみる

感情分類は以下の2通りに大分けされる模様 positive/negativeの二値分類(neutralを含める場合もあり) joy, sadnessなど複数の感情に分類 このうち特に2.についてはapiとして公開されているものもそこまで多くない印象なのでこちらについてやってみることに…

tensorflowで指定の位置の値だけを抽出して次元を減らす

元々やろうとしたことは、transformerの出力から各sentenceの末尾にあたるtokenのembeddingsだけを取り出すこと tensorflowは今までそこまで書いたことはなかったため、やってみると意外と時間がかかったためメモ 例として以下のような形を考える # 元のtens…

特定のコマンド実行が終わるまでPCをスリープさせない(mac)

時間のかかる処理をローカルPCで動かしている場合などスリープさせたくないことがある PCの電源管理の設定でスリープしないようにすればOKだが、当然それだと必要な処理が終わった後でもスリープにならないため無駄 以下のコマンドで実行中のみスリープにな…

colaboratoryに表を出力すると崩れる

tabulateで表を出力した際に以下のように崩れた 文字によって幅が異なっていることが原因(=等幅フォントじゃない) chromeのフォント設定を見てみるとOsakaになっている colaboratoryの編集用セルや出力欄は↑の設定の固定幅フォントが使われている ただ謎な…

音に対するdeep learningの入門として環境音の識別をやってみる(3)

こちらの続き https://jsapachehtml.hatenablog.com/entry/2020/10/24/183410?_ga=2.58998701.1453230663.1604732830-1050067043.1602897991 今回はBC Learningを実装してみたのでメモ BC Learning 論文: https://arxiv.org/pdf/1711.10282.pdf 公式repo: ht…

torchaudioをインストールするとtorchがcpu用のものになる

colab上でtorchaudioをインストールして使っていたのだが、いつの間にか学習速度が落ちていた $ !import torch $ !print(torch.cuda.is_available()) False とりあえずやってみると上記のようになったのでgpuが使えていないことがわかる 先月実行した際は同…

owner権限を持っているディレクトリでOperation not permitted

ストレージの整理のために~/Library以下などをチェックしていたところ見られないところがあった。 $ ls -l ~/Library/Application\ Support/MobileSync ls: MobileSync: Operation not permitted sudoをつけても同じで、そもそもownerだったのでsudoいらない…

module 'tweepy' has no attribute 'OAuthHandler'

こんなエラーが出た場合のしょうもないハマりについてメモ ググると同じエラーについて出てくるがどれも当てはまらず。なので挙動を調べるためにimport元のファイルがどこにあるかチェック > import tweepy > tweepy.__file__ <path to current directory>/tweepy.py ということで、実行</path>…

server version is too old for client

itermでコマンド実行後にこのメッセージが出るようになった どうやらメッセージの出どころはtmuxのようで、tmuxをupdateしたものの古いsessionをそのまま利用している状態で出る模様 https://github.com/tmux/tmux/issues/2212 こちらで一度落として起動しな…

pytorchで処理が重いとき on colaboratory

pytorchを使ったモデルで学習を行っている際、処理が重い場合があったためその調査/解決方法についてメモ ちなみにgpuは基本的にgoogle colab上で使っているためその前提で gpuが使えていない 処理が重い場合の一番の原因がこれ。その環境でgpuが利用可能か…

音に対するdeep learningの入門として環境音の識別をやってみる(2)

こちらの記事の続き https://jsapachehtml.hatenablog.com/entry/2020/10/17/231526 今回はEnvNetを実装してみたのでメモ EnvNet 論文:https://www.mi.t.u-tokyo.ac.jp/assets/publication/LEARNING_ENVIRONMENTAL_SOUNDS_WITH_END-TO-END_CONVOLUTIONAL_NE…

音に対するdeep learningの入門として環境音の識別をやってみる

音の扱いがどのようになっているか知りたいと思ったため、最も簡単にできそうなものということで環境音の識別をやってみることにした いろいろググっているとこちらのqiitaがこれまでの経緯をまとめてくれていたためこれを参考にしていくつか実装してみる ht…

pytorchで評価時のみOut of memory

trainingは問題なくできるのが、評価の段階になるとメモリー不足で落ちることがあった。 データセットのサイズとしてはメモリ不足になるような大きさではないため、ロジックを調べてみるとtensorを加算する処理をtorch.no_gradなしにやっていることが原因だ…

Bertで不自然な文を検知してみる

Bertなどの学習済みのモデルは、多くのデータから最もありえそうな単語の並びのパターンを学習しているといえる。 なので文法的に間違っている場合など不自然な位置に単語があったりすれば、その単語の出現確率は低く出るはず。 ということで簡単なスクリプ…

haskellでちょっとした処理のメモ

久しぶりにhaskellを触ったので、その際に調べたtips的な処理についてメモ リストのslice https://stackoverflow.com/questions/4597820/does-haskell-have-list-slices-i-e-python slice :: Int -> Int -> [a] -> [a] slice from to xs = take (to - from +…

nix環境でhaskellのprojectをビルド

久しぶりにhaskellを触った際によくわからなくなって調べたのでメモ とりあえずビルドしたいときのチートシート的にまとめておく 基本的にこちらに書いてある通り Getting Started Haskell Project with Nix | MaybeVoid nixはinstall済みだったが一応 ghcと…