返回

Python:如何将字典存储为csv文件,同时保留变量的性质

发布时间:2022-03-02 20:37:46 281
# node.js

上下文:例如,我正在使用一个字典,它有键,键是字符串,值可以是以下任意值:

  • 不同长度的列表/数组(带浮点数)
  • PyTorch模型

问题:如何将此字典保存为文件类型(可能是csv),以便保留每个变量的性质?

  • 我试图这样做是为了保存ML实验的结果
  • 数据分离对我来说并不重要。例如,培训损失和测试损失可以保存在不同的文件中。

示例代码:这就是我目前正在做的事情。我在其他一些问题上找到了密码。

import pandas as pd
import numpy as np
import csv

# create the dictionary
d = {'training_loss': [1.0, 2.20, 3.1, 4.0], 'testing_loss': [3, 4], 'best_hparams': {'lr': 0.1, 'hidden_units': 16}}

# convert the dictionary to csv file
a_file = open("sample.csv", "w")

writer = csv.writer(a_file)
for key, value in d.items():
    writer.writerow([key, value])
a_file.close()

问题:

  • 这将列表存储为字符串,这意味着我需要执行一些转换代码才能将其转换回列表。例如,训练损失可能存储为“[1.0,2.20,3.1,4.0]”。然而,这是不可行的,因为我正在处理许多类型的列表条目(列表、数组、pytorch张量),所以为每个条目形成规则需要一些时间。

我的想法:

  • 我应该为字典中对应于列表/数组的每个键创建数据帧吗?我可以用迭代的方式来做吗?也许它可以先检查字典中值的类型,如果是列表,则将其设置为一列数据帧。然后每个数据帧都可以转换成csv文件?将数据分离为单独的数据帧(例如,一个用于训练丢失,另一个用于测试丢失等)对我来说不是问题。
  • 上面的要点涉及列表/数组,但如何处理本身就是字典的值呢?如果这些只是超参数值(即不需要数字版本),那么我可以在我的原始帖子中使用这些代码?我同意把它们存储为字符串。
  • 最后,我将如何处理PyTorch模型?我需要研究如何拯救他们吗?

谢谢

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像