代码之家  ›  专栏  ›  技术社区  ›  crucialoil

Windows 10上Keras的“ValueError:bad marshal data”

  •  2
  • crucialoil  · 技术社区  · 8 年前

    我目前对Windows 10上的Keras有问题。我试着寻找我的问题很多,并尝试了不同的方法,但不幸的是,我还不能解决它。我非常感谢你的帮助!

    我曾试图在Windows 10上的conda env上安装Keras 2.1.1、Tensorflow gpu 1.4.0和Python 3.6(后来我试图用Python 3.5.2创建另一个conda env,但仍然没有成功)。我拿到了 UnicodeDecodeError: 'rawunicodeescape' codec can't decode bytes in position 111-112: truncated \uXXXX 当我试图保存我的模型时。然后我跟着 this 通过添加 replace(b'\\',b'/') 在里面 generic_utils.py 而且效果很好。

    然而,在此之后,我打开另一个文件来加载我的模型,出现了以下错误: ValueError: bad marshal data (unknown type code) (如果它在带有python 3.6的环境中)和 SystemError: unknown opcode (如果它在带有python 3.5.2的环境中)。

    我试图用python 3.6/3.5创建新的环境,用Keras 2.0.8重新安装,并试图更改tensorflow gpu 1.3.0,但没有成功。

    我尝试了以下链接:

    1. https://github.com/fchollet/keras/issues/7297
    2. Encoding error when installing Keras on Windows 10

    有人知道如何修复它或有什么建议吗?提前谢谢你。

    附言:其他信息(不确定是否有用):我正在使用 GTX 1080Ti sublime text 3 .

    1 回复  |  直到 8 年前
        1
  •  1
  •   crucialoil    8 年前

    好的,我找到了解决上述问题的方法。对不起,我的无知。

    这个问题与Keras或张量流问题无关。相反,它与python 3问题有关。Python 3无法解码特殊字符 \u 在Windows上。

    因此,解决方案非常简单:只需将路径更改为绝对路径,例如 'C:/users/.../' 或者移动文件,将文件名更改为其他路径,只要它不包含特殊字符 \u .