tensorflow - tensorflow 配置文件解释
问题描述
我使用 tensorflow 配置文件来测试我的模型的推断,这里是配置文件的详细信息。我发现有0,1,2,3
, 四个数字,其中1
和2
用空白填充。1
那么 0-4 是什么意思,为什么和中有空格2
。机器有80核,是不是说推理课只占4核?谢谢。
解决方案
我想每一行对应于每个工作线程来运行操作符。因此,正如您所说,您的推理处理仅占用 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获取信息
推荐阅读
- sql - 从 SQL 查询中测量 ResultSet 的时间性能
- amazon-web-services - S3 批处理操作 - 可以避免 lambda 调用之间的长时间延迟吗?
- ruby-on-rails - 在另一个别名中使用 Ransack 别名
- reactjs - 如何在不使用 React 保持滚动位置的情况下转到另一个页面
- reactjs - 反应变量未更新
- android-ndk - 如何为 android 编译铬版本的 bsdiff
- javascript - 如何在函数中返回从 promise 解析的值?
- webrtc - 如何使用 janus webrtc 将屏幕与视频共享为本地流
- c++ - 从计算着色器更新顶点
- javascript - Node.JS SyntaxError:JSON 中第 20 位的意外标记 i