python - SageMaker 实验:UnpicklingError:无效的加载键,'\x1f'
问题描述
我是数据科学的新手,一直在尝试使用 SageMaker Experiments 创建一个极其简单的模型。使用 SageMaker Experiments,我使用 CSV 数据集训练了一个模型。该模型已输出到 S3,我现在正尝试将该模型加载到 Jupyter Notebook 并对其运行批量转换测试。
但是,在尝试使用 SageMaker 文档中提供的以下代码块时出现错误,该代码块应该可以帮助我导入模型。资源
import pickle as pkl
import tarfile
import xgboost
t = tarfile.open('model.tar.gz', 'r:gz')
t.extractall()
model = pkl.load(open(model_file_path, 'rb'))
错误发生在 pkl.load:
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
<ipython-input-39-81639df86023> in <module>
6 t.extractall()
7
----> 8 model = pkl.load(open(model_file_path, 'rb'))
9
10
UnpicklingError: invalid load key, '\x1f'.
注意: model_file_path 是 'model.tar.gz'
因为我在这方面还很陌生,所以我不知道这是否是我所做的错误,或者 SageMaker Experiments 是否有一些我遗漏的东西。我曾尝试引用包含此错误的其他 stackoverflow 帖子,但它们似乎并不直接适用于我的错误(据我的理解)。(这个和这个)
任何有关 SageMaker Experiments 或 SageMaker v2 SDK 的专家建议都会对这个试图闯入该领域的新手非常有帮助。谢谢!
解决方案
您的问题似乎不是由 SageMaker Experiments 引起的。这要么是您的model.tar.gz
文件本身的问题,要么是您使用pkl
.
model.tar.gz
应该包含模型本身的 pickle 文件。然后,您可以从中提取 pickle 文件model.tar.gz
并将其加载到您的模型对象中。
或者,您可以使用XGBoostModel
该类从model.tar.gz
文件本身创建模型。有关加载预训练 XGBoost 模型的更多详细信息,请参阅以下文档。
我为 AWS 工作,我的意见是我自己的
推荐阅读
- swift - Firebase - 制作您关注的人的帖子的主页(swift)
- javascript - 在 Angular 5 中将 Javascript 对象附加到另一个对象
- oracle - 如何在oracle中构造分层数据
- java - 如何使依赖项在 JVM 语言中使用它们自己的传递依赖项
- c# - C# 将 KeyValue 设置为一行中的变量
- javascript - 折线图显示在 chartjs 组合图中的条形下方
- android - 为什么 webview 标题键在 android 中转换为小写?
- python - 如何找到非卷积模型tensorflow python的概率
- javascript - MongoDB - 即时从 ID 获取数据
- sql-server - 重新安装 SQL Server 2008 的问题