CancelledError:[_Derived_]RecvAsync 已取消。在谷歌 colab 上运行

Posted

技术标签:

【中文标题】CancelledError:[_Derived_]RecvAsync 已取消。在谷歌 colab 上运行【英文标题】:CancelledError: [_Derived_]RecvAsync is cancelled. Running on google colab 【发布时间】:2021-03-20 06:17:21 【问题描述】:

拟合我的模型时出现以下错误。每 5 个 epoch 后发生一次!

Link to notebook

Tensorflow, Keras, Cuda versions

尝试了以下选项:

    TF_FORCE_GPU_ALLOW_GROWTH=1 更改 cuda 和 keras 版本。

错误:

WARNING:tensorflow:From <ipython-input-21-44f42c6a15c1>:2: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.
Instructions for updating:
Please use Model.fit, which supports generators.
Epoch 1/10
39/39 [==============================] - 10s 248ms/step - loss: 4.7112 - accuracy: 0.1422 - val_loss: 4.2005 - val_accuracy: 0.1601
Epoch 2/10
39/39 [==============================] - 8s 207ms/step - loss: 3.9892 - accuracy: 0.1991 - val_loss: 3.9835 - val_accuracy: 0.1725
Epoch 3/10
39/39 [==============================] - 8s 214ms/step - loss: 3.7736 - accuracy: 0.2169 - val_loss: 3.6771 - val_accuracy: 0.2279
Epoch 4/10
39/39 [==============================] - 8s 211ms/step - loss: 3.5558 - accuracy: 0.2519 - val_loss: 3.5377 - val_accuracy: 0.2499
Epoch 5/10
39/39 [==============================] - 8s 213ms/step - loss: 3.4118 - accuracy: 0.2714 - val_loss: 3.2555 - val_accuracy: 0.2810
Epoch 6/10
---------------------------------------------------------------------------
CancelledError:  [_Derived_]RecvAsync is cancelled.
     [[node broadcast_weights_1/assert_broadcastable/AssertGuard/else/_13/broadcast_weights_1/assert_broadcastable/AssertGuard/Assert/data_1/_74]] [Op:__inference_train_function_11025]

Function call stack:
train_function

【问题讨论】:

这个错误似乎可以通过使用import os os.environ["TF_FORCE_GPU_ALLOW_GROWTH"]="true" 来解决。谢谢! 我也这样做了,但在我的情况下没有运气.. :'( 我在这里遇到了同样的问题 (link)。我以看似随机的顺序得到它。请问:训练数据对你来说总是相同的顺序吗?我开始怀疑模型输入是造成这种情况的原因。 你可以尝试减少batch_size。谢谢 我在使用自定义批处理生成器时使用了 yield...。因此,我重新实现了 Keras 文档中的批处理生成器,这解决了我的问题。将输入传递给我的模型时,我还必须使用 tf.convert_to_tensor()...希望对某人有所帮助... 【参考方案1】:

就我而言,升级 tensorflow 和其他软件包解决了这个问题。我使用了具有以下配置的 anaconda 环境:

    张量流从 v2.3.0 到 v.2.6.0 cudnn 从 v7.6.0 到 8.2.1 cudatoolkit 从 v10.1.168-0 到 11.3.1

【讨论】:

以上是关于CancelledError:[_Derived_]RecvAsync 已取消。在谷歌 colab 上运行的主要内容,如果未能解决你的问题,请参考以下文章

模仿`super`关键字:在实例化期间设置`base`类和`derived`类字段

从基类调用派生类的隐藏(非虚拟)方法

将元类与多重继承结合使用的 TypeErrors

Atl笔记二:BEGIN_COM_MAP

自考新教材-p274_2

在Amazon Redshift中为所有模式授予用户或组的权限