[Apple M1]:我没有为与节点 {{node RngReadAndSkip}} 兼容的“GPU”设备注册“RngReadAndSkip”OpKernel。注册:设备='CPU'

AIS*_*DEV 7 machine-learning deep-learning tensorflow tensorflow2.0 apple-m1

这是我的代码

random = tf.random.Generator.from_seed(42)
random = random.normal(shape=(2,2))
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

tensorflow.python.framework.errors_impl.NotFoundError: No registered 'RngReadAndSkip' 
OpKernel for 'GPU' devices compatible with node {{node RngReadAndSkip}}. Registered: device='CPU'
Run Code Online (Sandbox Code Playgroud)

小智 15

发生这种情况是因为某些 TF/Keras 高级方法未在 TensorFlow-Metal 中实现。您可以尝试以下解决方法:

with tf.device('/cpu:0'):
    ...  # your code which need RngReadAndSkip low-level method here
Run Code Online (Sandbox Code Playgroud)

接下来你可以正常做其他事情(使用 GPU)。

希望苹果有一天能修复它(还有他们的其他大量错误,lmao)