【问题标题】:Loading tensorflow checkpoint by skipping the head layer通过跳过头部层加载张量流检查点
【发布时间】:2021-08-11 00:06:43
【问题描述】:

我正在使用模型 (SimCLR) 从图像中学习表示。在预训练时,模型是针对单个虚拟标签进行训练的。现在我想用 8 类数据微调模型。 在将预训练模型检查点加载到尚未经过微调的具有 8 类头的模型时,我遇到了 ValueError。

ValueError: Tensor's shape (2048, 1) is not compatible with supplied shape [2048, 8]

是否有解决方案在加载到检查点之前排除最后一个头层权重以对模型进行微调?


系统信息

  • TensorFlow 版本:2.5.0
  • Python 版本:3.7.3

【问题讨论】:

    标签: python tensorflow tensorflow2.0


    【解决方案1】:

    好吧,为了让您的预训练模型能够成功处理您的新输入,它们需要与它所期望的旧输入(来自旧一维模型)具有完全相同的形状。要让您的 8 类数据与此模型一起使用,您需要更改模型本身以处理 8 个类的输入。这可能需要您编辑模型本身的属性,如果没有代码的可视化,很难准确说出您需要在哪里进行更改。

    【讨论】:

    • 我两次都输入相同尺寸的输入图像。错误来自最终的分类头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2021-09-08
    • 2023-03-23
    • 1970-01-01
    • 2021-04-29
    相关资源
    最近更新 更多