Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include("NNData.jl")
- include("RealNames.jl")
- using CUDAnative
- using Flux
- using Flux.Data
- using Flux: crossentropy, normalise, onecold, onehotbatch, data
- using Statistics: mean
- function TrainNN()
- model = Chain(RNN(2371, length(GetRealNames())), softmax)
- model = gpu(model)
- loss(x, y) = crossentropy(model(x), y)
- optimiser = ADAM(0.01)
- datas = zip(gpu(_trainDataX), gpu(_trainDataY))
- for e = 0:4
- println("Epoch: $e")
- Flux.train!(loss, params(model), datas, optimiser)
- end
- CalcAccuracy(model)
- end
- function CalcAccuracy(nn)
- accuracy_buffer = Vector{Int64}()
- for one in _testDataX
- push!(
- accuracy_buffer,
- findfirst(isequal(max(cpu(nn(one))...)), cpu(nn(one))),
- )
- end
- accuracy_mean = 0.0
- for one in accuracy_buffer
- if one == findfirst(isequal(1), _testDataY)
- accuracy_mean += 1
- else
- accuracy_mean += 0
- end
- end
- accuracy_score = accuracy_mean / length(_testDataY)
- println("\nAccuracy: $accuracy_score")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement