我在一类神经网络上复习代码。
作者创建了一个@staticmethod
:
@staticmethod
def custom_ocnn_loss(self,nu, w, V):
但稍后在OC_NN
fit
实例方法中,使用类名访问它并传入self
:
model.compile(loss=OC_NN.custom_ocnn_loss(self,nu, w, V), optimizer=opt,metrics=None)
是否有这样做的理由(即创建以self
为参数的@staticmethod
,并在实例方法内部使用类名进行访问(?
在脚本中,custom_ocnn_loss
函数有@staticmethod
装饰器,这意味着它不是一个实例方法,而是一个静态方法。变量self
可能有不同的建议,但在调用custom_ocnn_loss
函数时,会将self
变量传递给它