Python
Python のデータ可視化ライブラリは複数あり、matplotlib や seaborn を使う場合が多いのではないかと思います。特に seaborn は出版品質の図が手軽に作れるため便利で、実際に機械学習系の論文ではこのライブラリで用意したであろうグラフをよく見かけます…
機械学習モデルのハイパーパラメータを最適化するのに Optuna を使っている人も多いと思います。最適化目標(深層学習のロスや RMSE など)を決め、探索空間を適当に設定するだけでいい感じにパラメータを求めてくれるので便利ですね。ところで、Optuna にお…
先日、PDB ファイルから読んだタンパク質座標データを元に、コンタクトマップを numpy でミリ秒オーダーで計算する方法を書きました。 PDB ファイルを読み込みコンタクトマップをミリ秒で計算する - luggage baggage コンタクトマップとは、3次元空間内に存…
タンパク質の構造解析をする際、各アミノ酸残基が近接しているかどうかを記述するコンタクトマップが役立つ場合があります。通例、コンタクトマップは各アミノ酸の Cα の三次元座標を用いて、互いの距離が一定以下(8Åとすることが多い)であれば近接してい…
Albumentations で TypeError: __init__() got an unexpected keyword argument 'keypoint_params' が出る場合の対処
深層学習で画像認識系のタスクを解くとき、画像データセットに対する augmentation が重要となる場合が多いです。ランダムクロップ、フリップ、リサイズ、回転、ブラーリング等々。このような定型的な処理をする際、私は Albumentations をよく使います。Git…
Python でデータ分析をする際、pandas.DataFrame を基本的な道具として使うことは多いと思います。また、DataFrame の各カラムは pandas.Series で自然に表現されており、新しいカラムを Series として書いた上で、DataFrame に追加することもあるでしょう(…
重複を含む配列があり、各々の要素に対してスコアが付随している時、スコアの大きい順に最大 N 個のユニークな要素を取得してランキングを作成する、というのを numpy.unique を使ってやる小ネタです。
この記事では、C++ で OpenCV を使いつつ、cv::Mat に格納されたバイナリデータを protocol buffer に格納しシリアライズする方法を書いていきます。画像認識系のアルゴリズムを作る際、カメラデバイス上では C++ を使ってフレームを取得し、サーバ上の Pyth…
最近になり、TensorFlow の肩に乗って確率的プログラミングをするためのライブラリ TensorFlow Probability (TFP) v0.5 がリリースされました。私は画像系タスクを TensorFlow を使って解くことが多く、特にこの記事では、画像生成系タスクに取り組むための…
お久しぶりです。TensorFlow でモデル学習をする際、便利に使われるのがtf.dataAPI です。以前はtf.contribで提供されていましたが、非常に使い勝手の良い機能だったこともあり、現在は独立したモジュールとして存在しています。様々な形式のデータ入力に対…
お久しぶりです。吉田弁二郎です。Cython という便利なトランスパイラ(言語と言語の中間にある言語のようなもの)があります。Python ライクな文法で書ける Cython スクリプトは C/C++ コードに変換・コンパイルされた後に Python から呼び出し可能で、C/C+…
こんにちは。Python には標準的なデータ型に加えていくつかの便利な型が用意されています。特に collections モジュールには、以前記事に書いた deque や、今回取り上げる defaultdict が格納されています。通常、辞書型のデータ d にデフォルト値を設定しな…
こんにちは。吉田弁二郎です。タイトルにある Upsert とは、Update or Insert のことです。あるテーブルにデータを insert しようとするとき、ユニーク制約が効いているキーが過去データのものと重複して insert できない場合、update に切り替える処理のこ…
こんにちは。吉田弁二郎です。先日タスクスケジューラを Python で実装することがあり、深さ優先探索の方針で作業を進める必要がありました。その際、リストの先頭からデータを取り出し先頭にデータを入れる、ということをやったのですが、デフォルトの list…
こんにちは。吉田弁二郎です。先日(5月5日)、pandas の最新版 0.20.1 がリリースされました。agg/transformメソッドがgroupbyしなくても使えるようになり、10倍以上高速な I/O を実現する feather-format が(試験的に)導入され、スライスの際に頻繁に利…
こんにちは。吉田弁二郎です。 前置き 最近、TensorFlow のインストールは pip により簡単にできるようになりました。一方で GPU 環境の整備(CuDNN の準備等)が相変わらず面倒だと思うことも多く、GPU 自体の進歩も早いのでオンプレ環境に手を出すのも少し…
こんにちは。吉田弁二郎です。ipython コンソールや jupyter notebook をお使いの方は、起動時の自動処理設定ができることをご存知かもしれません。具体的には、 ~/.ipython/profile_default/startupに置かれたスクリプトが起動時に自動的に読み込まれます。…
こんにちは。吉田弁二郎です。だいぶ間が空いてしまいました。小ネタの紹介です。Python 実行環境を管理するために pyenv を使う方も多いのではないかと思います。私は Anaconda のバージョンを複数入れるのに使っています。ところが、 conda create -n new_…
こんにちは。吉田弁二郎です。今回は、web 開発の主力言語の一つとなっている Ruby の文法について、Python との違いをまとめます。文法の完全な紹介を目指すのではなく、特に紛らわしい項目の差分に注目していきます。そのため、Ruby 独自の文法的な事項(m…
こんにちは。吉田弁二郎です。Python でデータ分析をする際には pandas を使うのが標準的です。特に、通常はデータを横持ちで格納しているDBから抽出してクロス集計をするというような時には、pandas.pivot_table を使うと便利ですね。最近この関数がうまく…
こんにちは。吉田弁二郎です。有給消化中です。前回、混合ポアソン分布に対して変分ベイズ法を適用し、実際に学習が行われた様子を見ました。 yoshidabenjiro.hatenablog.comところで、推定した分布が真の分布とどの程度異なっているのか、やはり定量的に把…
明けましておめでとうございます。吉田弁二郎です。前回の記事yoshidabenjiro.hatenablog.comで、混合ポアソン分布の変分ベイズ更新式を導出しました。今回は、これらを実装してアルゴリズムの動作を確認していきます。
こんにちは。吉田弁二郎です。Python で文字列を扱うのにはちょっとした工夫がいることが多いです。私がこの前つまずいたのは、¥ (円マーク)をある文字列の中で置換するにはどうしたらよいか、ということでした。 例えば、 s = '¥hoge' という文字列があった…