hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

来年の手帳は、月間ガントチャートのページがあるものにしよう

今年から使っている陰山手帳。悪くはないけど、後半のページが微妙と判断したので他のものに変えようかどうしようか検討中。1行日記はモレスキンポケットに書く習慣があったからいらない。来年は後半のページにキャッシュフロー管理表がつくけど、これも邪魔*1

便利だったところは、週間ページの右下の11×11の枠。Todoを重要度×緊急度に分けるマトリックスにぴったり。これは来年も使っていきたい。
f:id:deis:20161129185824j:plain

もう一つは、月間ガントチャート。これは手放すことができなくなりそう。
自分の場合は、会社のプロジェクトがいくつか+個人のプロジェクト*2がいくつかといった感じで、数週間にわたる作業をいくつか持っている。それらをまとめて俯瞰できるのは作業計画するのに非常に便利だった。
f:id:deis:20161129185825j:plain

さて、来年の手帳をどうしようか悩んでいる。
陰山手帳でもいいが、やっぱり無駄になるページが多いのが気になる。もう一つの候補は、2年前に使っていた、アバクリ手帳。ノートのページが個性的で結構楽しく使えたので戻るのもいい。が、月間ガントチャートがない。
同じ出版社の Discover Business Professionals' Diary 2017にはガントチャートがあるので、これにしてみるのが現実的か。

気になるのは、ほぼ日手帳。有名。
1日1ページなので、ちょっと使い勝手が違うが一度は使ってみたいと思っている。しかし、ガントチャートはない。ある程度俯瞰して作業を管理するためには週間ページがついているバージョンを選ぶことが必須。カズンにはついている。が、問題は値段。ちょっと手が出ない・・・。


本屋に立ち寄って気になったのは、未来を開く手帳。


本田健 未来を開く手帳2017
本田 健
永岡書店
売り上げランキング: 2,780

少し小ぶりながら、プロジェクト計画のページがある。週間ページにメモ欄がないのが痛いが、今年はうまく使えていなかったので、いらないかも。Todoのマトリックスは土曜日と日曜日の下の方に書けば問題ないか?


迷うが、もう12月。そろそろ決めないと。

*1:Numbersで管理しているし...

*2:というほどのものでもないが・・・

GTX1070が5万円を切ったのでPCを組んでみた

今年発売された、GTX10X0シリーズ。これまでのグラフィックボードに比べてかなりコストパフォーマンス&省電力になっているということで気になっていました。リリース当初は、6万円近くする値段で一旦諦めましたが、最近値段が下がってきたということで15万円程度でなんとかならないかなと検討していました*1

で、ついにGTX1070を積んだグラボが45000円台だったのでAmazonでポチっと・・・。
すぐに届きました。
f:id:deis:20161123123337j:plain

MSI GeForce GTX 1070 ARMOR 8G OC グラフィックスボード VD6083
MSI COMPUTER (2016-07-08)
売り上げランキング: 2,680

こうなると載せるPCを用意しないといけない!というわけで、後追いでパーツを買い込み自作PCを組みました。いまどき自作PCなんて・・・と思っていましたが、実際にパーツを選んだりしていると意外と楽しい。特に今回は設置する場所が決まっていたので、その場所に収まるケースを探すのに苦労しました。ケースも値段が5000円くらいから20000円くらいのものまであるんですね。今回は安い割にファンがたくさんついてくるケースを選びました。
他にSATAケーブル1本とLANケーブルを購入しました。なんとか15万以内で済みました。

f:id:deis:20161123123336j:plain

組み立て後。

f:id:deis:20161123123335j:plain

ケースの説明書がよく分からず、ネットで検索しながらでしたが、なんとか組み終わりました。思っていたより手間も時間もかかりませんでした。昔はもっと配線で苦労したような気がしますが。最近のケースは、その辺も楽ですね。

Windowsをインストール、起動して驚いたのはSSDの速さ。自分のMacはHDDなのでSSDを体験するのは初めてでしたが、ちょっとの投資でこんなに変わるのなら悪くないですね。
MacのHDDもSSDに変えようかな・・・。

さて、大事なのは、このPCで何をやるか、です。
けど、その前に1070のベンチマークが気になる。FF14ベンチマークを実行してみました。

結果↓

*1:基本的に自宅ではMac派です。が、今年始めたUnrealEngineが手持ちのMacだと重いこと、Macの値段が高くてすぐには買い替えできないこと、今のMacRadeonを採用しているのでBlenderでCUDAを使ったレンダリングができないことなどなどの理由で、H/WをアップグレードできるWindowsデスクトップも悪くないかなと。

続きを読む

Pythonでファイル一覧取得&コンソールアプリの呼び出し

Pythonのようなスクリプト言語の用途として、作業の自動化といったキーワードが出てくると思います。
自動化と言っても色々とあると思いますが、今回は画像解析用コンソールアプリに画像を引数に渡して連続動作させるというシチュエーションで役にたった内容を書こうと思います。
まぁコンソールアプリに大量のファイルを処理させる場合は、使えると思います。
内容は、以下の2つです。

  1. フォルダの中のファイル名を取得する
  2. 外部アプリ(コンソールアプリ)を引数ありで呼び出す

