【问题标题】:Tensorflow error: "ValueError: No gradients provided for any variable"Tensorflow 错误:“ValueError:没有为任何变量提供梯度”
【发布时间】:2021-07-11 07:11:56
【问题描述】:

我正在 Tensorflow 中实现车辆重新识别模型。

在一个单独的文件中,我有另一个使用model.save(path) 保存的子类模型。在这个文件中,我使用keras.models.load_model(path) 导入它,并将该模型用作我的子类模型的一部分。我可以确认这个外部模型训练没有问题。

我还在这个文件中创建了一个子类层(ConvexCombination)

我使用自定义训练步骤(见 train_step())和自定义前传(见 call())。

我读到这个错误通常是由我正在使用的 ImageDataGenerator 类的输出形状不正确引起的,但我无法弄清楚这个问题出现在哪里。

有助于理解这个问题的一点是传递给train_step(self, data) 的数据对象是什么?它只是来自 ImageDataGenerator 的一个批次吗?如果是这种情况,我不确定形状的问题出在哪里。

完整的错误和我的代码可以在这里看到:https://vehiclereidjupyternotebook.s3.eu-west-2.amazonaws.com/Full_pipeline-2.html

【问题讨论】:

  • clip_by_value 是不可微分的,这就是你得到 None 梯度的原因。
  • 当我不在可训练变量中使用它时,情况仍然如此吗?就我而言,我只在定义可训练变量后应用clip_by_value。如果是这样,谢谢,我将删除此行 - 尝试过,但不幸的是,我仍然收到错误。

标签: tensorflow keras


【解决方案1】:

我在导入的模型而不是实际模型上调用 model.fit()

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 2020-10-31
    • 2020-09-30
    • 2021-09-08
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多