JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyToCPU(JNIEnv *env, jobject obj,
                                                                      jobject ndArrayHandle,
                                                                      jfloatArray data,
                                                                      jint size) {
  jclass refLongClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong");
  jfieldID refLongFid = env->GetFieldID(refLongClass, "value", "J");
  jlong ndArrayPtr = env->GetLongField(ndArrayHandle, refLongFid);

  jfloat *pdata = env->GetFloatArrayElements(data, NULL);
  int ret = MXNDArraySyncCopyToCPU((NDArrayHandle)ndArrayPtr, (mx_float *)pdata, size);
  env->ReleaseFloatArrayElements(data, pdata, 0); // copy back to java array automatically
  return ret;
}
Exemplo n.º 2
0
inline void NDArray::SyncCopyToCPU(std::vector<mx_float> *data, size_t size) {
  size = size > 0 ? size : Size();
  data->resize(size);
  MXNDArraySyncCopyToCPU(blob_ptr_->handle_, data->data(), size);
}
Exemplo n.º 3
0
inline void NDArray::SyncCopyToCPU(mx_float *data, size_t size) {
  MXNDArraySyncCopyToCPU(blob_ptr_->handle_, data, size > 0 ? size : Size());
}