【问题标题】:Freezing BERT layers after importing via TF-hub and training them?通过 TF-hub 导入并训练它们后冻结 BERT 层?
【发布时间】:2020-07-09 10:12:42
【问题描述】:

我将在这里描述我的意图。我想通过 tf-hub 函数 hub.module(bert_url, trainable = True) 导入 BERT 预训练模型并将其用于文本分类任务。我计划使用一个大型语料库来微调 BERT 的权重以及一些输入为 BERT 输出的密集层。然后我想冻结 BERT 层,只训练 BERT 之后的密集层。我怎样才能有效地做到这一点?

【问题讨论】:

    标签: tensorflow tensorflow-hub


    【解决方案1】:

    您提到了 Hub 的 TF1 API hub.Module,所以我想您正在编写 TF1 代码并使用与 TF1 兼容的 Hub 资产 google/bert/...,例如 https://tfhub.dev/google/bert_cased_L-12_H-768_A-12/1

    您是否打算在两个训练阶段分别运行您的计划?如果是这样,也许您可​​以在第二次运行中从hub.Module 调用中删除trainable=True。这不会影响变量名称,因此您可以恢复第一次运行的训练结果,包括 BERT 调整后的权重。 (需要说明的是:hub.Module 附带的预训练权重仅用于在训练开始时进行初始化;恢复检查点会覆盖它们。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多