首页 > 解决方案 > 数据传递给flux-Julia中分类器的训练函数

问题描述

这是我第一次在 Julia 中处理 Flux 包。我有数据(列是特征,行是记录)。我不明白损失函数需要什么(只是一个元组或数据框)以及数据应该是什么(元组或数据框)?

功能:Flux.train!(loss, ps, data, opt)

细节在这里这里有一个例子

我试图知道问题出在哪里并在 Atom IDE 上进行了调试,但不明白该怎么做。

  1. 我试图转置我的数据并将行和列作为数据实例,但我遇到了这个错误:

    没有方法匹配 loss(::Float64)

  2. 我试图将数据框作为一个整体,但得到了这个错误:

    没有方法匹配 iterate(::DataFrame)

  3. 我已添加(Iterators.repeated((x, y), 3))为数据,但出现此错误:

    MethodError: 没有方法匹配 (::Dense{typeof(identity),TrackedArray{...,Array{Float32,2}},TrackedArray{...,Array{Float32,1}}})(::DataFrame)

  4. 我试图通过编辑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)

标签: dataframemachine-learningjuliaflux.jl

解决方案


推荐阅读