paddle paddle使用GPU
安装GPU版本paddlepaddle pip install paddlepaddle-gpu 2.设置使用GPU 使用GPU需要将use_gpu参数置为true:importpaddle.v2 as paddle # Initialize PaddlePaddle.paddle.init(use_gpu=tr
·
- 安装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层。
更多推荐
所有评论(0)