Huggingface 的“resume_from_checkpoint”有效吗?

2024-01-08

我目前将我的教练设置为:

training_args = TrainingArguments(
    output_dir=f"./results_{model_checkpoint}",
    evaluation_strategy="epoch",
    learning_rate=5e-5,
    per_device_train_batch_size=4,
    per_device_eval_batch_size=4,
    num_train_epochs=2,
    weight_decay=0.01,
    push_to_hub=True,
    save_total_limit = 1,
    resume_from_checkpoint=True,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_qa["train"],
    eval_dataset=tokenized_qa["validation"],
    tokenizer=tokenizer,
    data_collator=DataCollatorForMultipleChoice(tokenizer=tokenizer),
    compute_metrics=compute_metrics
)

训练结束后,在我的output_dir我有培训师保存的几个文件:

['README.md',
 'tokenizer.json',
 'training_args.bin',
 '.git',
 '.gitignore',
 'vocab.txt',
 'config.json',
 'checkpoint-5000',
 'pytorch_model.bin',
 'tokenizer_config.json',
 'special_tokens_map.json',
 '.gitattributes']

来自文档 https://huggingface.co/docs/transformers/main_classes/trainer#transformers.Trainer.train.resume_from_checkpoint看起来resume_from_checkpoint将从最后一个检查点继续训练模型:

resume_from_checkpoint (str or bool, optional) — If a str, local path to a saved checkpoint as saved by a previous instance of Trainer. If a bool and equals True, load the last checkpoint in args.output_dir as saved by a previous instance of Trainer. If present, training will resume from the model/optimizer/scheduler states loaded here.

但当我打电话时trainer.train()它似乎删除了最后一个检查点并开始一个新的检查点:

Saving model checkpoint to ./results_distilbert-base-uncased/checkpoint-500
...
Deleting older checkpoint [results_distilbert-base-uncased/checkpoint-5000] due to args.save_total_limit

它是否真的从最后一个检查点(即 5000)继续训练,并从 0 开始新检查点的计数(保存 500 步后的第一个检查点 - “checkpoint-500”),或者它只是不继续训练?我还没有找到测试它的方法,文档对此也不清楚。


是的,它有效!当您调用 trainer.train() 时,您隐式地告诉它覆盖所有检查点并从头开始。您应该调用 trainer.train(resume_from_checkpoint=True) 或将resume_from_checkpoint 设置为指向检查点路径的字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Huggingface 的“resume_from_checkpoint”有效吗? 的相关文章

