2017-08-10 8 views
0

mxnetでC++の例を変更しています。私はNDArrayオブジェクトをどのように割り当てるのか分かりません。基本的な文書もありませんが、かなり不快です。C++ apiでNDArrayを使用するには?

私はNDArrayを割り当てようとしますが、インスタンスを宣言することによって、配列をデータで埋めるときにだけデータを割り当てるようには見えません。あれは正しいですか?

// this code snippet does not work  
    NDArray a = NDArray(Shape(10, 20), Context::cpu()); 
    const float *dat = a.GetData(); 
    float result = *dat; // read memory violation 
    result = *(dat + 10); 

// this code snippet works 
    NDArray b = NDArray(Shape(10, 20), Context::cpu()); 
    a.SampleUniform(1.0, 2.0, &b); 
    const float *dat2 = b.GetData(); 
    float result2 = *dat2; // works!! 
    result2 = *(dat2 + 10); 

誰かがC++ APIを使用してネットワークを変更したことはありますか?

+0

サンプルコードはhttps://github.com/apache/incubator-mxnet/tree/master/example/image-classification/predict-cppでしたか? – leezu

答えて

1

第三引数delay_allocがあります:それは偽、あなたのコードが動作します https://github.com/apache/incubator-mxnet/blob/master/cpp-package/include/mxnet-cpp/ndarray.h#L144

セット。

+0

あなたの返事をありがとう、それは動作します! クラスdocs http://mxnet.io/doxygen/classmxnet_1_1NDArray.htmlで不思議の知らず、intellisenseによると、デフォルトは 'True'ですが、コンストラクタのデフォルト引数は 'False'です。 – user2980583

関連する問題