问题
- Is there way to check I installed
GPU
version ofTensorflow
? - !nvidia-smi
Mon Dec 18 23:58:01 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90 Driver Version: 384.90 |
|-------------------------------+----------------------+----------------------+
| 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 1070 Off | 00000000:01:00.0 On | N/A |
| N/A 53C P0 31W / N/A | 1093MiB / 8105MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1068 G /usr/lib/xorg/Xorg 599MiB |
| 0 2925 G compiz 290MiB |
| 0 3611 G ...-token=11A9F5872A56620B72D1D5DF707CF1FC 200MiB |
| 0 5786 G /usr/bin/nvidia-settings 0MiB |
+-----------------------------------------------------------------------------+
But when I try to detect the list local devices, only CPU
got detected.
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 3303842605833347443
]
Do I have to set something else to use the GPU
for Keras
or Tensorflow
?
回答1:
Use pip install tensorflow-gpu
or conda install tensorflow-gpu
for gpu version of tensorflow. If you are using keras-gpu conda install -c anaconda keras-gpu
command will automatically install the tensorflow-gpu version. Before doing these any command make sure that you uninstalled the normal tensorflow .
回答2:
You may need this shell to config your tensorflow-gpu.
You can run this, if you want to check tensorflow-gpu.
import tensorflow as tf
with tf.device('/gpu:0'):
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)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)
The official documents: Using GPUs.
回答3:
The simple way using tensorflow is:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
With Keras:
from keras import backend as K
K.tensorflow_backend._get_available_gpus()
回答4:
I have the same problem, but everything was in this page couldn't solve my problem. I decided to update my display adapter
. Follow this way:
Control Panel>Device Manager>display adapter>Right click>Update Driver
After that, you must restart your computer, But you should consider that it's not only source of your problem.
回答5:
I ran into the subj when using a proper tensorflow-gpu docker container, and using tensorflow-gpu installed into a virtualenv within the container. Most likely this combination properly shields GPU capabilities, which otherwise are available if running python just in the container without virtualenv.
来源:https://stackoverflow.com/questions/47871236/list-local-device-tensorflow-does-not-detect-gpu