2017-07-20 7 views
0

Ich verwende die Tensorflow C++ API und möchte einen Wert einer Variablen zuweisen. Wenn ich diesen Code ausführe, sehe ich jedoch, dass die Variable selbst niemals mutiert wird. Die Dokumentation besagt, dass dies möglich sein sollte:Tensorflow C++ API zuweisen Variablenwert

Zuweisen: Aktualisieren Sie 'ref', indem Sie 'value' zuweisen.

hier etwas vereinfacht Code:

Scope root = Scope::NewRootScope(); 

auto var = Variable(root, {1}, DT_DOUBLE); 
auto assigned = Assign(root, var, Const(root, {1.0})); 

ClientSession session(root); 

session.Run({}, {assigned}, &out); // out[0] returns 1.0 
session.Run({}, {var}, &out); // gives: Attempting to use uninitialized value Variable 

Antwort

0

ich in der Lage war, mein Problem zu lösen.

Die einfache Lösung war:

Scope root = Scope::NewRootScope(); 

auto var = Variable(root, {1}, DT_DOUBLE); 
auto assigned = Assign(root, var, Const(root, {1.0})); 

ClientSession session(root); 

// initialize first 
session.Run({}, {}, {Operation(assigned.node())}, &out); 
// now run 
session.Run({}, {var}, &out); 
Verwandte Themen