我正在使用以下代码来显示数组
net = NeuralNetwork(4, 28 * 28, [128, 64, 10])
print(net(1).w)
在NeuralNetwork文件中
def __call__(self, counter):
return self.params[counter]
我正在使用的初始化
self.params = []
np.random.seed(1)
for i in range(len(neurons_per_layer)):
w = np.random.randn(2,2)
b = np.zeros([2, 1])
self.params.append({"w" : w, "b" : b})
return
但是我遇到错误
'dict' object has no attribute 'w'
答案 0 :(得分:2)
在print(net(1).w)
中,您尝试访问w
没有的dict
的属性dict
。
我认为您真正想要的是print(net(1)['w'])
总而言之,您得到'dict' object has no attribute 'w'
的原因是您试图从dict
调用属性,在这种情况下,该属性为w
,而dicts
没有名为{{ 1}},您想在w
上获取键 dict
的值。
答案 1 :(得分:0)
词典有一组键和一组值。
通过键访问值是dict[key]
您正在使用dict.key
尝试访问class dict中的属性。
如果您希望通过instance.key
方法表现出相同的行为,则需要对字典进行包装或创建一个新类。
否则,只需使用python公式dict[key]
。