将 HuggingFace Trainer 与 Ray Tune 结合使用时,“无法 pickle _thread.RLock 对象”

2023-12-24

我尝试使用TrainerHuggingFace 变压器中的函数来训练模型并使用ray tune用于超参数搜索。我可以在 Google Colab 中运行代码而不会出现错误,但是当我使用远程计算机通过 ssh 运行代码时,会出现错误:

Traceback (most recent call last):
  File "main.py", line 130, in <module>
    backend="ray")
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/transformers/trainer.py", line 1668, in hyperparameter_search
    best_run = run_hp_search(self, n_trials, direction, **kwargs)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/transformers/integrations.py", line 236, in run_hp_search_ray
    **kwargs,
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/tune/tune.py", line 297, in run
    _ray_auto_init()
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/tune/tune.py", line 670, in _ray_auto_init
    ray.init()
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/_private/client_mode_hook.py", line 82, in wrapper
    return func(*args, **kwargs)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/worker.py", line 940, in init
    hook()
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/tune/registry.py", line 197, in flush
    self.references[k] = ray.put(v)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/_private/client_mode_hook.py", line 82, in wrapper
    return func(*args, **kwargs)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/worker.py", line 1597, in put
    object_ref = worker.put_object(value)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/worker.py", line 287, in put_object
    serialized_value = self.get_serialization_context().serialize(value)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/serialization.py", line 331, in serialize
    return self._serialize_to_msgpack(value)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/serialization.py", line 311, in _serialize_to_msgpack
    self._serialize_to_pickle5(metadata, python_objects)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/serialization.py", line 271, in _serialize_to_pickle5
    raise e
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/serialization.py", line 268, in _serialize_to_pickle5
    value, protocol=5, buffer_callback=writer.buffer_callback)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/cloudpickle/cloudpickle_fast.py", line 73, in dumps
    cp.dump(obj)
  File "/cs/research/external/home/zhengzho/.local/lib/python3.6/site-packages/ray/cloudpickle/cloudpickle_fast.py", line 580, in dump
    return Pickler.dump(self, obj)
TypeError: can't pickle _thread.RLock objects

多谢!


这是因为内存跟踪器Trainer用途不可腌制。

在最近的transformer版本(我相信是 4.6 及以上),默认情况下禁用内存跟踪器。

或者您可以通过设置手动禁用它skip_memory_metrics=True在你的TrainingArguments.

See https://github.com/huggingface/transformers/issues/12177 https://github.com/huggingface/transformers/issues/12177

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

将 HuggingFace Trainer 与 Ray Tune 结合使用时,“无法 pickle _thread.RLock 对象” 的相关文章

  • 为什么 .setGeometry() 不改变 QWidget 实例的大小?

    我想使用 QWidget 更改 QPushButton 的大小 setGeometry https doc qt io qtforpython 5 PySide2 QtWidgets QWidget html PySide2 QtWidge
  • 如何在Python中循环并存储自变量中的值

    我对 python 很陌生 所以这听起来可能很愚蠢 我进行了搜索 但没有找到解决方案 我在 python 中有一个名为 ExcRng 的函数 我可以对该函数执行什么样的 for 循环 以便将值存储在独立变量中 我不想将它们存储在列表中 而是
  • python - 是否可以扩展 xml-rpc 可以序列化的事物集?

    我看到几个问题询问如何发送numpy ndarray通过 xml rpc 调用 这不能开箱即用 因为正如 xml rpc 中所述docs https docs python org 2 library xmlrpclib html 有一组固
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • python 中分割字符串以获得一个值?

    需要帮助 假设我在名为 input 的变量中有一个字符串 Sam Person name kind input split 通过执行上述操作 我得到两个具有不同字符串 Sam 和 Person 的变量 有没有办法只获取第一个值 name S
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • 可以在 TensorFlow 中使用排名相关作为成本函数吗?

    我正在处理偶尔充满异常值的极其嘈杂的数据 因此我主要依靠相关性来衡量我的神经网络的准确性 是否可以明确使用诸如等级相关性 斯皮尔曼相关系数 之类的东西作为我的成本函数 到目前为止 我主要依赖 MSE 作为相关性的代理 我现在面临三个主要障碍
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 为什么 Python 中的“pip install”会引发语法错误?

    我正在尝试使用 pip 安装软件包 我试着跑pip install从Python shell 但我得到了SyntaxError 为什么我会收到此错误 如何使用 pip 安装软件包 gt gt gt pip install selenium
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • 如何使用Python的super()来更新父值?

    我对继承很陌生 之前所有关于继承和 Python 的 super 函数的讨论都有点超出我的理解 我当前使用以下代码来更新父对象的值 usr bin env python test py class Master object mydata
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • Python - 如何查询定义方法的类?

    我的问题有点类似于this one https stackoverflow com questions 5520580 how do you get all classes defined in a module but not impor
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 全局变量是 None 而不是实例 - Python

    我正在处理Python 中的全局变量 代码应该可以正常工作 但是有一个问题 我必须使用全局变量作为类的实例Back 当我运行应用程序时 它说 back is None 这应该不是真的 因为第二行setup 功能 back Back Back

