簡體   English   中英

Julia中的尺寸不匹配

[英]Dimensions Mismatch in julia

我收到此錯誤:

DimensionMismatch("second dimension of A, 1, does not match length of x, 20")

用於以下代碼。 我正在嘗試在一些樣本data上訓練模型。 我正在使用Julia中的Flux機器學習庫。

我檢查了尺寸,這些尺寸對我來說似乎是正確的。 問題是什么?

using Flux
using Flux: mse

data = [(i,i) for i in 1:20]
x = [i for i in 1:20]
y = [i for i in 1:20]

m = Chain(
 Dense(1, 10, relu),
 Dense(10, 1),
 softmax)

opt = ADAM(params(m))

loss(x, y) = mse(m(x), y)
evalcb = () -> @show(loss(x, y))
accuracy(x, y) = mean(argmax(m(x)) .== argmax(y))

#this line gives the error
Flux.train!(loss, data, opt,cb = throttle(evalcb, 10))

您的第一個密集層具有一個權重矩陣,其大小為10x1 您可以按以下方式檢查它:

m.layers[1].W

因此,您的數據大小應為1x20以便可以將其乘以鏈中的權重。

x = reshape(x,1,20)
opt = ADAM(params(m))

loss(x, y) = mse(m(x), y)
evalcb = () -> @show(loss(x, y))
accuracy(x, y) = mean(argmax(m(x)) .== argmax(y))

#Now it should work.
Flux.train!(loss, data, opt,cb = Flux.throttle(evalcb, 10))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM