Как я могу заставить Tensor flow train.py использовать все доступные графические процессоры? - PullRequest
0 голосов
/ 05 мая 2018

Я запускаю tenorflow 1.7 на моей локальной машине, которая содержит 2 графических процессора, каждый размером около 8 ГБ.

Обучение (train.py) Обнаружение объекта работает, когда я использую модель fast_rcnn_resnet101_coco. Но когда я попытался запустить 'fast_rcnn_nas_coco', он выдает ошибку 'Resource исчерпан'

Instructions for updating:
Please switch to tf.train.MonitoredTrainingSession
WARNING:tensorflow:From /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/slim/python/slim/learning.py:736: __init__ (from tensorflow.python.training.supervisor) is deprecated and will be removed in a future version.
Instructions for updating:
Please switch to tf.train.MonitoredTrainingSession
2018-05-02 16:14:53.963966: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1423] Adding visible gpu devices: 0, 1
2018-05-02 16:14:53.964071: I tensorflow/core/common_runtime/gpu/gpu_device.cc:911] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-05-02 16:14:53.964083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:917]      0 1 
2018-05-02 16:14:53.964091: I tensorflow/core/common_runtime/gpu/gpu_device.cc:930] 0:   N Y 
2018-05-02 16:14:53.964097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:930] 1:   Y N 
2018-05-02 16:14:53.964566: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7385 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:02:00.0, compute capability: 6.1)
2018-05-02 16:14:53.966360: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 7552 MB memory) -> physical GPU (device: 1, name: GeForce GTX 1070, pci bus id: 0000:03:00.0, compute capability: 6.1)
INFO:tensorflow:Restoring parameters from training/model.ckpt-0
INFO:tensorflow:Restoring parameters from training/model.ckpt-0


Limit:                  7744048333
InUse:                  7699536896
MaxInUse:               7699551744
NumAllocs:                   10260
MaxAllocSize:           4076716032

2018-05-02 16:16:52.223943: W tensorflow/core/common_runtime/bfc_allocator.cc:279] ***********************************************************************************x****************
2018-05-02 16:16:52.223967: W tensorflow/core/framework/op_kernel.cc:1273] OP_REQUIRES failed at depthwise_conv_op.cc:358 : Resource exhausted: OOM when allocating tensor with shape[64,672,9,9] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

Я не уверен !! Если он использует оба графических процессора, потому что он отображается в памяти как «7699536896». Пройдя через train.py, я тоже попробовал

python train.py \
    --logtostderr \
    --worker_replicas=2 \
    --pipeline_config_path=training/faster_rcnn_resnet101_coco.config \
    --train_dir=training

Если доступно 2 GPU, по умолчанию тензорный поток выбирает оба? или нужны какие-то аргументы?

1 Ответ

0 голосов
/ 07 мая 2018

Мы используем номер графического процессора, указанный worker_replicas. В случае с NASNet попробуйте уменьшить размер пакета, чтобы сеть подходила для графического процессора.

...