- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有人可以解释以下 TensorFlow 术语吗
inter_op_parallelism_threads
intra_op_parallelism_threads
或者,请提供指向正确解释来源的链接。
我通过更改参数进行了一些测试,但结果并不一致得出结论。
最佳答案
inter_op_parallelism_threads
和 intra_op_parallelism_threads
选项记录在 source of the tf.ConfigProto
protocol buffer 中.这些选项配置 TensorFlow 用于并行执行的两个线程池,如注释所述:
// The execution of an individual op (for some op types) can be
// parallelized on a pool of intra_op_parallelism_threads.
// 0 means the system picks an appropriate number.
int32 intra_op_parallelism_threads = 2;
// Nodes that perform blocking operations are enqueued on a pool of
// inter_op_parallelism_threads available in each process.
//
// 0 means the system picks an appropriate number.
//
// Note that the first Session created in the process sets the
// number of threads for all future sessions unless use_per_session_threads is
// true or session_inter_op_thread_pool is configured.
int32 inter_op_parallelism_threads = 5;
在运行 TensorFlow 图时有几种可能的并行形式,这些选项提供了一些控制多核 CPU 并行性:
如果你有一个可以在内部并行化的操作,比如矩阵乘法(tf.matmul()
)或归约(例如tf.reduce_sum()
),TensorFlow 将通过在具有 intra_op_parallelism_threads
线程的线程池中调度任务来执行它。因此,此配置选项控制单个操作的最大并行加速。请注意,如果您并行运行多个操作,这些操作将共享此线程池。
如果您的 TensorFlow 图中有许多独立的操作——因为在数据流图中它们之间没有定向路径——TensorFlow 将尝试使用带有 inter_op_parallelism_threads< 的线程池同时运行它们
线程。如果这些操作具有多线程实现,它们将(在大多数情况下)共享同一个线程池以实现操作内并行。
最后,两个配置选项都采用默认值0
,这意味着“系统选择了一个合适的数字”。目前,这意味着每个线程池将在您的机器中的每个 CPU 内核中拥有一个线程。
关于python - inter_op_parallelism_threads 和 intra_op_parallelism_threads 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233635/
有人可以解释以下 TensorFlow 术语吗 inter_op_parallelism_threads intra_op_parallelism_threads 或者,请提供指向正确解释来源的链接。
我一直在尝试在 CPU 集群上运行 keras,为此我需要限制使用的内核数量(它是一个共享系统)。所以为了限制内核数量,我登陆了 this answer .然而,这根本行不通。我尝试使用以下基本代码运
当我在 A2C 中使用 ray 创建 actor 和 learner 时,我应该将 inter_op_parallelism_threads 和 intra_op_parallelism_thread
我是一名优秀的程序员,十分优秀!