Tensorflow не работает на GPU
Я aldready потратил значительное время, копаясь в переполнении стека и ища ответ, но ничего не смог найти
Привет всем,
я запускаю Tensorflow с Keras сверху. Я 90% уверен, что я установил TensorFlow GPU, есть ли способ проверить, какую установку я сделал?
Я пытался запустить некоторые модели CNN из ноутбука Jupyter, и я заметил, что Keras запускает модель на CPU (проверено диспетчер задач, CPU был на 100%).
Я попытался запустить этот код с веб-сайта tensorflow:
# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# 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(c))
и вот что я получил:
MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.783183: I c:tf_jenkinshomeworkspacerelease-winmwindowspytensorflowcorecommon_runtimesimple_placer.cc:847] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0
b: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.784779: I c:tf_jenkinshomeworkspacerelease-winmwindowspytensorflowcorecommon_runtimesimple_placer.cc:847] b: (Const)/job:localhost/replica:0/task:0/cpu:0
a: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.786128: I c:tf_jenkinshomeworkspacerelease-winmwindowspytensorflowcorecommon_runtimesimple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22. 28.]
[ 49. 64.]]
что для меня показывает, что я работаю на своем процессоре по какой-то причине.
у меня есть GTX1050 (версия драйвера 382.53), я установил CUDA, и Cudnn, и tensorflow установлен без каких-либо проблем. Я также установил Visual Studio 2015, так как он был указан как совместимая версия.
I помните, что CUDA упоминает что-то о несовместимом драйвере, но если я правильно помню, CUDA должен был установить свой собственный драйвер.
Edit: Я запустил команды тезисов, чтобы перечислить доступные устройства
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
и это то, что я получаю
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]
и много предупреждений, как это
2017-06-29 17:32:45.401429: W c:tf_jenkinshomeworkspacerelease-winmwindowspytensorflowcoreplatformcpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
Изменить 2
работает
pip3 install --upgrade tensorflow-gpu
и я get
Requirement already up-to-date: tensorflow-gpu in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages
Requirement already up-to-date: markdown==2.2.0 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:usersgoofynoseappdatalocalprogramspythonpython35libsite-packages (from protobuf>=3.2.0->tensorflow-gpu)
решила: Проверьте комментарии к решению. Спасибо всем, кто помог!
Я новичок в этом, поэтому любая помощь очень ценится! Спасибо.
3 ответов
чтобы проверить, какие устройства доступны для TensorFlow, вы можете использовать это и посмотреть, доступны ли карты GPU:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
изменить Кроме того, вы должны увидеть такие журналы, если используете TensorFlow CUDA version:
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so.*.* locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.*.* locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so.*.* locally
У меня все еще были проблемы с поддержкой GPU даже после правильной установки tensorflow-gpu через pip. Моя проблема заключалась в том, что я установил tensorflow 1.5 и CUDA 9.1 (версия по умолчанию NVIDIA направляет вас), тогда как предварительно скомпилированный tensorflow 1.5 работает с версиями CUDA
https://developer.nvidia.com/cuda-90-download-archive
также не забудьте обновить cuDNN для версии, совместимой с CUDA 9.0 https://developer.nvidia.com/cudnn https://developer.nvidia.com/rdp/cudnn-download
Это может показаться глупым, но попробуйте перезагрузиться. Это помогло мне и некоторым другим людям в GitHub.