Я пытаюсь использовать библиотеки ForwardDiff.jl и / или ReverseDiff.jl для вычисления градиента в задаче оптимизации.
Оба этих пакета выдают мне сообщение об ошибке, относящееся к :: getfield ().
ReverseDiff дает мне LoadError:
MethodError: no method matching (::getfield(CalibrationModule, Symbol("#f#4"))
{AlgorithmParameters,ModelParameters,Guess,Array{Float64,1}})
(::ReverseDiff.TrackedArray{Float64,Float64,1,Array{Float64,1},Array{Float64,1}})
ForwardDiff дает мне LoadError:
MethodError: no method matching (::getfield(CalibrationModule, Symbol("#f#10"))
{AlgorithmParameters,ModelParameters,Guess,Array{Float64,1}})
(::Array{ForwardDiff.Dual{ForwardDiff.Tag{getfield(CalibrationModule,
Symbol("#f#10"))
{AlgorithmParameters,ModelParameters,Guess,Array{Float64,1}},Float64},Float64,6},1})
Я понятия не имею, как понять это сообщение об ошибке. Мой код слишком сложен, чтобы публиковать здесь, но, насколько я могу судить, я не использую библиотеки, написанные не на Джулии. Я широко использую пользовательские типы данных (изменяемые структуры), но не понимаю, почему это может вызвать проблемы ...