随机推荐

  • C++ math.h abs() 与我的 abs() 相比有什么不同

    我目前正在用 C 编写一些像向量数学类的 glsl 并且我刚刚实现了一个abs 像这样的函数 template
  • 如何使用 Python 模块 Dragonfly 识别语音?

    我一直在试图弄清楚如何使用 Dragonfly 模块 我查看了文档 但似乎不知道如何使用它 我只想能够识别一些短语并根据这些短语采取行动 是的 这个例子将终止 我已经看过这个特定的例子很多了 它缺少一些关键功能 首先是 pythoncom
  • Apache Spark join 操作的扩展能力较差

    我在 Apache Spark 上运行 join 操作 发现没有弱可扩展性 如果有人能解释这一点 我将不胜感激 我创建两个数据帧 a b 和 a c 并通过第一列连接数据帧 我为 一对一 连接生成数据帧值 另外 我使用相同的分区器来避免随机
  • 文本字段在 iOS 模拟器上不显示键盘

    我试图使用基本文本字段在这里构建一个简单的登录屏幕 但我无法让键盘出现在模拟器中 通过物理键盘输入效果很好 但在 iOS 模拟器中没有可见的键盘 我必须明确打开它还是什么 感觉我在这里错过了一些非常基本的东西 buildLoginScree
  • 封闭件损坏 - 请帮我修复它

    in a 相关问题 https stackoverflow com questions 4584397 javascript countdown clock 4584501我已经发布了这段代码 它几乎可以工作 但计数器却不能 我们可以修复它
  • 如何在 OpenVDB 中对网格进行下采样

    OpenVDB中有什么好的方法可以对体素网格进行下采样吗 例如 我有体素大小为 1 0 的网格 8x8x8 我想要获得体素大小为 2 0 的网格 4x4x4 each voxel of new grid is some interpolat
  • CoreAudio - 如何确定播放aac文件的结尾

    我正在 iPhone 上使用 CoreAudio 但我无法找到如何知道歌曲何时播放完毕 我放了一个属性监听器kAudioQueueProperty IsRunning 它在开始播放时有效 但在文件结尾时无效 当我停止 AudioQueue
  • 如何显示api函数的输出?

    抱歉问基本问题 我正在尝试在 QPlainTextWidget 中显示 json 我有 api 函数 它有控制台输出并包含所有需要的数据 看起来像这样 int iperf run server struct iperf test test
  • npm 错误! 403 403 禁止 npm 发布

    我尝试在 npm 上发布公共包 但出现此错误 npm ERR code E403 npm ERR 403 403 Forbidden PUT https registry npmjs org clem b 2fweather Forbidd
  • OSX (XNU) 系统调用的实际记录在哪里?

    我正在浏览系统调用 master https opensource apple com source xnu xnu 4570 71 2 bsd kern syscalls master文件在这里 但根本没有记录 系统调用的文档是否存在 如
  • 谁能解释为什么这种排序不起作用?

    例如 如果我有一个这样的列表 List1 7 6 9 List1 List1 sort list sort 对列表进行就地排序并返回None 所以你实际上将该返回值分配给List1 i e None gt gt gt List1 7 6 9
  • Android Viewpager Tinder 类似 UI,具有 3D 卡堆栈外观

    我正在尝试使用 ViewPager 在 android 中创建一个类似火种的用户界面 我看过这个图书馆 https github com kikoso Swipeable Cards 但我希望在向右滑动后能够看到上一张卡片 因此首选 Vie
  • 如何在 IE 的 google chrome 框架插件中启用文件协议

    我想在带有 chrome 框架的 IE 中打开一个 Html5 页面 但只支持 http 协议 我无法从磁盘打开 html 文件 在注册表路径中HKCU 软件 Google ChromeFrame添加这个键 允许不安全URL 1 DWORD
  • 使用 jQuery 和 AJAX 加载部分页面

    我在页面 A 和 div 上有一个动态链接列表 我希望在其中加载基于 PHP 变量的另一个动态生成的页面 B 的内容 a href loader php id 1 Link 1 a a href loader php id 2 Link 2
  • 如何将 Amazon Redshift 连接到 python

    这是我的 python 代码 我想将我的 Amazon Redshift 数据库连接到 Python 但它在主机中显示错误 谁能告诉我正确的语法 我是否正确传递了所有参数 con psycopg2 connect dbname pg tab
  • 如何获取 CSV 文本文件中特定字段的最大值?

    我的每一行文本文件示例 CSV 逗号分隔 如下 2016 01 10 23 56 07 10 71 47 可以看出 字段 3 4 和 5 是numeric价值观 对于每一行 我只想得到maximum字段值3 and 4 就像是 awk F
  • 如何从命名空间实现函数?

    本质上 这是我的源代码 namespace name int func void int main void name int func void body return 0 现在 我想在不同的地方编写该函数 声明为 int 命名空间 您不
  • 从 multiprocessing.Process 继承的 Python 类的设置值问题

    为什么这段代码 import multiprocessing import time class Bot multiprocessing Process def init self self val 0 multiprocessing Pr
  • 寻找 Expression Blend 设计师 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于寻找 Expression Blend WPF 设计师来执行合同工作有哪些建议 我认为 本地 自由设计师的价格可能是最合理的 但我什至
  • Huggingface 的“resume_from_checkpoint”有效吗?

    我目前将我的教练设置为 training args TrainingArguments output dir f results model checkpoint evaluation strategy epoch learning rat