Я просто столкнулся с той же проблемой. Проверяя исходный код функции compute
, мы видим, что он принимает один из результирующих атрибутов (т. Е. weights
), определенный только тогда, когда сеть заканчивает обучение безупречным.
> trace("compute",edit=TRUE)
function (x, covariate, rep = 1) {
nn <- x
linear.output <- nn$linear.output
weights <- nn$weights[[rep]]
[...]
}
Я думаю, что реальная проблема заключается в том, что neuralnet
не сохраняет текущую сеть после достижения значения stepmax
, вызывая эту ошибку позже в коде compute
.
Изменить
Кажется, вы можете избежать этого сброса, комментируя строки 65 & amp; 66 функции calculate.neuralnet
> fixInNamespace("calculate.neuralnet", pos="package:neuralnet")
[...]
#if (reached.threshold > threshold)
# return(result = list(output.vector = NULL, weights = NULL))
[...]
Тогда все работает как прелесть:)