github地址:https://github.com/albertpumarola/GANimation
前言:跑深度学习的模型首先确保torch或者tensorflow的版本与发布者一致。出现了错误要去以往的issue看看,基本上能够解决遇到的问题了。
1、修改生成的pkl文件名
在data/prepare_au_annotations.py文件中的第35行。
save_dict(data, os.path.join(args.output_path, "aus"))
修改为
save_dict(data, os.path.join(args.output_path, "aus_openface"))
2、修改生成pkl文件的协议
在data/prepare_au_annotations.py文件中的第24行。
pickle.dump(data, f, pickle.HIGHEST_PROTOCOL)
修改为
pickle.dump(data, f, protocol=0)
3、RuntimeError: the given numpy array has zero-sized dimensions. Zero-sized dimensions are not supported in PyTorch
这是因为EmotioNET的图片库中一部分图片有至少两个人存在,所以通过openface生成的csv文件中会包含两张人脸的信息。但我们只需要一张人脸的信息就够了。
在data/prepare_au_annotations.py文件中的第14行get_data函数中作如下修改。
def get_data(filepaths):
data = dict()
for filepath in tqdm(filepaths):
content = np.loadtxt(filepath, delimiter=', ', skiprows=1)
data[os.path.basename(filepath[:-4])] = content[2:19]
return data
修改为
def get_data(filepaths):
data = dict()
for filepath in tqdm(filepaths):
content = np.loadtxt(filepath, delimiter=', ', skiprows=1)
if content.ndim == 1:
data[os.path.basename(filepath[:-4])] = content[2:19]
if content.ndim == 2:
data[os.path.basename(filepath[:-4])] = content[0][2:19]
return data
4、RuntimeError: cannot unsqueeze empty tensor
这个错误的原因我不太清楚,但修改方法是在data/dataset_aus.py文件的第25行。
while real_img is None or real_cond is None:
修改为
while real_img is None or len(real_cond) != 17
5、TypeError:Cannot handle this data type
发布者表示这是一个torch的版本问题,这个模型是用0.3.1版本写的,如果用torch0.4.1就会有这个错误。
在utils/tb_visualizer.py文件的第27行。
self._writer.add_image(sum_name, image_numpy, it)
修改为
self._writer.add_image(sum_name, np.transpose(image_numpy,(2,0,1)), it)
以上是我遇到过的bug,单独修改某处代码可能不会起作用,最好全部修改。
---------------------
作者:ZT0518
来源:CSDN
原文:https://blog.csdn.net/ZT0518/article/details/83574700
版权声明:本文为博主原创文章,转载请附上博文链接!