2016-05-24 6 views
1

私は、Caffeのモデルトレーニング用の画像データを挿入する方法を示す多くの例を見てきました。Caffeで画像と異なるデータを使用するにはどうすればいいですか?

画像ではないデータを使用してモデルをトレーニングしようとしています。私はそれを行列やベクトル(すべての例)として再構成することができますが、私のCaffeネットワークに読み込ませる方法を理解していません。

私はCaffeがlmdb/hdf5データベースで動作し、さらにPythonデータレイヤーを使用できることを知っています。 私はPythonのデータ層が私の最良の選択であると思います。誰かがPythonで何らかの種類の配列を作成し、Caffeモデルのトレーニングデータとして使用する方法の例を提供できますか?

+0

入力されたPython層に興味がある場合は、[this thread](http://stackoverflow.com/q/34996075/1714410)と関連性があります。 – Shai

答えて

1

単純なベクトル入力用にPythonレイヤーを作成する必要はありません。 HDF5レイヤーは、おそらく最も扱いやすいものです。好みのツールでHDF5ファイルを作成してください(matlabを使用してHDF5を作成する場合はthis、Pythonを使用する場合はthisを参照してください)

どちらの例も非常に簡単です。 MathWorks社のMATLABの例では、あなたに与えよりはHDF5ファイルの作成のバージョンを進めた - 作成したバッチおよびすべてのように - しかし、その心であなただけの同様

store2hdf5(filename, data, labels) %others are optional 

を呼び出す必要があり、Pythonの例も完全乗り越えてあなたが必要とする場合とそうでない場合があります。その核心では、HDF5ファイルを作成するだけです。

import h5py 
with h5py.File('filename.h5', 'w') as f: 
    f['data'] = your_data 
    f['label'] = your_labels 

このように作成されたファイルは、HDF5 Datalayerで次のように簡単に使用できます。使用するHDF5ファイルのリストを含むテキストファイルを作成するだけです。

layer { 
name: "data" 
type: "HDF5Data" 
top: "data" 
top: "label" 
include { 
phase: TRAIN 
} 
hdf5_data_param { 
source: "path_to_text_file_containing_list_of_HDF5_Files.txt" # 
batch_size: 128 
shuffle: true 
} 
} 
+0

パーフェクト!より良い答えを求めることができませんでした...だから、Python層のユースケースは何ですか? – guyov

+0

これは、主にcaffeが提供する機能を超えた機能を記述するために使用されます。私があなたの質問に答えたなら、あなたが答えたとマークしておけばそれは素晴らしいでしょう。 – Prophecies

+0

@Prophecies私はあなたの例に似ていますが、私はエラーがあります:https://stackoverflow.com/questions/47930478/caffe-doesnt-read-the-hdf5-files-for-test-phase-instead-reads- the-path-given-i私が遭遇したすべての例は、「データ」と「ラベル」を使ってトップに名前を付けるが、3つのトップがあるので、特定の名前を作成した。 ?もしそうなら、どうやって3つのトップスの名前をつけることができますか? – dusa

関連する問題