Python 2 和 3 之间 numpy 数组的 Pickle 不兼容性

2023-11-30

我正在尝试加载链接的 MNIST 数据集here在 Python 3.2 中使用此程序:

import pickle
import gzip
import numpy


with gzip.open('mnist.pkl.gz', 'rb') as f:
    l = list(pickle.load(f))
    print(l)

不幸的是,它给了我错误:

Traceback (most recent call last):
   File "mnist.py", line 7, in <module>
     train_set, valid_set, test_set = pickle.load(f)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128)

然后我尝试在 Python 2.7 中解码 pickled 文件,然后重新编码。所以,我在 Python 2.7 中运行了这个程序:

import pickle
import gzip
import numpy


with gzip.open('mnist.pkl.gz', 'rb') as f:
    train_set, valid_set, test_set = pickle.load(f)

    # Printing out the three objects reveals that they are
    # all pairs containing numpy arrays.

    with gzip.open('mnistx.pkl.gz', 'wb') as g:
        pickle.dump(
            (train_set, valid_set, test_set),
            g,
            protocol=2)  # I also tried protocol 0.

它运行没有错误,所以我在 Python 3.2 中重新运行这个程序:

import pickle
import gzip
import numpy

# note the filename change
with gzip.open('mnistx.pkl.gz', 'rb') as f:
    l = list(pickle.load(f))
    print(l)

但是,它给了我和以前一样的错误。我该如何让它发挥作用?


这是加载 MNIST 数据集的更好方法。


如果您在 python3 中遇到此错误,那么,这可能是 python 2 和 python 3 之间的不兼容问题,对我来说,解决方案是load with latin1编码:

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

Python 2 和 3 之间 numpy 数组的 Pickle 不兼容性 的相关文章

  • Kivy - 文本换行工作错误

    我正在尝试在 Kivy 1 8 0 应用程序中换行文本 当没有太多文字时 一切正常 但如果文本很长并且窗口不是很大 它只是剪切文本 这是示例代码 vbox BoxLayout orientation vertical size hint y
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 当我在 Pandas 中使用 df.corr 时,我的一些列丢失了

    这是我的代码 import numpy as np import pandas as pd import seaborn as sns import matplotlib pyplot as plt data pd read csv dea
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • `list()` 被认为是一个函数吗?

    list显然是内置类型 https docs python org 3 library stdtypes html list在Python中 我看到底下有一条评论this https stackoverflow com a 53645813
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • django-admin.py makemessages 不起作用

    我正在尝试翻译一个字符串 load i18n trans Well Hello there how are you to Hola amigo que tal 我的 settings py 文件有这样的内容 LOCALE PATHS os
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name

