Tensorflow 错误:“ValueError:没有为任何变量提供梯度”

时间:2021-04-16 08:57:26

标签: tensorflow keras

我正在 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

1 个答案:

答案 0 :(得分:1)

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