python - InvalidArgumentError:没有注册 OpKernel 来支持 Op 'CudnnRNN'
问题描述
我按照此处提供的步骤操作:https : //www.tensorflow.org/install/gpu 安装适用于我的 gpu 的 tensorflow,并使用 cuDNN SDK 但由于某些原因我仍然无法使用它,我仍然得到这个错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op 'CudnnRNN' used by node sequential/cu_dnnlstm/CudnnRNN (defined at cudrnn.py:27) with these attrs: [input_mode="linear_input", T=DT_FLOAT, direction="unidirectional", rnn_mode="lstm", seed2=0, is_training=true, seed=0, dropout=0]
Registered devices: [CPU, XLA_CPU, XLA_GPU]
Registered kernels:
device='GPU'; T in [DT_DOUBLE]
device='GPU'; T in [DT_FLOAT]
device='GPU'; T in [DT_HALF]
即使 GPU 已注册,但 tensorflow 声称他们找不到 OpKernel。
我在用:
张量流GPU 1.14.0
库达 10.0
Ubuntu 18.04
PS:我可以使用 tensorflow 运行其他代码,通过检查 nvidia-smi 我可以看到 GPU 正在被实际使用。
谁能帮我知道我为什么会遇到这个问题?
这是我要运行的代码:
model = tf.keras.Sequential([
tf.keras.layers.CuDNNLSTM(
3,
return_sequences=False),
tf.keras.layers.Dense(1)
])
model.compile(
optimizer=tf.keras.optimizers.Adam(0.1, decay=0.003),
loss=tf.keras.losses.mse)
model.fit(train_x, train_y, epochs=100, validation_split=0, shuffle=False)
解决方案
您的注册设备显示XLA_GPU
哪个是优化的编译器,但与GPU
您使用的 tensorflow 库所期望的不同,
您可以检查几种解决方法,
推荐阅读
- r - 从 96 孔板执行和保存图形
- c++ - 如何在 Qt 中收听“菜单打开”事件?
- reactjs - 测试调用另一个钩子的自定义反应钩子
- google-apps-script - 使用 Google Apps 脚本获取 Telegram Post 的视图
- javascript - JavaScript删除模态onclick并减少计数器
- java - RC2 加密结果在 Python 和 Java 中的差异
- c++ - C++ 派生类无法访问受保护的成员,除非使用默认构造函数
- linux - 在 docker run 中执行 ls /mnt 时没有这样的文件
- javascript - Javascript 分组和排序
- julia - 如何在@formula 宏中使用字符变量?