现在我想从内存中加载图像,然后将其传递给网络进行测试。
所以我写这样的代码(判断https://github.com/benjholla/AndroidPermissionAttributeMapper):
bottom_in.push_back(this->bottom_vec);
caffe::MemoryDataLayer<Dtype> *m_layer_ = (caffe::MemoryDataLayer<Dtype> *)(this->caffe_net.layer_by_name("data").get());
m_layer_->Reset(this->bottom, this->bottom, 1);
this->caffe_net.Forward(bottom_in);
但它核心转储。我检查数据并确保数据传递好。 所以我查看了caffe并在Net class中找到它:
vector<Blob<Dtype>*> net_input_blobs_;
net_input_blobs_的大小为0,所以
net_input_blobs_[i]->CopyFrom(*bottom[i]);
在Net类中的Forward函数出错。
这是关于MemoryDataLayer的原型:
layer {
name: "data"
# type: "ImageSegData"
type: "MemoryData"
top: "data"
top: "label"
# top: "data_dim"
include {
phase: TEST
}
transform_param {
mirror: false
crop_size: 513
mean_value: 104.008
mean_value: 116.669
mean_value: 122.675
}
memory_data_param {
batch_size: 1
channels: 3
height: 480
width: 640
}
}
我对这个问题感到困惑好几天了,你能给我一些建议或MemoryDataLayer的一些例子吗?