2017-06-22 47 views
0

在我的圖像檢測Python代碼我用這如何使tensorflow one在c + +?

xlabel = tf.one_hot(1, nClass).eval() 

我現在用C++來獲取模型在iOS工作。 任何人都可以給我的C++代碼片段可以做同樣的事情嗎? 我的目標是得到一個大小爲60的對象。值爲1,關閉值爲0.

+0

您是否檢查過文檔?找到函數的C++版本非常簡單:https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/one-hot。 –

+0

是的,我檢查了文檔,但因爲我是這個新手,我無法弄清楚如何在我的代碼中使用它,我不知道什麼是'tensorflow :: Scope'如何在我的代碼中聲明它,用它。 –

+0

顯示您當前的C++代碼。 –

回答

1

我無法從Tensorflow C++直接API做到這一點,但我找到了解決辦法。如果它可以幫助像我這樣的其他人,它是:

std::vector<float> oneHotVec; 
for(int i = 0; i < 62 ; i++) 
{ 
    if (i == question) 
     oneHotVec.push_back(1.0f); 
    else 
     oneHotVec.push_back(0.0f); 
} 
tensorflow::Tensor z(tensorflow::DT_FLOAT, tensorflow::TensorShape({1, 62})); 
for (auto j = 0; j < 62; j++) 
{ 
    z.matrix<float>().operator()(0, j) = oneHotVec.at(j); 
} 

這裏「z」是張量所需的一個熱矢量。