Neural network 如何为Caffe中的部署输入多个源数据?

Neural network 如何为Caffe中的部署输入多个源数据?,neural-network,deep-learning,caffe,conv-neural-network,pycaffe,Neural Network,Deep Learning,Caffe,Conv Neural Network,Pycaffe,我试图在新数据上测试我的网络,下面是我在deploy.prototxt文件中定义数据的部分 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

我试图在新数据上测试我的网络,下面是我在deploy.prototxt文件中定义数据的部分

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:

我刚刚解决了这个问题,这是我的错误。我使用相同的模板初始化了转换器,我认为我只是通过每次调用创建它的实例,“数据”输入是通用的,我必须创建单独的初始值设定项,它是固定的

    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)

如何定义变压器模式?您传递给变压器的
输入是什么?我刚刚解决了这个问题,这是我的错误。我使用相同的模板初始化了转换器,我认为我只是通过每次调用创建它的实例,“数据”输入是通用的,我必须创建单独的初始值设定项,它是固定的。Thx。请将您的解决方案作为答案发布并接受。这将允许堆栈溢出正确存档此问题。
    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)