У меня была похожая проблема - Керас не использовал мой графический процессор. У меня был установлен tenorflow-gpu согласно инструкции в conda, но после установки керас он просто не указал GPU как доступное устройство. Я понял, что установка keras добавляет пакет tenorflow! Итак, у меня были и пакеты tenorflow, и пакеты tenorflow-gpu. Я обнаружил, что есть пакет keras-gpu. После полной деинсталляции keras, tenorflow, tenorflow-gpu и установки tenorflow-gpu, keras-gpu проблема была решена.
троил gpu версию образа докераhttps://github.com/floydhub/dl-docker с версией keras 2.0.0 и версии tenorflow 0.12.1. Затем я запустил учебник Mnisthttps://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py но понял, что керас не использует GPU. Ниже вывод, который я имею
root@b79b8a57fb1f:~/sharedfolder# python test.py
Using TensorFlow backend.
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
2017-09-06 16:26:54.866833: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-09-06 16:26:54.866855: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-09-06 16:26:54.866863: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-09-06 16:26:54.866870: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-09-06 16:26:54.866876: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
Кто-нибудь может дать мне знать, если есть какие-то настройки, которые нужно сделать, прежде чем keras использует GPU? Я очень новичок во всем этом, поэтому дайте мне знать, если мне нужно предоставить больше информации.
Я установил предварительные условия, как указано настраница
Установите Docker, следуя инструкции по установке для вашей платформы:https://docs.docker.com/engine/installation/Я могу запустить образ докера
docker run -it -p 8888:8888 -p 6006:6006 -v /sharedfolder:/root/sharedfolder floydhub/dl-docker:cpu bash
Только версия для графического процессора: установите драйверы Nvidia на свой компьютер непосредственно из Nvidia или следуйте инструкциямВот, Обратите внимание, что вам не нужно устанавливать CUDA или cuDNN. Они включены в контейнер Docker.Я могу выполнить последний шаг
cv@cv-P15SM:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.66 Mon May 1 15:29:16 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
Только версия для GPU: установите nvidia-docker:https://github.com/NVIDIA/nvidia-docker, следуя инструкциям здесь. Это установит замену для CLI докера. Он заботится о настройке среды драйвера хоста Nvidia внутри контейнеров Docker и некоторых других вещах.Я умею бегать по ступенькамВот
# Test nvidia-smi
cv@cv-P15SM:~$ nvidia-docker run --rm nvidia/cuda nvidia-smi
Thu Sep 7 00:33:06 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 780M Off | 0000:01:00.0 N/A | N/A |
| N/A 55C P0 N/A / N/A | 310MiB / 4036MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
Я также могу запустить команду nvidia-docker для запуска образа, поддерживаемого GPU.
Что я пробовал
Я попробовал следующие предложения ниже
Проверьте, выполнили ли вы шаг 9 этого урока (https://github.com/ignaciorlando/skinner/wiki/Keras-and-TensorFlow-installation ). Примечание. Пути к файлам внутри образа докера могут быть совершенно разными, вам придется как-то их найти.Я добавил предложенные строки в мой bashrc и убедился, что файл bashrc обновлен.
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda-8.0' >> ~/.bashrc
Чтобы импортировать следующие команды в моем файле Python
import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152 os.environ["CUDA_VISIBLE_DEVICES"]="0"
Оба шага, выполненные по отдельности или вместе, к сожалению, не решили проблему. Keras все еще работает с процессорной версией tenorflow в качестве бэкэнда. Тем не менее, я мог бы найти возможную проблему. Я проверил версию своего тензорного потока с помощью следующих команд и нашел две из них.
Это версия процессора
root@08b5fff06800:~# pip show tensorflow
Name: tensorflow
Version: 1.3.0
Summary: TensorFlow helps the tensors flow
Home-page: http://tensorflow.org/
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: tensorflow-tensorboard, six, protobuf, mock, numpy, backports.weakref, wheel
И это версия GPU
root@08b5fff06800:~# pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 0.12.1
Summary: TensorFlow helps the tensors flow
Home-page: http://tensorflow.org/
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: mock, numpy, protobuf, wheel, six
Интересно, что вывод показывает, что keras использует версию 1.3.0 tenorsflow, которая является версией процессора, а не 0.12.1, версией GPU
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K
import tensorflow as tf
print('Tensorflow: ', tf.__version__)
Выход
root@08b5fff06800:~/sharedfolder# python test.py
Using TensorFlow backend.
Tensorflow: 1.3.0
Теперь мне нужно выяснить, как заставить keras использовать версию tenorflow для gpu.