赋值前引用局部变量“ probe”

问题描述

嗨,我正在做一个关于探针的深度学习项目, 不断遇到“未绑定的本地错误

def call(self,x):
if self.layer_num == -1: # for network training 
  for (i,layer) in enumerate(self.my_layers):
    if i == 10:
      x = self.dense(x)
      x = layer(x)
      return x       
else:
  for layer in self.my_layers[0:self.layer_num]: 
    x = layer(x)
    x = tf.stop_gradient(x)
    probe = self.my_probes[self.layer_num]
  return probe(x)

然后,在另一个定义下

def probe_training(weights): ...

for layer_num in model.my_probes.keys():
model.layer_num = layer_num
model(X_train[0:Batch])
weights = model.get_weights() 
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-17-168198d8affe> in <module>()
     42 for layer_num in model.my_probes.keys():
     43   model.layer_num = layer_num
---> 44   model(X_train[0:Batch])
     45   weights = model.get_weights()
     46 

1 frames
<ipython-input-16-a9dee0e32692> in call(self,x)
     70         x = tf.stop_gradient(x)
     71         probe = self.my_probes[self.layer_num]
---> 72       return probe(x)
     73 
     74 model = NN()

UnboundLocalError: **local variable 'probe' referenced before assignment**

我认为在定义“探针”之前添加一行 如果self.layer-num == -1 也许可以解决问题,但是//

请帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)