[英]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.