У меня появляется сообщение об ошибке при попытке выполнить solver.train.
Я закончил редактирование f c_net, включая инициализацию, прямую передачу, потерю и обратное распространение. Когда я выполнил код FullyConnectedNets, который предназначался для сравнения их решения с моим, все прошло нормально (мои аналитические c градиенты, идентичные цифрам c, те же потери и т. Д. c.) Также одинаковы (в остальном) сравнение не сработало).
Тем не менее, когда я пытаюсь запустить решатель, я сталкиваюсь с сообщением об ошибке. В частности, я выполняю следующие строки:
model = TwoLayerNet()
solver = Solver(model, data,
update_rule='sgd',
optim_config={
'learning_rate': 1e-3,
},
lr_decay=0.95,
num_epochs=10, batch_size=100,
print_every=100)
solver.train()
И сообщение об ошибке, которое я получаю первоначально, приходит от optim.py
и говорит:
41 config.setdefault('learning_rate', 1e-2)
42
---> 43 w -= config['learning_rate'] * dw
44 return w, config
45 ValueError: non-broadcastable output operand with shape (100,1) doesn't match the broadcast shape (100,100)
Кто-то получил подобную ошибку? Из сообщения я понимаю, что градиент и W не имеют одинаковые размеры. Как могло быть, если бы все тесты до этой части были положительными?