0

我使用Nvdia 的 StyleGAN2-ada pytorch implementation训练了一个网络。我现在有一个 .pkl 文件。我想在我的网络上使用GANSpace 代码。但是,要将 GANSpace 与自定义模型一起使用,您需要能够为您的模型提供一个检查点,该检查点应该上传到某个地方(他们建议使用 Google Drive)(此处代码中需要检查点)。我不完全确定这是如何工作的或为什么会这样工作,但无论哪种方式,我似乎都需要我的网络的 .pt 文件,而不是我目前拥有的 .pkl 文件。

我尝试按照本教程进行操作。看来 GANSpace 代码实际上提供了一个可以进行这种转换的文件(models/stylegan2/convert_weight.py)。但是,似乎应该存在的文件 convert_weight.py 已被指向整个其他repo的链接所取代。如果我尝试如下运行 convert_weight.py 文件,它会给我以下错误

python content/stylegan2-pytorch/convert_weight.py --repo="content/stylegan2-pytorch/" "content/fruits2_output/00000-fruits2-auto1/network-snapshot-025000.pkl"

ModuleNotFoundError: No module named 'dnnlib'

这是有道理的,因为没有这样的 dnnlib 模块。如果我改为将其更改为在某个有它的地方(此处)查找 dnnlib 模块,就像这样

python content/stylegan2-pytorch/convert_weight.py --repo="content/stylegan2/" "content/fruits2_output/00000-fruits2-auto1/network-snapshot-025000.pkl"

它之前给了我一个错误,说没有安装 TensorFlow(公平地说,它没有安装,因为我使用的是 PyTorch),就像这里报告的这个错误一样。然后我安装了 TensorFlow,但它给了我这个错误。

ModuleNotFoundError: No module named 'torch_utils'

再次与 github 上报道的上一期相同。安装 torch_utils 后,我得到与 SamTransformer 相同的错误(ModuleNotFoundError: No module named 'torch_utils.persistence')。响应是“convert_weight.py 不支持 stylegan2-ada-pytorch”。

有很多我不确定,比如为什么我首先需要将 .pkl 文件转换为 .pt。很多东西似乎都在谈论将 TensorFlow 模型转换为 Pytorch 模型,但我的最初是在 Pytorch 中完成的,那我为什么需要转换它呢?我只需要一种上传我自己的网络以在 GANSpace 中使用的方法——我真的不介意如何,所以任何建议都将不胜感激。

4

1 回答 1

0

长话短说,提供的转换脚本是将权重从 StyleGAN2 的官方 Tensorflow 实现转换为 Pytorch。正如您所提到的,您已经在 Pytorch 中有一个模型,因此转换脚本不起作用是合理的。

而不是 StyleGAN2,您使用了 GANspace 存储库中未提及的 StyleGAN2-Ada。很可能在创建 GANspace 存储库时它还不存在。据我所知,StyleGAN2-Ada 使用与 StyleGAN2 相同的架构,所以只要你手动修改你的pkl文件为需要的pt格式,你应该可以继续设置。

查看转换为 Pytorch的源代码,GANspace 要求pt文件是一个dictwith keys: ['g', 'g_ema', 'd', 'latent_avg']。StyleGAN2-Ada使用以下键保存pkl包含 a 的 adict['G', 'G_ema', 'D', 'augment_pipe']:. 您可以通过加载文件的内容并使用这些键pkl重新保存它们来使事情正常工作。pt

于 2022-02-04T02:34:01.320 回答