ヘッダーナビゲーション

2017年1月31日火曜日

Python3で、cStringIOやStringIOでエラーが起きた時の対処法

問題

Python3ではcStringIOやStringIOが存在しないようで、使用しているプログラムをPython3で実行しようとすると以下のようにエラーが起きます。
import cStringIO
では、
ImportError: No module named 'cStringIO'
のようなエラーが。

import StringIO
では、
ImportError: No module named 'StringIO' 
のようなエラーが当然ですが出てきます。

解決策

対処法としては、対象プログラム中で
import io as cStringIO
もしくは、
from io import StringIO
のように記述し、cStringIOやStringIOをimport している箇所をコメントアウトすれば動くかと思います。

2017年1月30日月曜日

PythonでCtrl-C押した際の処理を書ける様にする

はじめに

PythonでDeep Learning回してて、Ctrl-Cでプログラムを終了させる際、押したらモデル保存してくれる様にしたかったので調べました。

解決策

Ctrl-C押して、送信されたSIGINTシグナルを掴めるイベントハンドラを作成します。
signal.signal(signal.SIGINT, handler)
のように、handler関数を、SIGINTシグナルが来た際のイベントハンドラとして登録します。
そして、handler関数の中にやりたい処理を書けば、Ctrl-Cを押した際に実行されます。
Chainerなら
chainer.serializers.save_npz(なんちゃら
と書いて於けばモデルを保存してくれます。

注意点としては、みんな大好きkillコマンドを使用する際は、指定をしなければSIGINTシグナルではなくSIGTERMシグナルなので、間違えないでくださいね。
参考: http://equj65.net/tech/linuxprocessgroup/

実装


ソースは以下の様になります。
whileループ中でCtrl-Cを押されると、叫びます。

2017年1月28日土曜日

Gaussian Processを試してみる

Scikit-learnのGaussian Processで遊んでいたのですが、Scikit-learn公式ドキュメントではv0.17におけるシンプルな回帰と可視化のプログラムの記述が無さそうだったので、書いておきます。最新バージョンのv0.18対応のものは記述されているのですが、v0.17においてそのままでは動かないようです。スクロールすると下まで見れます。
Gaussian Process(ガウス過程)に興味の有る方は、http://www.ism.ac.jp/~daichi/lectures/H26-GaussianProcess/gp-lecture1-matsui.pdfが分かりやすいので、参考にしてください。

2017年1月23日月曜日

VRを入門から始めるのにおすすめの本

はじめに

近年、注目を集めている技術の1つにVirtual Realityというものが存在します。
Virtual Reallity (VR) とは、目や耳を覆うハードウェアを装着し、 利用者の物理状態を計測した上で、 その物理 状態に合わせて外界の情報を遮断した上で情報提示を行うことで、 没入感のある情報提示を行うシステムのことです。

VRの市場は近年急速に拡大しており、Goldman Sachsが出している報告書によると、2025年には1億台出荷されるとの見込みのことです。

問題点

近年注目を集めているVRなのですが、VRに用いられている技術は、情報処理デバイスと人間の相互作用の仕方に対する研究であるHuman Computer Interaction, 没入感を出すための正確な位置推定にはRoboticsやComputer Visionの研究や, 違和感を感じさせないための低遅延なレンダリングにはComputer Graphicsが絡んでおり, 多岐にわたる研究分野が関係しています。

そのため、VRに関係しそうな、確度の高い情報を収集しようとすると、多岐にわたって調査する必要があり、時間と手間がひどくかかると感じていました。

そこで、VRに関して包括的にまとめられている、論拠のしっかりしている資料が無いかとさがしていました。日本の書籍・論文などでは、近年急速に進歩しているVR技術に関して、包括的かつ最新の情報が論理的に主張されているものを発見できませんでした。(あれば是非知りたいので教えてください)。

解決策

調べていたところ、英語の書籍なのですが、イリノイ大学のSteven.M.La Valle教授が書いていらっしゃるVIRTUAL REALITYという本が非常に良いように感じました。内容は、人間の知覚情報処理から始まり、レンダリングや、VRで良く用いられるトラッキングの仕組み、インタラクション、VRシステムの評価についてなど多岐に渡っています。 Steven.M.La Valle教授は2014年8月までOculus, incでhead scientistを勤めていた方だそうです。

現在ホームページで無料で公開されているようなので、興味の有る方は是非読んで見てみると良いかと思います。