【发布时间】: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