Size: a a a

Язык программирования Julia / Julia programming language

2020 April 09

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Вот код нейронки
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Сама нейронка тренируеться на видеокарте без проблем
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Но вот функция CalcAccuracy() выдает ошибку в 34 строке, где я делаю push! в вектор
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Сама ошибка
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
LoadError: MethodError: Cannot convert an object of type Nothing to an object of type Int64
Closest candidates are:
 convert(::Type{Int64}, !Matched::Type{CUDAnative.AS.Generic}) at C:\Users\Admin\.juliapro\JuliaPro_v1.4.0-1\packages\CUDAnative\hfulr\src\device\pointer.jl:112
 convert(::Type{Int64}, !Matched::Type{CUDAnative.AS.Global}) at C:\Users\Admin\.juliapro\JuliaPro_v1.4.0-1\packages\CUDAnative\hfulr\src\device\pointer.jl:113
 convert(::Type{Int64}, !Matched::Type{CUDAnative.AS.Shared}) at C:\Users\Admin\.juliapro\JuliaPro_v1.4.0-1\packages\CUDAnative\hfulr\src\device\pointer.jl:114
 ...
in expression starting at C:\projects\ebobot-sciense\Main.jl:16
push!(::Array{Int64,1}, ::Nothing) at array.jl:912
CalcAccuracy(::Chain{Tuple{Flux.Recur{Flux.RNNCell{typeof(tanh),CuArrays.CuArray{Float32,2,Nothing},CuArrays.CuArray{Float32,1,Nothing}}},typeof(softmax)}}) at NN.jl:34
TrainNN() at NN.jl:27
top-level scope at Main.jl:16
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Вот эта вот штука почемуто выбрасывает нул
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
findfirst(isequal(max(cpu(nn(one))...)), cpu(nn(one)))
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Где nn - модель нейронки
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Изнутри надо смотреть.
Что возвращает nn(one)
Что возвращает cpu(nn(one))
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
И что эта строчка вообще делает? Это argmax что ли?
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Андрей Оськин
Изнутри надо смотреть.
Что возвращает nn(one)
Что возвращает cpu(nn(one))
Прикол в том, что если я просто буду запускать в консоли по строчке - работает все
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Если я запущу в консоли строку findfirst(isequal(max(cpu(nn(one))...)), cpu(nn(one)))
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Первый раз выдаст нул
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
А второй нет
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Андрей Оськин
И что эта строчка вообще делает? Это argmax что ли?
Нейронка возвращает вектор, я нахожу самой большой элемент в векторе, а через функцию findfirst() нахожу позицию этого элемента в векторе
источник

AY

Artem Yurchenko in Язык программирования Julia / Julia programming language
Если есть вариант попроще это сделать - был бы рад услышать :)
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
1. Если это argmax то лучше его и использовать (эта конструкция выглядит явно переусложненной)
2. Оберни в try catch и когда будет ошибка - верни значение nn(one)
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
в дебаге можно походить по строкам
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
nn(one) - его наверное стоит вынести за скобки, т.к. запускается два раза подряд?
источник