Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

docker pushがTimeoutで死ぬとき!

dockerのsettig-->Proxyで、DNSをautomaticからfixed 8.8.8.8にすると治ることがあるよ

Dockerfileの中でファイルやディレクトリ作るとownerがroot:rootになっちゃうのが嫌な時・・・

COPYコマンド(ADDよりはCOPYのほうがいいらしい)でchownオプションがつけられるよ! COPY --chown=[user name]:[user name] from_dir_path_in_local to_dir_path_in_container

ディレクトリ数、ファイル数を再帰的に数える

ファイル数 find <directory> -type f | wc -l ディレクトリ数 find <directory> -type d | wc -l</directory></directory>

Chainerでlearning rateを任意に操作

qiita.com これに書いてあるとおりですが、やり方わかって実際動いたので貼ってみる。 class LrScheduler(extension.Extension): trigger = (1, 'epoch') def __init__(self, base_lr, epochs, optimizer_name='main', lr_name='lr'): self._base_lr = base_…

自分のファイルのパスを取得(python)

current_dir_path = os.path.abspath(os.path.dirname(__file__)) これで、当該実行ファイルの位置を取得できるので libraryのツリー内の好きなファイルを見に行けるぞ

Chainerで訓練の半自動再開(resume semi-automatically)

会社的に推奨されたので、適当にsnapshotとってresumeする仕組みを実装した。 やりかったことは 適当なタイミングでtrainerのsnapshotをとって、そこから学習再開できるようにする chainermnだとmaybe_loadという便利関数があってiteration数とか解決してく…

pycharmのdocstring形式

こんなの常識らしいのだけど、知らなかったので。。。 pycharmのsettings --> Tools --> PYthon intergrated toolsの中で、Docstringsのフォーマットを選べるよ。reStructedTextがデフォルトらしいけど、numpy formatやgoogle formatの人が多いらしい。 goog…

Dockerfileでsourceを使う。というかbashを使う for installing chainer-cv

Dockerfileの中だとsourceコマンドが使えないというのは良く知られた話のようで、それはDockerfileの中ではシェルがbashではなくてshだから。 で、chianer-cvのインストール Installation Guide — ChainerCV 0.11.0 documentation のところを見ると、source…

natbib on arxiv...

ご無沙汰しています。 すっっっっっっっっっっっっごく久しぶりに論文を投稿したのですが、例によってarXivでのコンパイルエラーで苦しみました。 というか、bibの部分。 Error: Bibliography not compatible with author-year citations. これ。生成されたb…

dockerの使い方

