2016-01-25 10 views
11

私はcaffeのpythonデータレイヤの例を見つけたいと思っています。 Fast-RCNNにはPythonのデータレイヤーがありますが、私は オブジェクトの検出に慣れていないので、かなり複雑です。
私の質問は、私自身のデータ準備手順を定義する方法を学ぶことができるPythonのデータ層の例ですか?
たとえば、Pythonデータレイヤを定義する方法は、Caffe "ImageDataLayer"よりもはるかに多くのデータを補完します(翻訳、回転など)。 あなたのネットにデータを供給するために、Pythonで実装層:Caffeデータレイヤの例をステップバイステップ

はあなたが"Python"層を使用することができ、非常に

答えて

13

、ありがとうございました。 (type: "Python"レイヤーhereを追加する例を参照してください)。 param_strの詳細については

import sys, os 
sys.path.insert(0, os.environ['CAFFE_ROOT']+'/python') 
import caffe 
class myInputLayer(caffe.Layer): 
    def setup(self,bottom,top): 
    # read parameters from `self.param_str` 
    ... 
    def reshape(self,bottom,top): 
    # no "bottom"s for input layer 
    if len(bottom)>0: 
     raise Exception('cannot have bottoms for input layer') 
    # make sure you have the right number of "top"s 
    if len(top)!= ... 
     raise ... 
    top[0].reshape(...) # reshape the outputs to the proper sizes 

    def forward(self,bottom,top): 
    # do your magic here... feed **one** batch to `top` 
    top[0].data[...] = one_batch_of_data 


    def backward(self, top, propagate_down, bottom): 
    # no back-prop for input layers 
    pass 

this threadを参照してください。
プリフェッチhereを使用して、データ読み込みレイヤーのスケッチを見つけることができます。

+0

ご説明いただきありがとうございます。ここでコードを実装してください。 o(^▽^)o –

+1

実際に私はcaffeのウェブサイトで1つのPRを見つけました。 https://github.com/BVLC/caffe/pull/3471/files –

+0

ここでマルチスレッドを使用してデータを高速に読み込むことはできますか? – curio1729

4

@シャイの答えは素晴らしいです。同時に、私はcaffe-masterの1つのPRで、pythonデータレイヤーに関するもう1つの詳細な例を見つけました。 https://github.com/BVLC/caffe/pull/3471/files この詳細な例が他の誰かに役立つことを願っています。

+0

ありがとう、prototxtファイルの設定方法を知っていますか?実際に私はあなたが尋ねたものを正確にやろうとしていますが、私は混乱しています。コードを見ても 私の問題は、最初にprototxtで画像ソースを定義する方法と、それからどのように異なるパラメータを読み込むかです。 あなたの実装を私どもと共有することができれば幸いです。それは私たちを大いに助けます。 – Breeze

+0

完了:ありがとうございました。私はシャーの答えのカップルに従って、親愛なる神のおかげで、すべてのものを実行する:) – Breeze

関連する問題