Python 局部变量';探头';分配前参考
嗨,我正在做一个关于探测器的深度学习项目, 继续运行到“未绑定本地错误”Python 局部变量';探头';分配前参考,python,deep-learning,neural-network,local-variables,probe,Python,Deep Learning,Neural Network,Local Variables,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
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下
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回溯(最近一次调用)
在()
42对于model.my\u probes.keys()中的层\u num:
43 model.layer\u num=layer\u num
--->44型(X_系列[0:批次])
45权重=模型。获取权重()
46
1帧
通话中(self,x)
70 x=tf.停止梯度(x)
71 probe=self.my_probe[self.layer_num]
--->72返回探头(x)
73
74型号=NN()
UnboundLocalError:*赋值前引用的局部变量“probe”**
我认为在
如果self.layer-num==-1
也许可以解决问题,但具体如何解决//
请帮助如果您在“for循环”中声明“probe”,而“self.my_layers[0:self.layer_num]”为None或空或导致零迭代的任何内容,则可能永远不会声明probe。如果您不确定“self.my_layers[0:self.layer_num]”是否允许您进行至少一个循环,请在循环之前声明“prob”,并使用一些默认值,然后在循环中更改它的值(如果实际发生迭代)。
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**