音に対する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と…

UnityWebRequestでローカルファイルをコピーしたらサイズが0になる

UnityWebRequestによってローカルのファイルを別のパスへコピーできる 例えばstreamingAssetsをpersistentDataへコピーする場合は以下のような処理 var src = $"{Application.streamingAssetsPath}/src.bytes" var tgt = $"{Application. persistentDataPath…

opencvで透過pngが変な画像になる

opencvで処理したpng画像を再度imwriteで保存するとおかしな模様が出ている場合があった 例えば単純に以下のようにした場合 image = cv2.imread(image_path) imwrite('/tmp/image.png', image) 調べてみると原因はalphaチャネルが0のpixelでもRGBの値は入っ…

transformerを理解するため実装してみる(実データで学習)

以前copy taskまで実装したものについてまとめた transformerを理解するために実装 - MEMOcho- 今回はそれを実際のデータで学習するところを実装したのでメモ 目次 sentenceのtoken化 長過ぎる文を削除 fp16対応 colabでの学習 評価指標 実行結果 seq2seq tu…

複数のファイルから同じ行を消す

機械翻訳用のデータは言語毎にファイルは別になっていて、文同士の対応は行番号が同じことによって保たれている 例えばこんな感じ # ja.txt こんにちは 私はテニスが好きです 私はペンを持っています # en.txt hello I like tennis I have a pen これをtoken…

別のPCにちょっとしたものを共有したいとき

家にあるPCで作業しているとき、もう一台のマシンでちょっと前に打ったコマンドをそのまま使いたいことがあった。 メールやチャットで自分宛てに送ればそれでOKだが、一旦外を通って戻ってくるというのがなんだか無駄に感じてしまったためマシン間で直接やり…

transformerを理解するために実装

自分の勉強のためにtransformerを実装してみたので引っかかったところなどメモ 実装の参考にしたのは主にこの3つ http://nlp.seas.harvard.edu/2018/04/03/attention.html pytorchによる実装ともに論文の流れに沿って解説 learning rateのscheduleなど細かい…

pythonでpng -> jpgの変換

pngで受け取った画像をjpgに変換して使いたい場面があったためメモ 一度ファイルとして保存すればもちろんOKだが特にファイルにする必要がなかったためその方法を探した そのものずばりなのがあった python: Convert from PNG to JPG without saving file to…

特定の行を一括で削除

以下のようにファイルがあったとき row_num.txt 1 3 5 対応する行を以下のファイルから削除する test.txt aaaaa bbbbb ccccc ddddd eeeee こちらのコマンドでできる $ indexes=(`cat row_num.txt`) $ echo "${indexes[@]/%/d;}" | sed -f - test.txt bbbbb d…

Deep Learingの5章を読んだまとめ

deep learning系の資料として有名なこちらを読んだのでそのまとめをメモ www.deeplearningbook.org 今回は第5章 Machine Learning Basicsについて 5. Machine Learning Basics 機械学習における学習の定義 - タスクTに関して経験Eから学習し指標Pによって計…

pip installでmemory error

GCPの一番小さいインスタンスでpip installしたらmemory errorが出て失敗 その場合は以下のようにすればinstallできる(かもしれない) $ pip install <package> --no-cache-dir ちなみにtensorflowでやったら実際にはこんな感じのエラーが出た。--no-cache-dirをつけれ</package>…

xargsでエラー {} does not exist

xargsを使っているときに以下のようなエラーが出た cp: directory /tmp/{} does not exist 原因は-Iのオプションを使った状態で、引数全体が255 bytesを超えてしまったこと。どうやらBSDのxargsだと255 bytesは超えられないという制約がある模様(GNUの場合…

efficientnetで推論させてみる(サーバ化)

colaboratoryで学習させて、その結果を使って手元で推論させるところまでは前回書いた efficientnetで推論させてみる - MEMOcho- 今回は学習済みモデルをサーバの形にして使うようにしてみたのでメモ flaskを使って超簡易サーバを立てて使うことにした。実装…

efficientnetで推論させてみる

学習部分についてはこちらに書いた。 efficientnetで学習させてみる - MEMOcho- 今回はその続きとして学習したモデルで推論を行ってみたのでメモ 推論 学習済みモデルをローカルに落として使う 学習時のコマンドで指定した--model_dirに生成物が出力される。…

efficientnetで学習させてみる

efficientnetのコードはこちらで公式に公開されている tpu/models/official/efficientnet at 8462d083dd89489a79e3200bcc8d4063bf362186 · tensorflow/tpu · GitHub これを使ってcolaboratory上で学習を試してみたのでメモ データセット準備 以下のスクリプ…

Google AutoML Visionのedgeモデルをローカルのcpuで動かす

AutoML Visionで学習させたあと、そのモデルを試してみる際にはサーバへのデプロイが必要になる。 そしてリクエスト数ではなく、デプロイされている時間に応じて課金される。 で、案の定という感じではあるが、テストのためにデプロイした後、デプロイ解除を…

launchctlでjobが起動しない

mac

macで定期実行をする際にcronではなくlaunchctlを使ってみたのでメモ このようなplistを以下の場所に置く <plist version="1.0"> <dict> <key>Label</key> <string>test</string> <key>ProgramArguments</key> <…</dict></plist>

pythonでclipした画像データのhashを得る

元々やりたかったこととしてはランダムにclipした画像を重複なく保存すること。そのためファイル名として画像データのhashがほしかった。以下のコードでhashを取得できる。 import cv2 import hashlib pos_x , pos_y = <clip領域の左上の座標> width , height = <clip領域の幅と高さ> path = <clipしたい画像のpath> image = c</clipしたい画像のpath></clip領域の幅と高さ></clip領域の左上の座標>…

VAEにはbatch normalizationを入れない

VAEを実装してみようとして調べていた際、batch normalizationは入れなくてよいのかということを気になったのでちょっと調べてみた。 とりあえずpytorch examplesのVAEの実装には入っていない examples/main.py at 6c51ca5a614cfdbdcd4e8c3e70321c5f6defb177…