Pytorch 報錯:“SyntaxError: non-default argument follows default argument”
調試代碼如下:
def load_network(self, network, network_label, save_dir='', which_premodel): save_filename = '33_net_%s_epdn_pretrained_%s_dataset.pth' % (network_label, which_premodel) if not save_dir: save_dir = self.save_dir save_path = os.path.join(save_dir, save_filename) if not os.path.isfile(save_path): print('%s not exists yet!' % save_path) if network_label == 'G': raise('Generator must exist!')
出現如下報錯:SyntaxError: non-default argument follows default argument
原因是將帶默認值的形參 save_dir 放在了不帶默認值 which_premodel 的形參前面,換一下順序即可 (第一行)。
def load_network(self, network, network_label, which_premodel, save_dir=''):
save_filename = '33_net_%s_epdn_pretrained_%s_dataset.pth' % (network_label, which_premodel)
if not save_dir:
save_dir = self.save_dir
save_path = os.path.join(save_dir, save_filename)
if not os.path.isfile(save_path):
print('%s not exists yet!' % save_path)
if network_label == 'G':
raise('Generator must exist!')
問題解決。