You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TensorFlow 2.x如何切换CPU与GPU版本?

嘿,刚好我对TensorFlow 2.x的CPU/GPU切换很熟悉,给你几个靠谱的方法,亲测在2.2版本有效!

方法一:通过环境变量全局切换(最简单)

这是最直接的全局切换方式,在导入TensorFlow之前设置环境变量,让TensorFlow“看不到”GPU设备,自然就会使用CPU:

import os
# 禁用所有GPU,强制使用CPU
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

# 之后再导入TensorFlow
import tensorflow as tf

# 验证一下:查看当前使用的设备
print(tf.config.list_physical_devices())

如果想切回GPU版本,只需要去掉这个环境变量设置,或者把值改成GPU的编号(比如'0'对应第一块GPU)。

方法二:用tf.device上下文管理器精细化控制

如果你不需要全局切换,只是想让某一段代码跑在CPU/GPU上,这个方法更灵活:

import tensorflow as tf

# 指定这段代码跑在CPU上
with tf.device('/CPU:0'):
    # 示例:创建张量并计算
    x = tf.constant([1, 2, 3])
    y = tf.constant([4, 5, 6])
    result = tf.add(x, y)
    print(result)

# 这段代码会自动使用GPU(如果可用)
with tf.device('/GPU:0'):
    a = tf.random.normal((1000, 1000))
    b = tf.random.normal((1000, 1000))
    matmul_result = tf.matmul(a, b)
    print(matmul_result.device)

这个方法的好处是可以针对不同代码块指定设备,适合混合使用CPU和GPU的场景。

额外注意事项
  • TensorFlow 2.x开始,官方已经把GPU支持整合到主tensorflow包中了,tensorflow-gpu这个包在2.10版本之后就被废弃了。你用的2.2版本虽然还存在tensorflow-gpu,但其实没必要同时装两个包——只装tensorflow,如果你的环境配置了合适的CUDA和cuDNN,它会自动启用GPU;没有的话就默认用CPU。
  • 之前TensorFlow 1.x里用tf.Session(config=...)的方法在2.x里已经失效了,因为2.x默认是即时执行(Eager Execution)模式,所以上面的两种方法才是2.x的正确姿势。

内容的提问来源于stack exchange,提问作者CyberPlayerOne

火山引擎 最新活动