Neural network Julia lang错误:加载错误:未定义错误:未定义列车

Neural network Julia lang错误:加载错误:未定义错误:未定义列车,neural-network,julia,training-data,vscode-debugger,Neural Network,Julia,Training Data,Vscode Debugger,这是我第一次来朱莉娅 using Pkg Pkg.add("Flux") Pkg.add("MLDatasets") Pkg.add("Lathe") #download MNIST using MLDatasets FashionMNIST.download(i_accept_the_terms_of_use=true) train_x, train_y = FashionMNIST.traindata(); test_x, test_y = FashionMNIST.testdat

这是我第一次来朱莉娅

using Pkg
Pkg.add("Flux")
Pkg.add("MLDatasets")
Pkg.add("Lathe")
#download MNIST
using MLDatasets 
FashionMNIST.download(i_accept_the_terms_of_use=true)
train_x, train_y = FashionMNIST.traindata();  
test_x,  test_y  = FashionMNIST.testdata();
#import Flux
using Flux, Statistics 
using Flux: onehotbatch, onecold, crossentropy, throttle, params 
using Lathe.stats: mean 
using Base.Iterators: partition 
using Random
#model
model() = Chain(
  Conv((5, 5), 1 => 64, elu, pad=(2, 2), stride=(1, 1)),
  BatchNorm(64),
  MaxPool((3, 3), pad=(2, 2), stride=(2, 2)),
  Dropout(0.25),
  Conv((5, 5), 64 => 128, elu, pad=(2, 2), stride=(1, 1)),
  BatchNorm(128),
  MaxPool((2, 2), stride=(2, 2)),
  Dropout(0.25),
  Conv((5, 5), 128 => 256, elu, pad=(2, 2), stride=(1, 1)),
  BatchNorm(256),
  MaxPool((2, 2), stride=(2, 2)),
  Dropout(0.25),
  x -> reshape(x, :, size(x, 4)),
  Dense(2304, 256, elu),
  Dropout(0.5),
  Dense(256, 10),
  softmax) |> gpu
N = size(train_x)[end]
ixs = collect(1:N)
shuffle!(ixs)
n = Int(floor(.9 * N))
function make_batches(data; bs=100)
    n = size(data[1])[end]
    sz = (28, 28, 1, bs)
    iter = [(reshape(Float32.(data[1][:, :, i]), sz), onehotbatch(data[2][i], 0:9)) for i in partition(1:n, bs)] |> gpu
end

train = make_batches(train)
val = make_batches(val)
test = make_batches(test);
m = model()

function met(data)
    global batch_idx
    acc = 0
    for batch in data
        x, y = batch
        pred = m(x) .> 0.5
        tp = Float32(sum((pred .+ y) .== Int16(2)))
        fp = Float32(sum((pred .- y) .== Int16(1)))
        fn = Float32(sum((pred .- y) .== Int16(-1)))
        tn = Float32(sum((pred .+ y) .== Int16(0)))
        acc += (tp + tn) / (tp + tn + fp + fn)
    end
    acc /= length(data)
    push!(eval_acc, acc)
    if batch_idx % 100 == 0
        @show(batch_idx)
    end

    batch_idx += 1
end

loss(x, y) = crossentropy(m(x), y)
evalcb = () -> met(val)

Flux.train!(loss, params(m), train, opt, cb = evalcb)

met(test)
println("accuracy:", eval_acc[1])
在上面的代码中,我有一个错误:error:LoadError:UndefVarError:train未定义。 我有朱莉娅1.4。 请帮帮我。 这是生产线中的问题:生产线=生产批量(生产线)或 通量,火车!(损失、参数(m)、列车、opt、cb=evalcb)。
我认为这是朱莉娅版本的问题。请帮我找到解决方法。

在您的代码中,train与任何其他变量一样。 为了在Julia中使用变量,首先需要声明它

也许您在代码中的意思是:

train = make_batches(train_x)

在您的代码中,train与任何其他变量一样。 为了在Julia中使用变量,首先需要声明它

也许您在代码中的意思是:

train = make_batches(train_x)

如果您提供更多的堆栈跟踪,通常会更容易给出提示。通过这种方式,人们可以看到错误发生的位置。如果您提供更多的堆栈跟踪,通常会更容易给您提示。这样人们就可以看到错误发生的地方。