Комментарии 5
modeldataz(x) = x |> model |> arraydata |> permutedims
# modeldataz(x) = permutedims(data(model(x)))
modelX = modeldataz(X)
#modelapples = modeldataz(g_apples')
modelbanans = modeldataz(g_banans')
MethodError: no method matching arraydata(::TrackedArray{…,Array{Float64,2}})
Closest candidates are:
arraydata(!Matched::AxisArray) at C:\Users\Frolov\.juliapro\JuliaPro_v1.2.0-1\packages\ImageAxes\NnkzU\src\ImageAxes.jl:166
Stacktrace:
[1] |>(::TrackedArray{…,Array{Float64,2}}, ::typeof(arraydata)) at .\operators.jl:854
[2] modeldataz(::Array{Float64,2}) at .\In[50]:1
[3] top-level scope at In[50]:2
Подскажите пожалуйста, что за ошибка вылетает. Не получается запустить эту часть кода.
Вы как-то неправильно скопировали...
modeldataz(x) = x |> model |> data |> permutedims
# modeldataz(x) = permutedims(data(model(x)))
О чем и говорит текст ошибки MethodError: no method matching arraydata(::TrackedArray{…,Array{Float64,2}}) -> не объявлен метод arraydata
Здесь специально приведены две эквивалентные по функционалу строки. Либо мы подставляем результаты вызовов одних функций в качестве аргументов для других, либо, так как они унарные (принимают один параметр), представляем в виде цепочки функций (всего лишь синтаксический сахар).
Таким образом, мы считаем для определенного x
поведение модели, результат переводим в формат "данные", и так как это строка, применяем permutedims
который превращает ее в столбец. Это все проделывалось для того чтоб рисовать графики, так как plot принимает массивы-столбцы.
И если не понятен функционал к л метода, всегда можно вызвать на него документацию командой ?
например вбить в консоль интерпретатора ?permutedims
Julia и нейронные сети: Flux