在tensorflow 1.7.0中,可以使用C ++中的以下代码行获取intra_op池中的线程数:
context->device()->tensorflow_cpu_worker_threads()->num_threads
其中context是类型为OpKernelContext的对象。 (由于https://github.com/tensorflow/tensorflow/blob/7bccde15ce0dd29dce62092a5e9d48ffdc772963/tensorflow/core/common_runtime/local_device.cc#L44)。
如果使用以下python代码设置了相应的ConfigProto:
import tensorflow as tf
conf = tf.ConfigProto(inter_op_parallelism_threads=5, intra_op_parallelism_threads=4)
sess = tf.Session(config=conf)
TF 1.7会将context->device()->tensorflow_cpu_worker_threads()->num_threads
的值输出为4。
TF 1.10输出context->device()->tensorflow_cpu_worker_threads()->num_threads as 1
的值,而与ConfigProto中指定的intra_op_parallelism_threads值无关。
我想知道TF升级是否从1.7.0更改为1.10.0,从而导致这段代码给出不同的值,或者线程池中的线程数确实为1?
其他相关信息: