实现ANN的python代码中的变量可见性/范围
我正在使用[1]的示例代码自我实现一个人工神经网络ANN。虽然原则上我很清楚ANN代码是如何工作的,但在python语法/逻辑出现更多问题之前,我已经用其他语言完成了: 在第181行中,网络在10000次迭代中进行训练,但由于函数backpropagate line 39不返回网络,且变量网络似乎也不是全局变量,因此如何保存进度?同样,在函数backpropagate中,变量网络没有更新,但我猜这是因为运行变量,如输出神经元行48,是通过引用的?但这仍然不能解释网络如何在反向传播之外保存它的进步实现ANN的python代码中的变量可见性/范围,python,variables,Python,Variables,我正在使用[1]的示例代码自我实现一个人工神经网络ANN。虽然原则上我很清楚ANN代码是如何工作的,但在python语法/逻辑出现更多问题之前,我已经用其他语言完成了: 在第181行中,网络在10000次迭代中进行训练,但由于函数backpropagate line 39不返回网络,且变量网络似乎也不是全局变量,因此如何保存进度?同样,在函数backpropagate中,变量网络没有更新,但我猜这是因为运行变量,如输出神经元行48,是通过引用的?但这仍然不能解释网络如何在反向传播之外保存它的进步
[1] 你应该从更多开始 这说明了会发生什么
>>> def modify(lst):
... lst.append('element')
...
>>> network = []
>>> network
[]
>>> modify(network)
>>> network
['element']
>>> modify(network)
>>> network
['element', 'element']
网络是一个可变对象,在反向传播中进行了适当的修改。没有必要返回。您可以将其视为按引用传递,从技术上讲,Python中没有这样的传递值—请参阅