随机推荐

  • 如何将 YAML 拆分为多个具有正确名称的文件

    我有一个有效的 YAML name first metadata a name second metadata b name third metadata c 如何在文件中使用单行 AWK 脚本拆分它first yaml second ya
  • 如何在 TypeScript 中索引对象类型?

    我的应用程序收到 消息 我首先验证未知输入以确保它遵循预期的消息格式 const isMessage x gt typeof x object x null typeof x data string 我希望在 TypeScript 中输入此
  • 按字母数字顺序对一组 li 标签进行排序

    我一直在尝试获得一个功能 可以按内容对 li 标签的选择进行排序 但目前无济于事 至少没有速度 准确性 sortasc live click function var liArr Array licontainer children li
  • 错误:运行帖子时标题检查不正确

    我需要从休息调用中获取zip 为了模拟 我使用具有二进制选项的邮递员进行发布 并添加一个带有文件夹和html文件的小zip文件 在模拟期间 我想使用express获取数据并提取zip并放入C盘下的某个文件夹 目前 当我运行以下程序时 这是我
  • 仅在提交时进行 AngularJS 验证

    我想在我的 AngularJS 应用程序中实现一些简单的表单验证 但我不希望它在用户单击表单提交按钮之前显示任何验证错误 我不希望它在我输入时甚至退出字段时进行验证 有没有办法做到这一点 我需要至少编写一个自定义验证器指令 因此它需要与之配
  • 有人能让这个自定义的 AlertDialog 真正起作用吗?

    我问了另一个关于自定义 AlertDialog 的问题here 然后我点击了这个自定义的AlertDialog 发现here import android app AlertDialog import android content Con
  • 如何使用 C# 获取 Excel 下拉列表中的值

    我正在寻找打开和读取 Excel 文件的代码 任何版本的 Excel 包括 2010 我的其中一列有一个下拉菜单 我需要获取下拉列表中所选项目的值 我最终希望将这些值填充到业务对象中 如果有人有一些代码可以分享 请告诉我 我正在使用 C 和
  • 使用VLC的虚拟界面时如何防止显示控制台

    我正在尝试从 Node js 服务器脚本以 虚拟 模式启动 VLC 但是使用child process spawn vlc I dummy 使用 Windows 时 为 VLC 的输出生成一个新的控制台窗口 有没有办法防止这种情况发生并强制
  • 基于文本输入字段创建动态链接

    我正在尝试创建一个文本输入字段 访问者可以在其中输入值 然后单击 执行 或 提交 根据数字 它们将被发送到新页面 例如 如果他们输入 123 并点击提交 则会将他们发送至http www example com page 123 有人可以帮
  • 过滤 OData 中的扩展实体

    如何对 OData 中的扩展实体应用过滤条件 假设我有主实体作为home有字段 homeId StateId CountyID Address 和子实体state as StateId StateName and county as Cou
  • 在 python 中将声音从网站转换为文本

    如何将网站上的声音转换为文本 当我单击网站中的按钮时会播放声音 但我的问题是如何在不使用麦克风的情况下将其转换为文本 仅使用网站和 python import speech recognition as sr r sr Recognizer
  • 回发或初始请求期间的 ASP.NET 事件顺序

    我能否从社区得到一些确认 证明我不会发疯 并且回发期间页面的生命周期实际上与最初请求页面时的顺序不同 如果是这种情况 我们将非常感谢指向概述顺序的参考文献 文章 回发相当于页面生命周期图像会很好 行为略有不同 但顺序相同 在这方面 回发 本
  • java.lang.ClassNotFoundException

    我正在开发一个 java 项目 该项目直到几天前才开始工作 我不确定我对 Eclipse 设置做了什么来控制它 但现在当我尝试运行一些访问 google Finance api 的代码时 我收到了 java lang ClassNotFou
  • 根据下拉列表选择从数据库填充另一个选择下拉列表

    我正在构建一个网站来学习编码 并尝试构建一个工具 用户可以在其中单击包含从数据库中提取的一些类别名称的选择 下拉菜单cat然后将出现另一个选择 其中包含从数据库中提取的子类别名称subcat 这几乎和 Yelp 的一模一样 进入类别 就像
  • 加载多种消息类型的设计模式

    当我浏览时 我遇到了一个关于处理多种消息类型 我关心的是 如何以简洁的方式加载这样的消息 我决定创建一个单独的类 其中的方法每次调用时都会加载一条消息 此方法应创建具体消息类型 例如 AlphaMessage BetaMessage Gam
  • C 编译器错误中的“需要左值”是什么意思? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 include
  • 如何在代码中配置我的Windows服务来访问桌面?

    我创建了一个Windows服务 我想从该服务打开一些基于 Windows 的应用程序 但我的 Windows 服务无法启动桌面应用程序 要启用访问权限 我必须执行以下步骤 打开管理工具 服务 右键单击我的服务并选择 属性 然后在 登录 选项
  • 如何使 clang 编译为 llvm IR

    我希望 clang 将我的 C C 代码编译为 LLVM 位代码而不是二进制可执行文件 我怎样才能做到这一点 如果我有 LLVM 位代码 如何进一步将其编译为二进制可执行文件 我想在编译为二进制可执行文件之前将一些我自己的代码添加到 LLV
  • 为什么 print_r 和 var_dump 在 echo 之前执行

    我正在打电话var dump or print r 在一个具有一个值的数组上echo陈述 echo br br testArray is gt var dump testArray lt br br 这是浏览器中的实际输出 array 0
  • Python 2 和 3 之间 numpy 数组的 Pickle 不兼容性

    我正在尝试加载链接的 MNIST 数据集here在 Python 3 2 中使用此程序 import pickle import gzip import numpy with gzip open mnist pkl gz rb as f l