我使用tensorflow配置文件来测试模型的推断,这是配置文件的详细信息。我发现有0,1,2,3
,四个数字,其中1
和2
用空白填充。那么0-4的含义是什么,为什么1
和2
中有空格。
机器有80个核心,这是否意味着推理过程仅占据其中的4个核心?
谢谢。
答案 0 :(得分:0)
我想每一行都对应于每个运行工作程序的工作线程。 因此,您所说的推理处理仅占用4个核心。
时,Tensorflow使用多线程如果图形中有许多独立的图形部分,则可以有效地使用多核。
在以下代码中,图具有许多独立的图部分。因此,探查器中的行数与“ inter_op_parallelism_threads”匹配。
config = tf.ConfigProto(inter_op_parallelism_threads=5, intra_op_parallelism_threads=1)
with tf.device("/cpu:0"):
list_r = []
for i in range(80):
r = tf.random_normal(shape=[100, 100])
list_r.append(r)
v = tf.add_n(list_r)
global_step = tf.train.create_global_step()
hook = tf.train.ProfilerHook(save_steps=1)
increment_global = global_step.assign_add(1)
with tf.train.SingularMonitoredSession(hooks=[hook], config=config) as sess:
sess.run([v, increment_global])
如果您想了解ConfigProto的详细信息,可以从https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/config.proto
获取信息。