代码之家  ›  专栏  ›  技术社区  ›  NorwegianClassic

从检查点加载TensorFlow模型并更改最后一层,错误

  •  0
  • NorwegianClassic  · 技术社区  · 7 年前

    我已经用TensorFlow在两个类上训练了一个神经网络,现在我想将最后一层从两个输出更改为一个输出,以便进行回归并加载模型。

    很遗憾,我遇到了以下错误:

    信息:tensorflow:向协调器报告了错误:,Assign要求两个张量的形状都匹配。lhs形状=[50,1]rhs形状=[50,2] [[节点:save/Assign\u 11=Assign[T=DT\u FLOAT,\u class=[“loc:@回归/权重”],use\u locking=true,validate\u shape=true,\u device=“/作业:本地主机/副本:0/任务:0/设备:CPU:0”](回归/权重/Adam\u 1,save/RestoreV2\u 11)]]

    我的第二个最后一层有50个节点。

    恢复时,我还排除了最后一层。

    有人知道这里发生了什么吗?

    我正在使用 train_image_classifier.py ,我已经改变了最后一层,以满足我的需要。

    1 回复  |  直到 7 年前
        1
  •  1
  •   NorwegianClassic    7 年前

    解决了它。

    我必须删除 checkpoint 在模型中归档。ckpt文件。

    下一次更改架构后我想使用TensorFlow进行迁移学习的检查表:

    • 使用 inspect_checkpoint.py 验证您的模型。ckpt文件存储了正确的变量。
    • 确保您阅读了正确的模型。ckpt文件。
    • 确保在还原时排除了正确的作用域。
    • 删去 检查点 如有必要。