首页 > 解决方案 > 如何减少 Tensorlfow/Keras 使用的 CPU 数量?

问题描述

我正在使用 Tensorflow 2.0 的 Keras api。

当调用fit我的 Keras 模型时,它使用所有可用的 CPU。

我想限制使用的 CPU 数量。然而,它在以前版本的 TensorFlow 中的工作方式不能再使用了:

tf.keras.backend.set_session(tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(
       intra_op_parallelism_threads=2, inter_op_parallelism_threads=2)))

AttributeError:模块'tensorflow.python.keras.api._v2.keras.backend'没有属性'set_session'

我怎么能那样做?

标签: pythontensorflowkeras

解决方案


在 TensorFlow 2.0 中,不再有会话。在 Eager Execution 中,直接使用 config API 在程序开始时设置并行度,如下所示。

import tensorflow as tf

tf.config.threading.set_intra_op_parallelism_threads(2)
tf.config.threading.set_inter_op_parallelism_threads(2)
with tf.device('/CPU:0'):
    model = tf.keras.models.Sequential([...

https://www.tensorflow.org/api_docs/python/tf/config/threading


推荐阅读