OpKernel for Variable tf.complex64

Hi

I'd just like to confirm that there is no OpKernel 'AssignVariableOp' for DTYPE=dt_COMPLEX 64 in the tensorflow-metal plugin.

This is the error I'm getting:

And this is some example code that will generate this error:

I've tried a few different ways of getting a Variable of complex64 type on the GPU but none seem to work.

If support is not included in the plugin, will it be added in the future? I'm not familiar enough with C++ to write my own.

Thanks

Edit: I'm on an M1 MacBook Air with 16GB of RAM

Hi, I have the same problem:

tensorflow.python.framework.errors_impl.NotFoundError: No registered 'AssignSubVariableOp' OpKernel for 'GPU' devices compatible with node {{node AssignSubVariableOp}}
	 (OpKernel was found, but attributes didn't match) Requested Attributes: dtype=DT_DOUBLE
	.  Registered:  device='GPU'; dtype in [DT_FLOAT]
  device='GPU'; dtype in [DT_INT64]
  device='GPU'; dtype in [DT_UINT64]
  device='CPU'; dtype in [DT_UINT64]
  device='CPU'; dtype in [DT_INT64]
  device='CPU'; dtype in [DT_UINT32]
  device='CPU'; dtype in [DT_UINT16]
  device='CPU'; dtype in [DT_INT16]
  device='CPU'; dtype in [DT_UINT8]
  device='CPU'; dtype in [DT_INT8]
  device='CPU'; dtype in [DT_INT32]
  device='CPU'; dtype in [DT_HALF]
  device='CPU'; dtype in [DT_BFLOAT16]
  device='CPU'; dtype in [DT_FLOAT]
  device='CPU'; dtype in [DT_DOUBLE]
  device='CPU'; dtype in [DT_COMPLEX64]
  device='CPU'; dtype in [DT_COMPLEX128]
 [Op:AssignSubVariableOp]

I will go back to the macos tensorflow fork while this is being resolved, hope it doesn't take long.

Accepted Answer

the complex and double types are not supported in the TensorFlow Metal Plugin.

OpKernel for Variable tf.complex64
 
 
Q