ちなみに使用するPythonは、3.5系です。

続きを読む

Chainerのモデル保存の方法

間違えて記載していたので修正しました。

hellkite.hatenablog.com
hellkite.hatenablog.com


Chainerのモデルの保存、pickleを使う方法がよく記載されていて、試してみると動いていたので正しいと思っていました。しかし、GPUで学習したモデルがGPUなしのマシンだと動かないので調べていました。
すると、最近のバージョンでは、serializersを使用するそうです。使ってみると正常に保存でき、これまで不安定だった分類もより正確になりました。今までの書き方だと、optimizerの学習結果がロードされていなかったようです。。

serializersを使うとCPUとGPUの区別なく保存、ロードすることができます。ただ、pickleを使用していたときにmodel.to_cpu()を使ってもGPUのないマシンで動かなかったのは、謎のまま・・・。
動かなかったおかげで正しい(と思われる)方法にたどり着いたので、まぁいいんですが・・・ちょっと気持ち悪い。。

以下のサイトに助けられました。色々変わってるんですね・・・。
studylog.hateblo.jp

Pythonでスクリーンキャプチャ(Python 3.5 & Windows)

Pythonスクリーンショットを取る場合、一番簡単なのは、PillowのImageGrabを使用すること。これは結構アチコチに書いてありましたが、自分の環境では上手く動かなかったのでメモ。

from PIL import ImageGrab
ImageGrab.grab().save('test.png')

from PILは不要って書いてあったけど、自分の環境では必要でした。
ちなみに、Pillow自体は、以下のサイトでダウンロードしたものを使用しています。これを使わないと(pipでインストールすると)ImageGrabが使えないという情報もありましたが、試していないのでわかりません。。

Python Extension Packages for Windows - Christoph Gohlke


ダウンロードしたファイルは、Pillow-3.4.2-cp35-cp35m-win_amd64.whl。ファイル名のcp35っていうのは、Pythonのバージョンを表している?cp36をインストールしようとしたらこんなエラーが出ました。

Pillow-3.4.2-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform.

今回はこちらを参考にしました。
opencv.blog.jp

ChainerをGPUで動かそうとしてハマった話(Windows環境)

CPU上でChainerを動かしたのでそろそろGPUで動かそうとしたところ、環境構築で思いっきりハマりました。まぁ、結論からいうと、

  • Python 3.5の場合は、VisualStudio 2015を入れましょう
  • Pythonは、64bitを使いましょう
  • 各ライブラリのバージョンはちゃんと合わせましょう

この3点に尽きます。

基本的には、このサイトを参考にしました。
qiita.com


ここで書いてあることと違ったのは、VisualStudioのバージョン。
上記のサイトでは、VisualStudio 2013となっていましたが、Python 3.5の場合は2015が必要でした。

また、Pythonは32bit版を入れていたのですが、32bitだとビルドが通りません。Pythonは64bitが必要です。仕方がないので32bit Pythonを消して新たにインストールしなおしました。

CUDAは、7.5のダウンロードページが分かりにくかったので、8.0を入れてしまいました・・・。現在ChainerがサポートしているCUDAのバージョンは、7.5です。8.0を入れた後に気が付いて、7.5を後追いで入れました。

http://docs.chainer.org/en/stable/install.html#install-chainer

始めに公式サイトをちゃんと確認すれば、すんなり入ったのかもしれません。適当に調べてやりだしてハマるパターン・・・。環境構築ってハマると抜けるのに時間がかかりますよね。半日かかりましたが、ちゃんと動いているようです。

ただ、今回入れたのはモバイル版のGPUなので、サンプルでは5~7倍の速度アップにとどまりました。まぁ、丸一日かかっていた学習が1時間足らずで終わると思えば、いい線ですかね。

MacにPythonとChainerの環境を構築した

まっさらなMacにChainerの環境を入れる必要があったので、その時のメモ*1。でも、Macの場合はWindowsのような落とし穴はなかった。

Homebrewを使ってPythonOpenCVを入れる

こちらを参考に、Homebrewを使ってPythonOpenCVを入れる。
blog.ymyzk.com


最近は仮想環境を入れるのが主流のようだが、Chainer用と割り切って、そのまま利用することにした。後で困るかもしれない。。まぁ、その時はその時考えればいい。

OpenCVでハマりそうなのは、インストール後、以下の一行が必要なところか。

brew link opencv3 --force

Chainerのインストール

Chainerは単純にpipで入れるだけ。Macの場合、一部のモデルを除きGPU*2が利用できないから失敗することはほぼない。
機械学習に必要な各種ライブラリをWindowsのときと同様にpipで入れておしまい。

pip install chainer
pip install pandas
pip install matplotlib
pip install scikit-learn

などなど必要なものをいれるだけ。楽。

ただ、Xcodeすら入っていない場合は、Xcodeコマンドラインツールのインストールが必要。これが結構時間かかった。

*1:メモにすらなっていない気がするが。

*2:というかCuda