Ошибка переполнения с использованием алгоритма LMS от Neupy с примером

Я попробовал пример для алгоритма LMS:

import numpy as np
from neupy import algorithms

input_data = np.array([[1, 0], [2, 2], [3, 3], [0, 0]])
target_data = np.array([[1], [0], [0], [1]])

lmsnet = algorithms.LMS((2, 1), step=0.5)

lmsnet.train(input_data, target_data, epochs=200)
lmsnet.predict(np.array([[4, 4], [0, 0]])) 

Но я получаю сообщение об ошибке "OverflowError: не удается преобразовать бесконечность с плавающей точкой в ​​целое число" в этой строке (file:summary_info.py):

scale = math.ceil(self.delay_limit / average_delay)

Я не могу связать входные параметры из примера с ошибкой, я знаю, что деление на ноль происходит, но я не могу понять, как это исправить. Я не хочу изменять библиотечные файлы, чтобы решить проблему.

1 ответ

Ваш пример отлично работает для меня

Вы можете преодолеть эту проблему, если вы тренируете свою сеть в цикле, как это

import numpy as np
from neupy import algorithms

input_data = np.array([[1, 0], [2, 2], [3, 3], [0, 0]])
target_data = np.array([[1], [0], [0], [1]])

# Used smaller step since 0.5 is too big
lmsnet = algorithms.LMS((2, 1), step=0.1)

for _ in range(200):
    lmsnet.train(input_data, target_data, epochs=1)

lmsnet.predict(np.array([[4, 4], [0, 0]])) 
Другие вопросы по тегам