python os.environ gpu_Tensorflow下如何实现多GPU数据并行训练?

方法1

在 Python 代码中,采用以下指令设置需要的 GPU 型号,比如我用 0 号和 1 号 GPU 训练模型(前提是你已经安装了 CUDA 和 CUDNN):

os.environ['CUDA_VISIBLE_DEVICES']= '0, 1'

该方法我测试后,结果显示 0 号 GPU 占据显存约 5%- 20%, 浮动变化,1 号 GPU 占据显存约 60% 。

在单个 GPU 训练的时候,单个 GPU 占显存约 60%。

方法2

在命令行中,假设我要运行 cifar10_multi_gpu_train.py 文件,采用以下设置(官网教程)。

python cifar10_multi_gpu_train.py --num_gpus=2

该方法我试后发现似乎并没有卵用。

方法3

在 Python 代码中,采用以下设置。该方法我没有亲测,代码及结果来自官网。

# Creates a graph.

c = []

for d in ['/device:GPU:2', '/device:GPU:3']:

with tf.device(d):

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])

b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])

c.append(tf.matmul(a, b))

with tf.device('/cpu:0'):

sum = tf.add_n(c) # Creates a session with log_device_placement set to True.

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) # Runs the op.

print(sess.run(sum))

显示以下内容:

Device mapping:

/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K20m, pci bus

id: 0000:02:00.0

/job:localhost/replica:0/task:0/device:GPU:1 -> device: 1, name: Tesla K20m, pci bus

id: 0000:03:00.0

/job:localhost/replica:0/task:0/device:GPU:2 -> device: 2, name: Tesla K20m, pci bus

id: 0000:83:00.0 /

job:localhost/replica:0/task:0/device:GPU:3 -> device: 3, name: Tesla K20m, pci bus

id: 0000:84:00.0 Const_3: /job:localhost/replica:0/task:0/device:GPU:3

Const_2: /job:localhost/replica:0/task:0/device:GPU:3

MatMul_1: /job:localhost/replica:0/task:0/device:GPU:3

Const_1: /job:localhost/replica:0/task:0/device:GPU:2

Const: /job:localhost/replica:0/task:0/device:GPU:2

MatMul: /job:localhost/replica:0/task:0/device:GPU:2

AddN: /job:localhost/replica:0/task:0/cpu:0

[[ 44. 56.]

[ 98. 128.]]

希望有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值