pickle.load 无法在我的本地机器上打开(Stylegan2 网络)pickle 模型,但可以在云端打开

pickle.load cannot open up a (Stylegan2 network) pickle model on my local machine, but can on the cloud

Stylegan2 使用网络 pickle 文件来存储 ML 模型。我传输训练好的一个模型,我可以在云服务器上打开它。我一直在使用以下设置从该模型生成图像:

但是,我无法在我的本地计算机上打开网络 pickle 文件,即使我一直在尝试尽可能地复制该云设置。 (我有合适的 GPU hardware/drivers/etc。)

我收到关于泡菜的断言错误。

**Assertion error**: `assert state["version"] in [2,3]`

我觉得这个错误很奇怪,因为网络 pickle 在云上工作——所以它被正确保存了。此外,我的本地设置可以打开其他网络泡菜(即通过 GET 请求从互联网下载的泡菜),让我认为我已经正确设置了 PYTHONPATH 并初始化了 tf.Session。这些是 Stylegan 存储库中列出的先决条件:

"You can import the networks in your own Python code using pickle.load(). For this to work, you need to include the dnnlib source directory in PYTHONPATH and create a default TensorFlow session by calling dnnlib.tflib.init_tf()"

我不确定为什么我不能在一个环境中打开这个泡菜,但在另一个环境中可以。有人对我可以从哪里开始寻找有任何建议吗?

实际上,我是通过打印出哪个版本引发错误来弄清楚的。打印的版本是“4”。我意识到这与 pickle (HIGHEST_PROTOCOL) 匹配,我需要的是 Stylegan2 存储库的最新拉取,其中包括 pickle format_version 4 在他们允许的版本中。