MXNet/Gluon 中网络和参数的存取方式
mxnet-ssd
get a image
image.resize(height_, width_);
int size = image.channels() * image.cols() * image.rows();
std::
vector<float> in_data(size);
unsigned char *ptr = image.ptr();
float *data_ptr = in_data.data();
for (
int i =
0; i < size; i +=
3) {
*(data_ptr++) =
static_cast<
float>(ptr[i]) - mean_r_;
}
for (
int i =
1; i < size; i +=
3) {
*(data_ptr++) =
static_cast<
float>(ptr[i]) - mean_g_;
}
for (
int i =
2; i < size; i +=
3) {
*(data_ptr++) =
static_cast<
float>(ptr[i]) - mean_b_;
}
feature_extract.cpp
WaitAll is need when we copy data between GPU and the main memory
map<string, NDArray> paramters;
NDArray::Load(
"./model/Inception-BN-0126.params",
0, ¶mters);
.....
NDArray::WaitAll();
mean_img.SyncCopyFromCPU(
NDArray::LoadToMap(
"./model/mean_224.nd")[
"mean_img"].GetData(),
1 *
3 *
224 *
224);
NDArray::WaitAll();
auto array = executor->outputs[
0].Copy(Context(kCPU,
0));
NDArray::WaitAll();
image-classification/predict-cpp/