これも恥ずかしいけど、基本的なところから イメージを作成する Dockerfileのあるディレクトリで? docker build -t [image name] [path to save image?] ログインしないで、取得したイメージでコンテナを起動、則コマンドを実行する docker run [image name…

git(hub)の使い方 自分用メモ(随時修正)

恥ずかしい気もするけど間違えるよりはずっといい。 これもメモしていかないと・・・ レポジトリやブランチをもらってくる系の操作 レポジトリをコピー(clone)してくる git clone <.git アドレス> 特定のブランチをコピー(clone)してくる git clone -b <branch name> <.gi</branch>…

git submoduleの自分用メモ書き

git submoduleはほかのレポジトリの「特定コミット」を自分の内部の構成要素にする仕組みで、大きいものを作るときや、各要素が複雑enoughな時に役立つっぽい。 基本コマンド git submodule update --recursive これでトラックするsubmoduleのコミット状況を…

zsh on Ubuntu on Windows Subsystem for Linux

WSLのデフォルトシェルはバッシュなんですけど、やっぱzsh使いたいよねぇとか、あとWSLならではの設定とかいろいろここ1か月苦労していたので、メモを残しておきましょう。 随時修正ってことで。 zshでしょ まあ、これは普通にzsh入れればいいんですが、普…

Lapack for Torch

ちょっとSVDが必要だったのでtorch.svdをしたら"LAPACKがないよ"と怒られました。 torchの線形代数ライブラリはLapackをラッパしているだけなので、そもそもコンパイル時にLapackがないとだめ。 ということでOpenBLASをインストールする。 git clone https:/…

2つのファイルの共通業を抽出するワンライナー

たびたび使うので。 grep -x -i -f file1 file2 以下のQiita記事に書いてありました! qiita.com

Installing CUDA9 + CuDNN7 + Torch on CentOS 7 (Japanese post + English post)

このポストの目的 下記の自著記事を基にして、CUDA8 + CuDNN5.1はinstallした計算機があります。 今度はこのマシンのCUDA, CuDNNを更新します。 dr-kayai.hatenablog.com Purpose of this post: update the CUDA (8 --> 9) and CuDNN (5 -->7) on CentOS 7. …

OpenNMT-py "raise lengths array has to be sorted in decreasing order"

まだクローズしていないバグを踏んでちょっと時間をとられたので情報共有です*1 OpenNMT-py, 正確にはtorchtext-0.20の修正のせいで、いま、最新のOpenNMT-pyをgitダウンロードで使うと、train.pyやtranslate.pyが表題エラーの通りに死ぬ事象が起きています…

slack webhookでログをslackに自動投げ込み

webhookなる仕組みを使って、slackにcurlで直接メッセージを投げ込むことができるらしい。これ使えば、入力フォームから誤訳文対が報告されるたびにslackに投げてみることができるっぽい? api.slack.com とりあえずslackの公式APIページを見ると使い方が一…

Webサーバー構築(Apache+PHP) の練習

ちょっとお仕事で *AWS上のインスタンスを用いて *既定の入力フォーマットでいろいろな人から入力を集めて *入力結果を保存して *AWS S3やslack botに入力結果の保存内容を投げる ということがしたくなったので、webサーバを構築してみる AWSインスタン…

小技:linuxでn行おきに何かしたいとき

awk使うマン! # 3行おきに出力 cat file.txt | awk '(NR%3==0){print}' # 10行おきに改行入れる cat file.txt | awk '(NR%10==0){$0=$0"\n"}{print}' qiita.com

読みました:年収は「住むところ」で決まる ─ 雇用とイノベーションの都市経済学

shoeihidoさんの sla.hatenablog.com に触発されて、「年収は「住むところ」で決まる-─-雇用とイノベーションの都市経済学」 を買って読んでみました。 結論:かなり面白かったです。読む価値あります。 すらさんありがとう!良い本に出合いました! だいた…

Installing CUDA8+CUDNN5.1+Torch on CentOS7 (Japanese/English mixed post)

ほぼ真っ白なCentOSだとあまり情報がないので、自分用のメモもかねて忘れないうちに。 I found there are few posts about CUDA8 + GPU-enabled Torch on 'vanilla' CentOS. Hope this post helps somebody... 基本ライブラリ群のインストール (Installing v…

C++学習記(5): boost mpi (+openmpi) on multiple CPUs (machines)

Boost MPIに複数コア分散計算のお仕事は終わったので、いよいよ複数マシンによる盛大な負荷分散をやろうと思う。 簡単じゃない?簡単じゃない hostsを指定するファイルを作って # nodes_for_MPI.txt host.1.xx.yyy cpu=4 host.2.xx.yyy cpu=2 mpirun起動時に…

C++学習記(4): boost mpi (+openmpi)

ようやく本来の目的であった並列計算に。 最初はOpenMPによるお手軽並列計算を使ってみたのですが、メモリの共有の切り分けがうまくいかず、並列度を上げれば上げるほど遅くなっていく残念な結果に・・・ ということで、結局急がば回れ、MPIでちゃんと書くほ…

C++ 学習記(3): vector

C++といえばvectorというくらい、配列は全部vectorにするのがいいっぽい。 どこで見たのか覚えていないのですが、webで見つけた資料を基に vectorの挙動を調べるためのコードを書きました。ふーんって感じ。 *1 #include <iostream>#include <vector>#include <string>using namespace </string></vector></iostream>…

C++ 学習記(2): cmake

IDEが使えない可能性を考慮して、C++はlibtool chainかcmakeで何とかしようと思っていた。 で、とりあえずcmakeが簡単そうだったのでやってみる。 情報源は ごく簡単なcmakeの使い方 - Qiita Learning CMake <-- これ素晴らしい! いま、cmake_testというデ…

C++ 学習記(1): まずは環境確認整備

業務の都合でいままで書いたことのないC++を使わざるを得なくなった。 業務のほうは既存のC++コードを書き換える方向なので、まあなんとかなるだろうと思っているんだけど、スクラッチから起こすことができないので makeの書き方も-Iや-Lオプションの意味もa…

Linux便利コマンドの覚書

コマンドラインでいろいろ文字列処理できるよっていうね。 常にpythonやperlさん使うより、覚えていたらずっと早かったりする。 そこで、便利だったコマンドを、実際の自分のusageに即してメモする。 というか100本ノックの第二章やってるだけです www.cl…

screenの使い方!

実に10年ぶりくらいぶりにマシンをつけっぱなしにできない状況になったので、改めてscreenを再勉強。 screenの特徴は、一つのターミナル画面上で番号の切り替えで多数のセッションを作ることだけど、もう一つの特徴として「セッションはバックグラウンドで…

Cygwin <--> Poderosaの鍵の流用不可能?

www.mk-mode.com の一番最後にあったのですが、 タイトルの通りなんですかね・・・ せっかくcygwin入れたのに。