python-3.x - UnboundLocalError,试图将变量传递给先前在同一函数中初始化的函数
问题描述
在下面的函数中,我试图初始化一些参数,然后在同一个函数调用的稍后阶段将这些相同的参数传递给同一个函数......但是,我不断收到相同的 Unboundlocalerror,我查看了这个错误在其他帖子上,但他们似乎都建议将变量定义为全局变量,但是,这并没有解决任何问题......
这是函数调用:
fast_weights, bert_velocity_params = self.update_bert_velocity_params(weights_for_grad = weights_for_grad,
gvs = gvs, sgd_momentum = True) if config.sgd_mom \
然后一旦我有了bert_velocity_params
,我想通过将它重新传递到同一个函数来更新同一个变量,如下所示:
fast_weights, bert_velocity_params = self.update_bert_velocity_params(weights_for_grad= fast_weights,
gvs = gvs, sgd_momentum = True,
lr_id = lr_id, velocity_weights= bert_velocity_params) if config.sgd_mom \
velocity_weights
默认值为None
。尽管在第一次调用中为它分配了一个值,但它一直在抛出bert_velocity_params referenced before assignment error
......有人知道我做错了什么吗?
问题出在第二个代码块中,特别是通过velocity_weights = bert_velocity_params
,如果我通过 None,它工作正常......所以问题是,如果它对fast_weights
参数工作正常,为什么它对 bert_velocity_params 参数不起作用?
解决方案
推荐阅读
- c - 使用管道读写
- android - 如何在android中使用正则表达式验证editText
- android - Android,如何基于 api 29 为 arm64-v8a 创建 avd
- javascript - 从 ReactJS 编辑 Cloud Firestore 记录
- javascript - 如何使用 Firebase RealTime 数据库根据特定类别获取项目集合
- momentjs - 将矩范围与帆后端连接起来
- batch-file - 通过批处理脚本更改 PC 的主机名
- azure - Azure Devops 代码覆盖率被错误地识别为工件
- django - 如何区分多个 GenericForeignKey 与一个模型的关系?
- java - 如何在 Java 中训练 keras(张量流)模型?