fc2ブログ
pylearn2のメモ
pylearn2でdenoising autoencodersを使ったDeep Learningの続報です。
データを読み込む際に、

pyln_data = CSVDataset('file name',delimiter='\t',one_hot=True)

とすると、サンプルが行方向にならんで、1列目がクラス分けになっているCSVファイルからデータを構築できたのですが、いつのまにかone_hot引数がなくなっていました。これがあると、たとえば0/1のクラス分けを[1,0]と[0,1]に自動的に変換してくれて便利だったのですが・・・。ドキュメント読むと自動でやってくれるようなことが書いてありますが、やってくれません。仕方無いので、データの構築は、CSVを介さず、こんな感じでやることにしました。

c = cls[idx].values #クラス分けを格納した1DのArray
d = _data.ix[feature_list][idx].T #行がサンプル、列が説明変数のDataFrame
input_data = DenseDesignMatrix(X=d.values, y=c)
input_data.convert_to_one_hot() #この1行でクラス分けがそれぞれVectorに変換される。
with open('{}.pkl'.format(prefix),'w') as f:
pickle.dump(input_data, f)

最後、fine tuningのときのyamlの設定を変えれば、クラス分けが0/1とかの整数になっていても大丈夫なんじゃないかと思いますが、float64を適切にint64にキャスト出来ませんでした的なエラーが出るので、とりあえず、これで回避。
スポンサーサイト



【2015/01/27 16:30】 | 未分類 | トラックバック(0) | コメント(0) | page top↑
| ホーム |