добро пожаловать в Stackoverflow
Ваш основной l oop в порядке (вы могли бы значительно облегчить себе жизнь, вы, вероятно, должны прочитать this ), но ваша скорость обучения (1e -5), скорее всего, слишком мало .
Я попытался решить небольшую фиктивную задачу, она была решена очень быстро со скоростью обучения ~ 1e-2, и потребовалось бы намного больше времени с 1e-5. Тем не менее, он все равно сходится, но спустя более 100 эпох. Вы упомянули, что пытались увеличить количество эпох, но не написали, сколько эпох вы на самом деле проводили. Попробуйте увеличить этот параметр (скорость обучения), чтобы увидеть, решит ли он вашу проблему. Вы также можете попробовать удалить деление на numel()
, что будет иметь тот же эффект (деление также применяется к градиентам).
В следующий раз, пожалуйста, предоставьте небольшой минимальный пример чем можно запустить и воспроизвести вашу ошибку. Здесь большая часть вашего кода - это загрузка данных, которую можно заменить двумя строками генерации фиктивных данных.