数组中没有属性错误的Python dict

时间:2019-04-01 07:58:48

标签: python neural-network

我正在使用以下代码来显示数组

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'

2 个答案:

答案 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]