Tensorflow C ++ API赋值变量值

时间:2017-07-20 21:12:56

标签: c++ tensorflow

我正在使用tensorflow c ++ api,并希望为变量赋值。但是,每当运行此代码时,我都会看到变量本身永远不会被变异。文档说这应该是可能的:

  

分配:通过为其指定'value'来更新'ref'。

以下是一些简化的代码:

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

1 个答案:

答案 0 :(得分:2)

我能够解决我的问题。

简单的解决方案是:

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);