0

私は以下の、新しいデータに自分のネットワークをテストしようとしています私のdeploy.prototxtファイルで、私はデータを定義する部分であるCaffeに複数のソースデータを入力するには?

input: "data" 
input_dim: 80 
input_dim: 3 
input_dim: 227 
input_dim: 227 
input: "modaldata" 
input_dim: 80 
input_dim: 3 
input_dim: 227 
input_dim: 227 
input: "clip_markers" 
input_dim: 80 
input_dim: 1 
input_dim: 1 
input_dim: 1 

データは、RGBファイルとmodaldataです(同じファイルのモーダル画像です深さなど)。私は、画像データの両方を変換するPythonスクリプトを使用して

は、変換中しかし、私はエラーを取得する「データ」を変換中にエラーがありません「modaldata」この行で:

modalcaffe_in[ix] = transformer_modal.preprocess('modaldata',inputs) 
And the error I get is: 
..../python/caffe/io.py", line 136, in preprocess 
    self.__check_input(in_) 
 File "/.../python/caffe/io.py", line 115, in __check_input 
    in_, self.inputs)) 
Exception: modaldata is not one of the net inputs: {'data': (80, 3, 227, 227)} 
+0

どのように 'transformer_modal'を定義しますか?変圧器に渡す 'inputs'は何ですか? – Shai

+1

私はちょうどこの問題を解決しました、それは私の間違いでした。私は同じテンプレートを使って変圧器を初期化していましたが、各呼び出しでそれのインスタンスを作成していると思っていましたし、 'データ'入力は汎用で、別々のイニシャライザを作成しなければならなかった。どうも。 – dusa

+0

解決策を回答として投稿し、同意してください。スタックオーバフローでこの質問を適切にアーカイブすることができます。 – Prune

答えて

0

私はちょうどこの問題を解決しました、それは私の間違いでした。私は同じテンプレートを使って変圧器を初期化していましたが、各呼び出しでそれのインスタンスを作成していると思っていましたし、 'データ'入力は汎用で、別々のイニシャライザを作成しなければならなかった。

def initialize_transformer_RGB(image_mean, is_modal): 
     shape = (10*8, 3, 227, 227) # shape = (1*16, 3, 227, 227) 
     transformerRGB = caffe.io.Transformer({'data': shape}) 
     channel_mean = np.zeros((3,227,227)) 
     for channel_index, mean_val in enumerate(image_mean): 
     channel_mean[channel_index, ...] = mean_val 
     transformerRGB.set_mean('data', channel_mean) 
     transformerRGB.set_raw_scale('data', 255) 
     transformerRGB.set_channel_swap('data', (2, 1, 0)) 
     transformerRGB.set_transpose('data', (2, 0, 1)) 
     transformerRGB.set_is_modal('data', is_modal) 
     return transformerRGB 

    def initialize_transformer_modal(image_mean, is_modal): 
     shape = (10*8, 3, 227, 227) # shape = (1*16, 3, 227, 227) 
     transformermodal= caffe.io.Transformer({'modaldata': shape}) 
     channel_mean = np.zeros((3,227,227)) 
     for channel_index, mean_val in enumerate(image_mean): 
     channel_mean[channel_index, ...] = mean_val 
     transformermodal.set_mean('modaldata', channel_mean) 
     transformermodal.set_raw_scale('modaldata', 255) 
     transformermodal.set_channel_swap('modaldata', (2, 1, 0)) 
     transformermodal.set_transpose('modaldata', (2, 0, 1)) 
     transformermodal.set_is_modal('modaldata', is_modal) 
     return transformermodal 


    ucf_mean_RGB = np.zeros((3,1,1)) 
    ucf_mean_modal = np.zeros((3,1,1)) 
    ucf_mean_modal[:,:,:] = 128 
    ucf_mean_RGB[0,:,:] = 103.939 
    ucf_mean_RGB[1,:,:] = 116.779 
    ucf_mean_RGB[2,:,:] = 128.68 

    transformer_RGB = initialize_transformer_RGB(ucf_mean_RGB, False) 
    transformer_modal = initialize_transformer_modal(ucf_mean_modal,True) 
関連する問題