Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tensorflow can't assign a device for operation

I am trying to run NVidia's face generating demo on my computer. I am using Windows 10. I have downloaded the source, and am trying to follow the steps further down the page. I have installed the latest NVidia drivers for my GTX1060, which should be a device that supports cuda functionality. I have installed the Cuda Toolkit, as well as the cuDNN SDK that TensorFlow requires.

However, when running the import_example.py script I am getting the below error. Can anyone tell me what I am doing wrong?

   2019-03-19 20:16:26.112574: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
    WARNING:tensorflow:From C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
    Instructions for updating:
    Colocations handled automatically by placer.
    Traceback (most recent call last):
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1334, in _do_call
        return fn(*args)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1319, in _run_fn
        options, feed_dict, fetch_list, target_list, run_metadata)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1407, in _call_tf_sessionrun
        run_metadata)
    tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation G_paper_1/Run/G_paper_1/latents_in: {{node G_paper_1/Run/G_paper_1/latents_in}}was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device. The requested device appears to be a GPU, but CUDA is not enabled.
             [[{{node G_paper_1/Run/G_paper_1/latents_in}}]]

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File ".\import_example.py", line 21, in <module>
        images = Gs.run(latents, labels)
      File "C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py", line 668, in run
        mb_out = tf.get_default_session().run(out_expr, dict(zip(self.input_templates, mb_in)))
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 929, in run
        run_metadata_ptr)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1152, in _run
        feed_dict_tensor, options, run_metadata)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1328, in _do_run
        run_metadata)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1348, in _do_call
        raise type(e)(node_def, op, message)
    tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation G_paper_1/Run/G_paper_1/latents_in: node G_paper_1/Run/G_paper_1/latents_in (defined at C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py:508) was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device. The requested device appears to be a GPU, but CUDA is not enabled.
             [[node G_paper_1/Run/G_paper_1/latents_in (defined at C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py:508) ]]

    Caused by op 'G_paper_1/Run/G_paper_1/latents_in', defined at:
      File ".\import_example.py", line 21, in <module>
        images = Gs.run(latents, labels)
      File "C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py", line 645, in run
        out_expr = self.get_output_for(*in_split[gpu], return_as_list=True, **dynamic_kwargs)
      File "C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py", line 508, in get_output_for
        named_inputs = [tf.identity(expr, name=name) for expr, name in zip(in_expr, self.input_names)]
      File "C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py", line 508, in <listcomp>
        named_inputs = [tf.identity(expr, name=name) for expr, name in zip(in_expr, self.input_names)]
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\util\dispatch.py", line 180, in wrapper
        return target(*args, **kwargs)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\ops\array_ops.py", line 81, in identity
        ret = gen_array_ops.identity(input, name=name)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 4537, in identity
        "Identity", input=input, name=name)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 788, in _apply_op_helper
        op_def=op_def)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\util\deprecation.py", line 507, in new_func
        return func(*args, **kwargs)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\ops.py", line 3300, in create_op
        op_def=op_def)
      File "C:\Users\me\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\ops.py", line 1801, in __init__
        self._traceback = tf_stack.extract_stack()

    InvalidArgumentError (see above for traceback): Cannot assign a device for operation G_paper_1/Run/G_paper_1/latents_in: node G_paper_1/Run/G_paper_1/latents_in (defined at C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py:508) was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device. The requested device appears to be a GPU, but CUDA is not enabled.
             [[node G_paper_1/Run/G_paper_1/latents_in (defined at C:\Users\me\Desktop\progressive_growing_of_gans-master\tfutil.py:508) ]]
like image 605
yesman Avatar asked Mar 19 '19 19:03

yesman


1 Answers

Cannot assign a device for operation G_paper_1/Run/G_paper_1/latents_in: {{node G_paper_1/Run/G_paper_1/latents_in}}was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]

have you installed tensorflow or tensorflow-gpu? The later is the one you want if you want to use your GPU.


It might also be a version compatibility issue. First, check if you have your nvidia driver installed with: nvidia-smi, you should get something like this:

Mon Apr 1 12:30:02 2019       
+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.41   Driver Version: 295.41         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  GeForce GTX 580           | 0000:25:00.0  N/A    |       N/A        N/A |
|  54%   70 C  N/A   N/A /  N/A |  25%  383MB / 1535MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+

After that, check which cuda version you have with nvcc --version. Example:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Mon_Apr__1_12:34:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

Ultimately, check if you have compatible versions for the python/tensorflow/cuda installed. For that, using this table as reference seems to work for most people.


Don't forget to reboot after installing the driver!

like image 62
Lucas Azevedo Avatar answered Oct 02 '22 19:10

Lucas Azevedo