文章是:
按照文章作者给的代码教程Tutorial.ipynb比较容易运行,一步一步来就行。我记得之前复现成功过(隐隐约约),这次再次复现又出来好多bug(崩溃)
比较卡的的问题是:编码成功后图片已经生成,但是最后解码这里报错:ValueError: invalid literal for int() with base 2: 'TrueFalseTrueFalseFalseFalseFalseFalse'意思是把字符串解析为二进制整数发生错误。
这里我去参考了关注的一位大佬的解决办法,大佬给了一个解决方案:【精选】【论文复现】steganoGAN项目运行整理_复现stegogan-CSDN博客
按照错误3修改,在项目源代码的utils文件对应位置添加三行代码:
bits = np.array(bits)
bits = 0 + bits
bits = bits.tolist()
这时候仍旧一直重复报错,指示出错的代码行也一直是修改之前的,也就是说我的修改没有生效。我一时找不到原因,这里我又去请教了(评论可以看到我一直在问hh)
原来是运行时调用的utils是虚拟环境中安装的steganogan库中的utils,不是源代码中的utils。(其实仔细看报错提示已经指出文件位置了)
我的路径是上面这个,在虚拟环境里一步一步找就行。找到库里的utils仍旧做相同修改并保存之后(记得在头文件添加import numpy as np),清空输出从头跑就成了,这次可以解码成功了。