yesman
yesman

Reputation: 7829

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) ]]

Upvotes: 10

Views: 14356

Answers (2)

dinuka dilshan
dinuka dilshan

Reputation: 67

If anyone facing this issue in Google colab when running Nvidia styleGAN, Try installing this (!pip install tensorflow-gpu==1.15.2). This worked for me

Upvotes: 0

Lucas Azevedo
Lucas Azevedo

Reputation: 2370

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!

Upvotes: 8

Related Questions