这是我第一次在 Julia 中处理 Flux 包。我有数据(列是特征,行是记录)。我不明白损失函数需要什么(只是一个元组或数据框)以及数据应该是什么(元组或数据框)?
功能:Flux.train!(loss, ps, data, opt)
我试图知道问题出在哪里并在 Atom IDE 上进行了调试,但不明白该怎么做。
我试图转置我的数据并将行和列作为数据实例,但我遇到了这个错误:
没有方法匹配 loss(::Float64)
我试图将数据框作为一个整体,但得到了这个错误:
没有方法匹配 iterate(::DataFrame)
我已添加
(Iterators.repeated((x, y), 3))
为数据,但出现此错误:MethodError: 没有方法匹配 (::Dense{typeof(identity),TrackedArray{...,Array{Float32,2}},TrackedArray{...,Array{Float32,1}}})(::DataFrame)
我试图通过编辑
Dense
功能修复 3 点,但也没有工作。
你有什么建议?我应该怎么做才能很好地理解 Flux?因为它的文档不足以让我理解。
一个代码试用:
D = DataFrame(adjoint(Matrix(data)))
X = D[1:6,: ]
Y = D[7,:]
m = Chain(Dense(7,1))
loss(x, y) = crossentropy(m(x), y)
accuracy(x, y) = mean(onecold(m(x)) .== onecold(y))
dataset = repeated((X, Y), 200)
Flux.train!(loss, Flux.params(m), dataset, ADAM())
得到这个错误:
没有方法匹配 (::Dense{typeof(identity),TrackedArray{...,Array{Float32,2}},TrackedArray{...,Array{Float32,1}}})(::DataFrame)