python - 序列化 Python 对象
问题描述
嗨,我有一个看起来像这样的课程。由于某些下游限制,必须将“数据集”对象保存到单个文件中。通常我会使用sparse.save_npz
和保存一个文件X
并保存一个 json 文件meta_data
(请参阅参考资料save_to_dir
)。我想知道如何将“数据集”保存到单个文件中。我知道酸洗,但当稀疏矩阵变大时,酸洗似乎需要很长时间。有没有一种聪明的方法可以让我获取X.indptr, X.indices, X.data
数组的字节并将它们附加到字节meta_data
并以某种方式保存到单个文件中?或另一种方法?
import scipy.sparse as sparse
import json
from pathlib import Path
class Dataset:
def __init__(self, X: sparse.csr_matrix, meta_data: dict):
self.X = X
self.meta_data = meta_data
def save_to_single_file(self, dest_file: str) -> None:
# TODO
def save_to_dir(self, dir_name: str) -> None:
save_dir = Path(dir_name)
sparse.save_npz(self.X, save_dir / "X.npz")
with open(save_dir / "meta_data.json", "w") as f:
json.dump(self.meta_data, f)
解决方案
推荐阅读
- javascript - 如何在嵌套的json对象数组中获取子ID的直接父ID?
- java - 如何使用 Aspose Words for Androd 获取内联词的超链接边界?
- deep-learning - 层归一化会延迟训练吗?
- swift - UIStackView 中差异元素的大小(宽度/高度)约束覆盖彼此的约束
- azure - 使用 azure java sdk 对 Azure 进行身份验证
- google-colaboratory - 如何在 google colab 中生成代码单元?
- python - 可以在python的discord api中使用相对路径吗?
- c# - 使用带有 Selenium 的 specflow 只运行一次 BeforeTestRun 和 AfterTestRun
- angular - Angular Google Charts:如何为柱形图中的列设置不同的颜色
- javascript - 赋予角色的 Discord.js 命令