I'm newbie in tensorflow. Btw, how to execute ops in C++ such as tf.initialize_all_variables() or some ops returned by optimizers self.train_op = self.optimizer.apply_gradients(gradients) ? I've tried
init_all_vars_op = tf.initialize_variables(tf.all_variables(), name='init_all_vars_op')
...
tf.train.write_graph(session.graph_def, 'models/', 'graph.pb', as_text=False)
in python and then in C++:
status = session->Run(inputs, {"init_all_vars_op"}, {}, &outputs);
if (!status.ok()) {
std::cout << "tf error: " << status.ToString() << "\n";
return;
}
so I got
tf error: Invalid argument: FetchOutputs init_all_vars_op: output index too large, must be < 0
I've changed
status = session->Run(inputs, {"init_all_vars_op"}, {}, &outputs);
to
status = session->Run(inputs, {}, {"init_all_vars_op"}, &outputs);
And now it works fine.
According to https://www.tensorflow.org/versions/master/api_docs/cc/ClassSession.html#virtual_Status_tensorflow_Session_Run Second parameter is for operations which returns output tensors and third for operations which don't return tensors.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.