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

ubuntuメモ

最低限のインストール $ sudo apt-get install emacs g++ gcc make cmake sbcl gauche python3-pip CtrlとCapLockのスワップ caps-ctrlのスワップはgnome-tweak-toolでやれる。 $ sudo apt-get install gnome-tweak-tool 日本語環境 Ubuntuでは一時fcitxにな…

matplotlibのメモ

覚えておく点 matplotlibの使い方をすぐ忘れる(特に、subplot)。この書き方にこだわる必要は無いけれど、要点だけまとめておく。 手順としては、figureを作る(大きなキャンバスを定義)、figureに対してadd_subplotでサブキャンバスを作る。これはaxesって言…

Kerasのバックエンドの使い方

勾配情報を取得したり、特定のレイヤの出力を得たい場合など、色々な場面でKerasプログラムの中でTensorflowレイヤの操作をしたいことが出てくる。そんな時に使うのがバックエンド。 多くはドキュメント見れば良いが、良く分からないAPI(functionとか)もある…

Kerasの処理テンプレート

メモ モデルのcompile時に与えるmetricsは、学習の各エポック毎に計算する学習の指標を表すもの。損失関数は何もやらなくても計算しているので、損失関数以外を指定する。自分で関数を作っても良いが、大概は用意されている。良くあるサンプルではaccuracyが…

Kerasで中間ノードの出力を確認する。

kerasのドキュメントのFAQに書かれているので、それ通りにやれば良い。一応、良くあるボストンの家の価格のデータの例を記載。 そう言えば、kerasが終了時にsessionのdelに失敗する場合がある。ちゃんと、backendのclear_session()を呼ぶ。 import numpy imp…

Keras with scikit-learnのメモ

KerasはTensorflow/Theanoを使って良くあるDeep Learningアルゴリズムのパタンを効率的に実装するライブラリだけど、機械学習と言えばデータ前処理やCross-Validation,パラメタ探索とか他にも共通してやることがたくさんある。そんな機械学習共通のライブラ…

メタプログラミング in python

PythonでもRubyみたいなメタプログラミング(method_missing, sendとか)が色々出来るみたい。 ちょっとずつ調べて書いていく。 モンキーパッチ(オープンクラスとは違う) 動的にメソッド定義できる(なんと!!)。オープンクラスというよりはクラスのattrに直接…

SOFT SKILLSの自分メモ

学習すること ソフトウェアエンジニアは絶えず勉強が必要で(SEに限らずだけれど)、効率的な勉強法が重要となる。 効率よい学習とは、好奇心を持って行動を起こすこと。そして人に教えると知識が補強される。 だから、まず最速で試すポイントまで立つことを意…

Pythonの開発環境 on Emacs

前提 Caskの使用をやめたので修正@2018/06/02 最低限として文法チェック、補完、REPLが使えれば良い。 ipython notebook(Jupyter)は使わない。 (notebookはやっぱり慣れないのと、別にmarkdownは別ファイルに書けば良いし、図もEmacs内に埋め込み表示しなく…

Cmakeのメモ

使い方 CMakeList.txtにMakefileの生成ルールを記述. CMakeLists.txtを用意したディレクトリを指定してcmakeを実行するとMakefileが生成される.後は通常通りにmakeでコンパイル. ただし,cmakeするとCMakeCache.txtやら色々できてディレクトリが汚れるの…

コンテナからの要素削除

c++

ひさしぶりに書くとこんな事も忘れてしまっていた.下記のコードでセグメンテーションフォールトが出た. でも,そもそもremove_ifをこんな時には使うようだ. std::list<int> lis {0,1,2,3,4,5,6,7,8,9}; for (auto itr=lis.begin(); itr!=lis.end(); ++itr) { i</int>…

ポリモルフィズム

c++

目的 オブジェクトによって振る舞いを変える. 方法 子クラスのポインタを親クラスのポインタに代入するのがミソ.(子クラスは親クラスのポインタに代入可能.逆はだめ.) それを使う側は親クラスのポインタを引数なりにして受け取って,親クラスのメソッド…

テンプレートのメモ

c++

基本 型推論 関数テンプレートの場合は型推論されるので,実体化の際に明示的に型を書かなくても良い. クラステンプレートの場合には推論されないので注意. 特殊化 テンプレート関数,テンプレートクラスがある時に特定の型でだけ別の動きをしたい場合には…

二分探索 バイナリサーチ

簡単でかつ効果が高いのでよく使うサーチ. 意外と境界条件でバグりがち.味噌は,右側を配列の外において置く. #include<iostream> #include<vector> using namespace std; int main() { int d, n; cin >> d; cin >> n; vector<int> v(n); for (int i=0; i<n; ++i) cin>>v[i]; int l=0, r=v.siz</n;></int></vector></iostream>…

線形探索と番兵アルゴリズム

番兵アルゴリズムはただの書き方の問題だと思ってたけど,高速化のテクニックだった,という話. forでvectorの要素を回す時に,毎回比較演算が行われるけど,それが勿体無いという場合に,絶対に止まるよに番兵を置いておいて無限ループで回すというのが番…

プロコンと標準入出力

c++

プロコンをかじってみたら,標準入出力で躓いた...ということで,使い方を整理しておく. scanf 空白文字または改行文字を区切りとして,フォーマットに従って変換して変数に取り込む.2つ以上フォーマット指定子を指定すれば一度にその分だけ読み進む.…