Tensorflow错误:“;ValueError:没有为任何变量提供梯度;
我正在Tensorflow中实现一个车辆重新识别模型 在另一个文件中,我使用Tensorflow错误:“;ValueError:没有为任何变量提供梯度;,tensorflow,keras,Tensorflow,Keras,我正在Tensorflow中实现一个车辆重新识别模型 在另一个文件中,我使用model.save(path)保存了另一个子类模型。在这个文件中,我使用keras.models.load\u model(path)导入它,并将该模型用作子类模型的一部分。我可以确认,该外部模型的培训没有问题 我还在这个文件中创建了一个子类层(ConvexCombination) 我使用一个自定义训练步骤(见train\u step())和一个自定义向前传球(见call()) 我已经读到,这个错误通常是由ImageD
model.save(path)
保存了另一个子类模型。在这个文件中,我使用keras.models.load\u model(path)
导入它,并将该模型用作子类模型的一部分。我可以确认,该外部模型的培训没有问题
我还在这个文件中创建了一个子类层(ConvexCombination)
我使用一个自定义训练步骤(见train\u step()
)和一个自定义向前传球(见call()
)
我已经读到,这个错误通常是由ImageDataGenerator类的错误输出引起的,我正在使用ImageDataGenerator类,但是我不知道这个问题是从哪里产生的
有一件事对于理解这个问题非常有用,那就是传递到train\u step(self,data)
的数据对象是什么?它只是来自ImageDataGenerator的一个批次吗?如果是这种情况,我不确定问题出在哪里
这里可以看到完整的错误和我的代码:我在导入的模型上调用了
model.fit()
,而不是在实际的模型上。clip\u by\u value
是不可微的,这就是你得到无梯度的原因。当我没有在可训练变量中使用它时,情况仍然是这样吗?在我的例子中,我仅在定义可训练变量后应用clip\u by\u value
。如果是这样,谢谢你,我将删除这一行-虽然我已经尝试过了,但不幸的是,我仍然得到了错误。