if 语句的语法

1.当我运行代码时,我得到 else: print("no checkpoint found") 2.IndentationError: unindent does not match any external indentation level 3.我试图修复它,但我不能


  def Score(self):

                  return sum(self.reward_window)/(len(self.reward_window)+1.) 


            def Save(self): 

                torch.save({'state_dict' : self.model.state_dict(),

                            'optimizer' : self.optimizer.state_dict,

                            },'last_brain.pth')  


            def Load(self) :  

                if os.path.isfile('last_brain.pth') :  # this is where i get the syntax error


                    print("=> Loading last brain...") 

                    lastbrain = torch.load('last_brain.pth')  

                    self.model.load_state_dict(checkpoint['state_dict'])  

                    self.optimizer.load_state_dict(checkpoint['optimizer']) 

                    print ("done") 

                else: print("no checkpoint found")


慕运维8079593
浏览 82回答 2
2回答

守着一只汪

IMO [1],我认为问题的另一个原因是其他函数定义在与self. 我建议格式类似于:def score(self):  # code for score...  # etc...def save( self ):  # code for save  # etc...def load(self):  # code for load...  # etc...1:我没有经常使用 Python 来了解函数声明方面的所有合法性,但是在大多数语言中,据我所知,在语言设置为代码块的内容中不能有多个函数声明(大括号在 C/C++/Java 中,在 Python 中使用缩进/冒号)。如果有人知道 Python 的例外或适当的合法性,请随时在评论中直接告诉我)

慕婉清6462132

您的代码没有正确缩进。应该是这样的def Score(self):            return sum(self.reward_window)/(len(self.reward_window)+1.) def Save(self):             torch.save({'state_dict' : self.model.state_dict(),                        'optimizer' : self.optimizer.state_dict,                        },'last_brain.pth')  def Load(self) :              if os.path.isfile('last_brain.pth') :                print("=> Loading last brain...")                 lastbrain = torch.load('last_brain.pth')                  self.model.load_state_dict(checkpoint['state_dict'])                  self.optimizer.load_state_dict(checkpoint['optimizer'])                 print ("done")             else: print("no checkpoint found")根据您的缩进,您正在定义Save()and Load()inside Score(),这在 Python 中是不允许的。希望这能解决您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python