image-processing - pickle.load() 和 pickle.dump() 不一致
问题描述
我正在构建神经网络,应该在修改后的 CIFAR-10 上进行测试。我已用于keras.datasets.cifar10.load_data()
检索数据集,然后使用 dict 在 dict 中对其进行解析pickle.load(datafile, encoding='bytes')
。经过一些修改后,我使用pickle.dump()
.
我注意到生成的文件pickle.dump()
比源文件大 53 个字节。即使我没有进行任何修改并dump()
在load()
生成的文件有额外的 53 个字节后立即使用。看起来结果文件的结构没有被违反,因为我能够从中恢复图像、标签、文件名并且它们是正确的。但是,如果我正在学习和测试神经网络(即使是示例中最简单的 NN !),我的分数也会很差(~0.5)。
- 如果结构一般不改变,请帮助我弄清楚加载倾倒如何影响 NN 的结果?
- 如何加载和转储以保持文件的结构和大小不变?如何避免 load-dump 操作的不一致?
PS看起来像dump()
向文件写入了一些头文件并且如果头文件已经存在则不写入(我尝试两次应用加载转储,但大小仅在第一次应用时发生变化)。但是我怎样才能避免写这个标题呢?
解决方案
如果结构一般不改变,请帮助我弄清楚加载倾倒如何影响 NN 的结果?
如果结构不改变,则对网络没有影响。您可以使用人类可读的输出进行简单转储并比较文件。首先阅读这里的协议。
如何加载和转储以保持文件的结构和大小不变?如何避免 load-dump 操作的不一致?
没有真正的不一致,它可能只是使用另一个协议或附加标头。您不应该处理这些内部问题。如果您想让您的模型具有人类可读性或将其置于版本控制之下,您可以使用 json 或其他人类 readbale 协议。(例如simplejson)
推荐阅读
- sql - 从 BigQuery SQL 的嵌套字段中选择最小值
- typescript - 输入接收动态参数的函数的 returnType
- javascript - 在 TypeScript 中使用 Immutable JS 以正确的方式检索 List/Map 的值
- excel - excel vba代码检查文件夹是否存在,如果不存在则创建文件夹
- swift - UICollectionViewDataSource cellForItemAt 不在 iOS 14 上运行
- git - 自动更新远程 PC 上的文件夹
- php - admin-ajax.php 上的 Wordpress AJAX 请求给出错误 400
- c# - 为网络核心应用程序处理 kubernetes deplyoment.yaml 中连接字符串中的密码
- css - 如何为给定字体的闪亮文本添加漂亮的笔触?
- sql - 将一个数据库表中的记录复制到另一个 Oracle SQL Developer