关于mxnet的cpp的整理

MXNet/Gluon 中网络和参数的存取方式

mxnet-ssd

  • get a image
  // resize image
  image.resize(height_, width_);
  int size = image.channels() * image.cols() * image.rows();
  std::vector<float> in_data(size);

  // de-interleave and minus means
  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

  • feature_extract.cpp
    • WaitAll is need when we copy data between GPU and the main memory
// 1
map<string, NDArray> paramters;
NDArray::Load("./model/Inception-BN-0126.params", 0, &paramters);
.....
NDArray::WaitAll();
// 2
mean_img.SyncCopyFromCPU(
NDArray::LoadToMap("./model/mean_224.nd")["mean_img"].GetData(),1 * 3 * 224 * 224);
NDArray::WaitAll();
// 3
auto array = executor->outputs[0].Copy(Context(kCPU, 0));
NDArray::WaitAll();

image-classification/predict-cpp/

猜你喜欢

转载自blog.csdn.net/sda42342342423/article/details/81364265
cpp