Нейросети-этот мудренный backprop,новая версия кода
Запись от Konst2016 размещена 08.10.2019 в 18:47
Показов 1952
Комментарии 4
|
Здравствуйте!В этом новым посте я исправляю код backpropa,а именно в дифференциале последнего нейрона ,а он также градиент должно быть умножение на сигналы,потому что при дифференцировании функции потери по весам нейрона там появляется перемножение с сигналами. Т.е. должен быть такой код:
Итак у нас такая сеть,как здесь: https://www.cyberforum.ru/blog... g5790.html Код:
Посмотрел прошлый пост здесь линия приняла плавную изогнутость) Спасибо!Всего хорошего! | ||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 4
Комментарии
-
расскажи пожалуйста, что именно на твой взгляд произошло полезного в этой строке? Я код конечно пробежал по диагонали, но как мне кажется ты просто запросил атрибут объекта, ничему его не присвоив, то есть произвел пустое и не нужное действие, просто потратив пару тактов процессора. Если бы это был вызов некого метода, то еще понятно, а пока -загадка.Python 1
self.e2 # Вот этого не было,ошибка иногда росла,иногда уменьшалась
Запись от Welemir1 размещена 09.10.2019 в 06:16
-
e1 и e2 это свойства класса они не могут быть пустыми,там взвешиваются сигналы.Но я внимательней посмотрел учебники при backprop этот компонент не нужен.Запись от Konst2016 размещена 09.10.2019 в 19:48
-
Запись от Welemir1 размещена 10.10.2019 в 09:02
-
в цикле вызывается back_propagate, он вызывает direct_motion,а в direct_motion идет self.e2=np.dot(self.in_layer2,self.hidde n1),естественно self.e2 - это свойство класса и он доступен любому методу,опять же backprop у.Запись от Konst2016 размещена 10.10.2019 в 11:23


