もはやマニアック過ぎて誰にも響かない気がしますが、自分用のメモに。
KerasやPylearn2など、theanoをベースにしているDeep Learningのライブラリを、複数のGPUカードを搭載しているマシンで使おうと思うと、一番簡単なのはプロセスを分けて、それぞれに別のGPUを使ってもらうやり方かと思います。たとえばこんな感じです。
これで、gpu1とか名前変えれば、別のGPU使ってくれるので、おお良いじゃんと思っていたら、どうも調子がわるい。
ちょっと調べて見ると、theanoがコンパイルのために使う一時ディレクトリが、プロセス間で共有され、その都度ロックされている模様。これを解決tするには、実行時に以下の様に設定すればOKです。
GPUごとに名前を変えれば、それぞれのディレクトリを使ってくれます。自動でやってくれてもいいのに・・・とちょっと思いますが、まあ無料で使わせてもらっているので、文句は言えません。 スポンサーサイト
|
データの次元を縮約する方法の1つに、主成分分析(Principle Component Analysis)がありますが、その結果をプロットするコードをメモ。
引数は行が変数、列がサンプルの行列です。事前にサンプルの属性がわかっている場合は、プロットするとき色を変えると分かり易いかも知れません。 IPythonを使っている場合、%matplotlib inlineとすると、結果がブラウザの中に表示されますが、3次元の場合、マウスで角度を変えられません。まあ、inlineにせず、別Windowで表示すれば、通常のmatplotlibの機能として、3Dプロットの角度を変えられますが、ブラウザの中で出来たらカッコいいと思い探してみると、mpld3を発見。 おおカッコいいと思って使ってみるも、3Dには対応していないことが判明。残念。でも、2Dのプロットなら、拡大とか出来て便利です。PCAの話題というより、mpld3が3次元プロットには対応していないというのが結論です。お気をつけください。 |
| ホーム |
|