paddle paddle使用GPU

  1. 安装GPU版本paddlepaddle   
   pip install paddlepaddle-gpu     

       2.设置使用GPU

       使用GPU需要将use_gpu参数置为true:

import paddle.v2 as paddle
 
# Initialize PaddlePaddle.
paddle.init(use_gpu = true, trainer_count = 1 )
 
# Configure the neural network.
x = paddle.layer.data(name = 'x' , type = paddle.data_type.dense_vector( 13 ))
y_predict = paddle.layer.fc( input = x, size = 1 , act = paddle.activation.Linear())
 
# Infer using provided test data.
probs = paddle.infer(
     output_layer = y_predict,
     parameters = paddle.dataset.uci_housing.model(),
     input = [item for item in paddle.dataset.uci_housing.test()()])
 
for i in xrange ( len (probs)):
     print 'Predicted price: ${:,.2f}' . format (probs[i][ 0 ] * 1000 )

     3.GPU和CPU的混合使用

可以设置parallel_nn来混合使用GPU和CPU计算网络层的参数。也就是说,你可以将网络配置成某些层使用GPU计算,而其他层使用CPU计算。另一种方式是将网络层划分到不同的GPU上去计算,这样可以减小GPU内存,或者采用并行计算来加速某些层的更新。如果想在网络配置中指定设备的ID号(表示为deviceId),并且加上的命令行参数:--parallel_nn=true

#command line:
paddle train - - use_gpu = true - - parallel_nn = true - - trainer_count = COUNT
 
#network:
fc2 = fc_layer( input = l1, layer_attr = ExtraAttr(device = 0 ), ...)
fc3 = fc_layer( input = l1, layer_attr = ExtraAttr(device = 1 ), ...)
fc4 = fc_layer( input = fc2, layer_attr = ExtraAttr(device = - 1 ), ...)

在本例中,我们假设一台机器上有4个GPU。

  • trainer_count=1:
  • 使用0号GPU计算fc2层。
  • 使用1号GPU计算fc3层。
  • 使用CPU计算fc4层。

  • trainer_count=2:

  • 使用0号和1号GPU计算fc2层。
  • 使用2号和3号GPU计算fc3层。
  • 使用CPU两线程计算fc4层。


你可能感兴趣的:(学习材料)