title: TensorFlow: no supported kernel for GPU devices is available
body: <p>The code below is a part of my model and is trying to do linear interpolation, similar to numpy.interp().
  In my model t has shape (64,64). 
  x has shape (91,). 
  y has shape (91,). </p>
  
  <pre><code>def tf_interp(b, x, y):
      xaxis_pad = tf.concat([[tf.minimum(b, tf.gather(x, 0))], x, [tf.maximum(b, tf.gather(x, height_sino - 1))]],
                            axis=0)
      yaxis_pad = tf.concat([[0.0], y, [0.0]], axis=0)
  
      cmp = tf.cast(b &gt; xaxis_pad, dtype=tf.float32)
      diff = cmp[1:] - cmp[:-1]
      idx = tf.argmin(diff)
  
      # Interpolate
      alpha = (b - xaxis_pad[idx]) / (xaxis_pad[idx + 1] - xaxis_pad[idx])
      res = alpha * yaxis_pad[idx + 1] + (1 - alpha) * yaxis_pad[idx]
  
      #def f1(): return 0.0
  
      #def f2(): return alpha * yaxis_pad[idx + 1] + (1 - alpha) * yaxis_pad[idx]
  
      #with tf.device('/gpu:0'):
          #res = tf.cond(pred=tf.is_nan(res), true_fn=f1, false_fn=f2)
  
      return res
  
  
  def tf_interpolation(t, x, y):
      t1 = tf.reshape(t, [-1, ])
      t_return = tf.map_fn(lambda b: tf_interp(b, x, y), t1, dtype=tf.float32, name='t_return')
      t_return = tf.reshape(t_return, [width, height])
      return t_return
  </code></pre>
  
  <p>When I try to define an Adam optimizer to my model. Following error occurs: </p>
  
  <pre><code>Traceback (most recent call last):
    File "net_training_new.py", line 411, in &lt;module&gt;
      sess.run(tf.global_variables_initializer())
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 900, in run
      run_metadata_ptr)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1135, in _run
      feed_dict_tensor, options, run_metadata)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1316, in _do_run
      run_metadata)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1335, in _do_call
      raise type(e)(node_def, op, message)
  tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot assign a device for operation 'gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
  Colocation Debug Info:
  Colocation group had the following types and devices: 
  TensorArrayWriteV3: GPU CPU 
  Add: GPU CPU 
  Range: GPU CPU 
  Const: GPU CPU 
  Enter: GPU CPU 
  StackPushV2: GPU CPU 
  StackV2: GPU CPU 
  TensorArrayV3: GPU CPU 
  TensorArrayScatterV3: GPU CPU 
  StackPopV2: CPU 
  TensorArrayGatherV3: GPU CPU 
  Identity: GPU CPU 
  TensorArrayGradV3: GPU CPU 
  Exit: GPU CPU 
  TensorArrayReadV3: GPU CPU 
  TensorArraySizeV3: GPU CPU 
  
  Colocation members and user-requested devices:
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Const (Const) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc (StackV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2/Enter (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/Const (Const) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/f_acc (StackV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPopV2/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Const_1 (Const) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc_1 (StackV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2_1/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter_1 (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Const (Const) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc (StackV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2 (StackPopV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter_1 (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPopV2 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2_1 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3 (TensorArrayGradV3) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/gradient_flow (Identity) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range/delta (Const) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range/start (Const) 
    generator_model/backprojected/while/t_return/TensorArray_1 (TensorArrayV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2 (StackPushV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2 (StackPushV2) 
    generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3/Enter (Enter) /device:GPU:0
    generator_model/backprojected/while/t_return/while/Exit_1 (Exit) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2_1 (StackPushV2) 
    generator_model/backprojected/while/t_return/TensorArrayStack/TensorArraySizeV3 (TensorArraySizeV3) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range (Range) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPushV2 (StackPushV2) 
    generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3 (TensorArrayGatherV3) 
    generator_model/backprojected/while/t_return/while/add_7 (Add) /device:GPU:0
    generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3 (TensorArrayWriteV3) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3 (TensorArrayScatterV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3 (TensorArrayGradV3) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/gradient_flow (Identity) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayReadV3 (TensorArrayReadV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/tuple/control_dependency (Identity) 
    gradients_1/generator_model/backprojected/while/t_return/while/add_7_grad/tuple/control_dependency_1 (Identity) 
    gradients_1/generator_model/backprojected/while/t_return/while/add_7_grad/tuple/control_dependency (Identity) 
  
  Registered kernels:
    device='GPU'
    device='CPU'
  
       [[Node: gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc = StackV2[_class=["loc:@generator_model/backprojected/while/t_return/TensorArray_1", "loc:@generator_model/backprojected/while/t_return/while/add_7"], elem_type=DT_RESOURCE, stack_name="", _device="/device:GPU:0"](gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Const)]]
  
  Caused by op 'gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc', defined at:
    File "net_training_new.py", line 397, in &lt;module&gt;
      g_trainer = tf.train.AdamOptimizer(learning_rate=lr).minimize(g_loss, var_list=gen_variables)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 414, in minimize
      grad_loss=grad_loss)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/training/optimizer.py", line 526, in compute_gradients
      colocate_gradients_with_ops=colocate_gradients_with_ops)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 494, in gradients
      gate_gradients, aggregation_method, stop_gradients)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 636, in _GradientsHelper
      lambda: grad_fn(op, *out_grads))
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 385, in _MaybeCompile
      return grad_fn()  # Exit early
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gradients_impl.py", line 636, in &lt;lambda&gt;
      lambda: grad_fn(op, *out_grads))
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/tensor_array_grad.py", line 130, in _TensorArrayWriteGrad
      .grad(source=grad_source, flow=flow))
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/tensor_array_ops.py", line 849, in grad
      return self._implementation.grad(source, flow=flow, name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/tensor_array_ops.py", line 241, in grad
      handle=self._handle, source=source, flow_in=flow, name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 6229, in tensor_array_grad_v3
      name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3392, in create_op
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1760, in __init__
      self._control_flow_post_processing()
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1771, in _control_flow_post_processing
      self._control_flow_context.AddOp(self)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2445, in AddOp
      self._AddOpInternal(op)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2466, in _AddOpInternal
      real_x = self.AddValue(x)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2398, in AddValue
      real_val = grad_ctxt.grad_state.GetRealValue(val)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1155, in GetRealValue
      history_value = cur_grad_state.AddForwardAccumulator(cur_value)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1022, in AddForwardAccumulator
      max_size=max_size, elem_type=value.dtype.base_dtype, name="f_acc")
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 5033, in stack_v2
      stack_name=stack_name, name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3392, in create_op
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1718, in __init__
      self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access
  
  ...which was originally created as op 'generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3', defined at:
    File "net_training_new.py", line 365, in &lt;module&gt;
      Gz = generator(LD_placeholder)
    File "net_training_new.py", line 212, in generator
      backprojected = tf.map_fn(lambda s: tf_interpolation(t, x, s[:, i]), radon_filtered, name='backprojected')
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/functional_ops.py", line 423, in map_fn
      swap_memory=swap_memory)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 3224, in while_loop
      result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2956, in BuildLoop
      pred, body, original_loop_vars, loop_vars, shape_invariants)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2893, in _BuildLoop
      body_result = body(*packed_vars_for_body)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/functional_ops.py", line 413, in compute
      packed_fn_values = fn(packed_values)
    File "net_training_new.py", line 212, in &lt;lambda&gt;
      backprojected = tf.map_fn(lambda s: tf_interpolation(t, x, s[:, i]), radon_filtered, name='backprojected')
    File "net_training_new.py", line 79, in tf_interpolation
      t_return = tf.map_fn(lambda b: tf_interp(b, x, y), t1, dtype=tf.float32, name='t_return')
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/functional_ops.py", line 423, in map_fn
      swap_memory=swap_memory)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 3224, in while_loop
      result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2956, in BuildLoop
      pred, body, original_loop_vars, loop_vars, shape_invariants)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 2893, in _BuildLoop
      body_result = body(*packed_vars_for_body)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/functional_ops.py", line 416, in compute
      tas = [ta.write(i, value) for (ta, value) in zip(tas, flat_fn_values)]
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/functional_ops.py", line 416, in &lt;listcomp&gt;
      tas = [ta.write(i, value) for (ta, value) in zip(tas, flat_fn_values)]
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py", line 118, in wrapped
      return _add_should_use_warning(fn(*args, **kwargs))
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/tensor_array_ops.py", line 879, in write
      return self._implementation.write(index, value, name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py", line 118, in wrapped
      return _add_should_use_warning(fn(*args, **kwargs))
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/tensor_array_ops.py", line 278, in write
      name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 7344, in tensor_array_write_v3
      flow_in=flow_in, name=name)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3392, in create_op
      op_def=op_def)
    File "/home/xiehuidong/anaconda3/envs/CtProject/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1718, in __init__
      self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access
  
  InvalidArgumentError (see above for traceback): Cannot assign a device for operation 'gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
  Colocation Debug Info:
  Colocation group had the following types and devices: 
  TensorArrayWriteV3: GPU CPU 
  Add: GPU CPU 
  Range: GPU CPU 
  Const: GPU CPU 
  Enter: GPU CPU 
  StackPushV2: GPU CPU 
  StackV2: GPU CPU 
  TensorArrayV3: GPU CPU 
  TensorArrayScatterV3: GPU CPU 
  StackPopV2: CPU 
  TensorArrayGatherV3: GPU CPU 
  Identity: GPU CPU 
  TensorArrayGradV3: GPU CPU 
  Exit: GPU CPU 
  TensorArrayReadV3: GPU CPU 
  TensorArraySizeV3: GPU CPU 
  
  Colocation members and user-requested devices:
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Const (Const) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc (StackV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2/Enter (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/Const (Const) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/f_acc (StackV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPopV2/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Const_1 (Const) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc_1 (StackV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2_1/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter_1 (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Const (Const) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc (StackV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter (Enter) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2 (StackPopV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Enter_1 (Enter) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPopV2 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2_1 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPopV2 (StackPopV2) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3 (TensorArrayGradV3) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/gradient_flow (Identity) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range/delta (Const) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range/start (Const) 
    generator_model/backprojected/while/t_return/TensorArray_1 (TensorArrayV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2 (StackPushV2) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2 (StackPushV2) 
    generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3/Enter (Enter) /device:GPU:0
    generator_model/backprojected/while/t_return/while/Exit_1 (Exit) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayGrad/TensorArrayGradV3/StackPushV2_1 (StackPushV2) 
    generator_model/backprojected/while/t_return/TensorArrayStack/TensorArraySizeV3 (TensorArraySizeV3) 
    generator_model/backprojected/while/t_return/TensorArrayStack/range (Range) 
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3/StackPushV2 (StackPushV2) 
    generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3 (TensorArrayGatherV3) 
    generator_model/backprojected/while/t_return/while/add_7 (Add) /device:GPU:0
    generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3 (TensorArrayWriteV3) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/TensorArrayStack/TensorArrayGatherV3_grad/TensorArrayScatter/TensorArrayScatterV3 (TensorArrayScatterV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3 (TensorArrayGradV3) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/gradient_flow (Identity) /device:GPU:0
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayReadV3 (TensorArrayReadV3) 
    gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/tuple/control_dependency (Identity) 
    gradients_1/generator_model/backprojected/while/t_return/while/add_7_grad/tuple/control_dependency_1 (Identity) 
    gradients_1/generator_model/backprojected/while/t_return/while/add_7_grad/tuple/control_dependency (Identity) 
  
  Registered kernels:
    device='GPU'
    device='CPU'
  
       [[Node: gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/f_acc = StackV2[_class=["loc:@generator_model/backprojected/while/t_return/TensorArray_1", "loc:@generator_model/backprojected/while/t_return/while/add_7"], elem_type=DT_RESOURCE, stack_name="", _device="/device:GPU:0"](gradients_1/generator_model/backprojected/while/t_return/while/TensorArrayWrite/TensorArrayWriteV3_grad/TensorArrayGrad/TensorArrayGradV3/Const)]]
  </code></pre>
  
  <p>And it says that the problem is on this line</p>
  
  <pre><code>t_return = tf.map_fn(lambda b: tf_interp(b, x, y), t1, dtype=tf.float32, name='t_return') 
  </code></pre>
  
  <p>TensorFlow cannot assign a device for this operation because no supported kernel for GPU devices is available.</p>
  
  <p>I can run it on CPU perfectly. 
  Why I cannot run this line on GPU?</p>