Диктофон Python без ошибки атрибута в массиве - PullRequest
0 голосов
/ 01 апреля 2019

Я использую следующий код для отображения массива

net = NeuralNetwork(4, 28 * 28, [128, 64, 10])
print(net(1).w)

В файле NeuralNetwork

  def __call__(self, counter):           
        return self.params[counter]

в init Я использую

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 ]

2 голосов
/ 01 апреля 2019

В print(net(1).w) вы пытаетесь получить доступ к атрибуту w из dict, которого dict не имеет.

Я думаю, что вы действительно хотите это print(net(1)['w'])

В итоге вы получаете 'dict' object has no attribute 'w', потому что вы пытаетесь вызвать атрибут из dict, в этом случае w, а dicts не имеет атрибута с именем w, вы хотите получитьзначение на dict для клавиши w.

0 голосов
/ 01 апреля 2019

В словаре есть набор ключей и набор значений.

Доступ к значению с помощью ключа dict[key] Используя dict.key, вы пытаетесь получить доступ к атрибуту из условия classe.

Если вы хотите продемонстрировать то же поведение с помощью метода instance.key, вам нужно обернуть словарь или создать новый класс.

Иначе просто используйте формулу питона dict[key].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...