随机推荐

  • 如何通过 Objective C 上传文件?

    我想问一个关于 iPhone 上的 Objective C 的问题 我想上传一个文件 实际上我将所有数据存储在 NSString 中 到服务器 但是 我不知道该怎么做 我查过Apple Developer的网站 我知道有一个函数叫做conn
  • 在sql server中将字符串转换为日期

    我如何转换YYYY MM DD 2012 08 17 到 SQL Server 中的约会 我在帮助页面上没有看到这种格式 http msdn microsoft com en us library ms187928 aspx http ms
  • Java 中的 Mysql 连接:用户 @ localhost 的访问被拒绝

    我无法连接到数据库 但我不知道为什么 因为用户名和密码是正确的 并且我可以在本地通过 phpmyadmin 连接 Class forName com mysql jdbc Driver Setup the connection with t
  • 如何实现数据表“分组依据”?

    我想为我的数据表实现 分组依据 有人有什么建议吗 update 时间 2019 03 09 标签 c net 2 0 您可以在 System Data DataSetExtensions 程序集中使用 linq 扩展 DataTable t
  • 如何找到距直线给定垂直距离处的点?

    我在窗口中画了一条线 然后让用户拖动它 因此 我的线由两点定义 x1 y1 和 x2 y2 但现在我想在线条的末端绘制 帽子 即在每个端点处绘制短垂直线 上限的长度应为 N 像素 因此 要在端点 x1 y1 处绘制 帽 线 我需要找到形成垂
  • react-native-reanimated 不接受以度为单位的旋转值

    我正在学习 reanimated 因为它在 UI 线程上工作 并且我想实现旋转动画 以度数旋转 如 45 度 不起作用并提示错误 那么如何在react native reanimation v1 version 1 中实现旋转动画呢 也许你
  • 无法使用 mongodb 插件版本 3.0.3 运行 Grails 应用程序

    我正在尝试将我的 mongodb 插件从 2 0 1 升级到 3 0 3 但是我不断收到以下错误 java lang NoClassDefFoundError com mongodb AggregationOptions at java l
  • spring security如何检索用户名[重复]

    这个问题在这里已经有答案了 可能的重复 使用 Spring Security 时 获取 bean 中当前用户名 即 SecurityContext 信息的正确方法是什么 https stackoverflow com questions 2
  • “奇怪的重复模板模式”的实际用途

    的一些实际用途是什么 奇怪的重复模板模式 http en wikipedia org wiki Curiously Recurring Template Pattern 这 计算类 http en wikipedia org wiki Cu
  • 如何重置 powershell 颜色

    我更改了 powershell 的颜色 现在我无法更改输入文本的颜色 总是yellow 我改变了背景的颜色和文字的颜色 背景颜色已正确更改 但显示文本中的颜色仍然是黄色 我可以做一些事情来重置颜色吗 方法一 CLI 命令 此 CLI 重置控
  • AngularJS reloadOnSearch 不起作用

    执行搜索并导航离开后 我希望用户能够返回到搜索页面 通过在浏览器中返回 并保留当前的搜索参数 我开始意识到 为了做到这一点 必须更新页面 url 以包含有关页面的数据 通过研究 我发现我可以使用更新位置 location并在使用进行更改时强
  • INSERT 触发器带有“ON CONFLICT DO NOTHING”

    我有一个INSERTPostgres 9 5 中的语句 但由于关键冲突 INSERT 有时实际上不会发生 我已经设置ON CONFLICT DO NOTHING在插入 If the INSERT发生了 那么触发器当然会运行 但如果INSER
  • Haskell 版本的 Idris !-表示法(爆炸表示法)

    我最近有幸学习了一些 Idris 我发现非常方便的一件事是 符号 https idris2 readthedocs io en latest tutorial interfaces html highlight do 20notation
  • bash PS1 提示符中的短日期

    您可以在 PS1 配置中使用 d 来显示长日期 即 5 月 18 日星期二 但我怎样才能让它以 18 05 2012 等格式显示呢 尝试包括 D d m Y 您可以使用以下支持的任何时间格式strftime 3
  • 我可以在 Windows 命令行中测试 tesseract ocr 吗?

    我是 tesseract OCR 新手 我尝试将图像转换为 tif 并运行它以查看在 Windows 中使用 cmd 的 tesseract 的输出 但我做不到 你能帮助我吗 将使用什么命令 这是我的示例图片 最简单的 tesseract
  • ocaml 任何类型匹配

    我正在尝试编写一个可以选择将函数作为参数的函数 let xxx extractor fun a gt a yyy 这最终有类型 val xxx extractor a gt a gt c gt 我的目的是让提取器成为一个从结构中提取信息的函
  • 为什么 forEach 应该优于常规迭代器?

    我正在读书爱彼迎 JavaScript 指南 https github com airbnb javascript 有一个特别的说法 说 不要使用迭代器 更喜欢 JavaScript 的高阶函数 而不是像 for in 或 for of 这
  • 查找 imapi2 com 对象的 uuid/headers 或让 __uuidof 在 mingw 上工作

    我正在尝试从 mingw 项目访问 imapi2 com 对象 我试图遵循视觉工作室的例子 我在 Microsoft SDK 7 1 中找到了 imapi2 头文件 但它们似乎没有 uuid 我看到的示例是在创建对象时使用 uuidof 查
  • 为什么我的广播接收器收到 ACTION USER_PRESENT 两次?

    我的应用程序需要在用户解锁屏幕时进行祝酒 所以我注册了一个BroadcastReceiver获取意图ACTION USER PRESENT在清单中 如下所示
  • 将 HuggingFace Trainer 与 Ray Tune 结合使用时,“无法 pickle _thread.RLock 对象”

    我尝试使用TrainerHuggingFace 变压器中的函数来训练模型并使用ray tune用于超参数搜索 我可以在 Google Colab 中运行代码而不会出现错误 但是当我使用远程计算机通过 ssh 运行代码时 会出现错误 Trac