正如我们所知,tensorflow的android演示是多线程的。那么我该如何将其更改为单线程模式呢?
现在Java没有办法做到这一点。在local_device.cc中自动选择一个与设备上检测到的内核数量相匹配的操作内并行度值。如果你只是想测试,你可以覆盖那里的值。
操作间并行度目前在移动设备上始终为1——一次只运行一个操作。
更常见的是,在本机代码中,可以在创建Session对象时设置操作内和操作间视差。例如:
tensorflow::SessionOptions options;
tensorflow::ConfigProto& config = options.config;
config.set_intra_op_parallelism_threads(num_threads);
Session session = tensorflow::NewSession(options);
这将覆盖自动拾取的值。有关示例,请参见benchmark_model.cc。
如果你想从Java设置这个,你必须在TensorFlowInferenceInterface.initializeTensorFlow().中添加一个参数
不过,我们很快将切换到Java API,因此访问SessionOptions来设置值会更容易。