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…

matplotlibで散布図に凡例をつける

散布図を描くにはscatterを用いる。scatterとlegendを組み合わせて使う場合の例はこちらにある。 Scatter plots with a legend — Matplotlib 3.1.2 documentation これによると以下の2つの方法がある 凡例としてつけたいlabel毎にscatterを呼ぶ x, y, cにそ…

ssh keyのパスフレーズを入力しなくて済むようにする

mac

数年ぶりにPCのセットアップが必要になったのだが、macだとこれが簡単にできるようになっていたのでメモ これだけ $ ssh-add -K <path to private key> -Kをつけることにより、macのキーチェーンに情報が登録されるようになったらしい。 $ ssh-add -h ... -K Store passphrases in</path>…

コマンドラインで複数ファイルの名前を一気に変更

以下のようなファイル群があって、ハイフンより前の接頭辞をすべてのファイル名から消したい v001-fileA v002-fileB v003-fileC ... 複数ファイルのリネームについての賢い方法はこちら 大量のファイルをシェルのコマンドで一括リネームする | Developers.I…

neovimでvimfilerならdefx

vim

neovimを使うようにしてからvimfilerが使えないことに気づいたので、他に使えるものがないか調べたところdefx.nvimがあったという話 neovimでvimfilerを開こうとするとエラーになる。なのでvimfilerのgithubを見てみるとこんなことが書いてあった。 GitHub -…

コマンドラインでファイルのN行目からN+M行目まで抽出

手軽に表題のことをやる場合は以下 $ cat file | tail -n +N | head -n M tail -nに+をつけて数字を渡すことで上からN行を除いた部分を抽出できる

pix2pixを理解するために実装

基本的なGANの実装はやってみたので、今度は少し複雑になったpix2pixを実装してみる。 pix2pixは論文著者による実装が公開されており中身が実際にどうなっているのか勉強するはとても都合がよい。 著者の実装はcycleGANと共通になっており、また実験のための…

dcganをconditional dcganにしてみる

入力したのと同様の画像を生成するアルゴリズムとしてdcganがある [1511.06434] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks これにラベルをつけて指定した画像を生成できるようにしたのがconditional g…

処分するPCのHDD初期化

むかしubuntuを入れて遊んでいた古いPCを処分することにしたのでその前にデータ消去 ただ、案の定いくつかひっかかったのでメモしておく まず数年ぶりに起動したくらいのものなので、当然のようにログインできない。なので以下にしたがってrootのパスワード…

pytorchでエラー(Unexpected key(s) in state_dict: "bn1.num_batches_tracked")

gpuで学習して出力したデータを、cpuでloadしようとしたらタイトルのようなエラーが出た フォーラムで同じ問題が質問されていたので簡単に解決 Unexpected key in state_dict: "bn1.num_batches_tracked" - PyTorch Forums こんな感じでload_state_dictにstr…

unity & photonで動きがカクカクする

unity&photonで簡単なマルチプレイゲームを作ろうとした際、カクつくことがあったのでメモ マルチプレイ用の処理の書き方についてはこのチュートリアルを順番に見ていけばよくわかる イントロダクション | Photon Engine オブジェクトの同期については特にこ…

pytorchでmulti step learningを実装

rainbowの一要素であるmulti step learningを実装したのでメモ。 rainbowの論文はこちら https://arxiv.org/pdf/1710.02298.pdf Multi-step learningの項目で説明されており、参照として載っているのがこちら http://www.incompleteideas.net/sutton/book/eb…

pytorchでcategorical(distributional) dqnを実装

categorical dqnの論文はこちら A Distributional Perspective on Reinforcement Learning https://arxiv.org/pdf/1707.06887.pdf 元のdqnでは報酬を一つの値として扱っているが、分布として扱うことによって学習のパフォーマンスが向上したというもの。 ま…

gcpのdatalabにchromeからアクセスできない

しばらくdatalabを使っていたらブラウザからアクセスできなくなった。 対応するportにchromeからアクセスすると、このページは動作していません、という画面になる。 gcloud compute ssh hogeでVMに直接入ることは可能だったのでいろいろ試してみるとこんな…

google colaboratoryで学習が進まなくなった

google colaboratoryで強化学習のプログラムを書きつつ動かしていたのだが、少し間があいて1ヶ月ぶりくらいに動かしてみたら、学習がまったく進まなくなってしまった。こんな感じで青が以前、赤が今回。 自分のプログラムを同じ状態に戻して↑の状態なので、…

hatena blogでtexによる下付き文字がうまく表示されない

以下のような形で書いたところうまく表示されない [tex: x_{i,j} + x_{j,k}] このように表示される [tex: x{i,j} + x{j,k}] 少しググってみるとこちらのブログでその原因が解説されていた はてなブログのTeX記法で数式を書く時用のチートシートと注意点 - ぴ…

pytorchでnoisy networkを実装

元の論文はこちら [1706.10295] Noisy Networks for Exploration 常にその時点で価値の高い行動を取り続けた場合、最初に価値が高くなった行動が取られ続け、別の行動を取る可能性がなくなってしまう。それを防ぐため元のDQNではε-greedy法と呼ばれる手法を…

pytorchでprioritized experience replyを実装

元の論文はこちら [1511.05952] Prioritized Experience Replay DQNで学習を進めるための重要なテクニックとしてexperience replyというものがあり、これはメモリにためておいたstateやactionの記録をmini batchとしてランダムに取り出して学習させるという…

グループ毎に重複が存在することを検知するクエリ

あるカラム(group_id)の値でグルーピングした上で、カラム(value)の値が重複しているgroup_idを抽出したい。 # table: example group_id value 1 1 1 2 1 3 2 1 2 3 2 3 例えば上記のようなテーブルがあった場合は、group_id=2のvalue=3が重複している。 以…