我还是 Julia 和机器学习的新手,但我非常渴望学习。在我正在进行的当前项目中,我遇到了尺寸不匹配的问题,并且不知道该怎么做。
我有两个数组如下:
x_array:
9-element Array{Array{Int64,N} where N,1}:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 72, 73]
[11, 12, 13, 14, 15, 16, 17, 72, 73]
[18, 12, 19, 20, 21, 22, 72, 74]
[23, 24, 12, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 72, 74]
[36, 37, 38, 39, 40, 38, 41, 42, 72, 73]
[43, 44, 45, 46, 47, 48, 72, 74]
[49, 50, 51, 52, 14, 53, 72, 74]
[54, 55, 41, 56, 57, 58, 59, 60, 61, 62, 63, 62, 64, 72, 74]
[65, 66, 67, 68, 32, 69, 70, 71, 72, 74]
y_array:
9-element Array{Int64,1}
75
76
77
78
79
80
81
82
83
以及使用 Flux 的下一个模型:
model = Chain(
LSTM(10, 256),
LSTM(256, 128),
LSTM(128, 128),
Dense(128, 9),
softmax
)
我压缩了两个数组,然后使用 Flux.train 将它们输入到模型中!
data = zip(x_array, y_array)
Flux.train!(loss, Flux.params(model), data, opt)
并立即抛出下一个错误:
ERROR: DimensionMismatch("matrix A has dimensions (1024,10), vector B has length 9")
现在,我知道矩阵 A 的第一维是隐藏层的总和 (256 + 256 + 128 + 128 + 128 + 128),第二维是输入层,即 10。我做的第一件事是将 10 更改为 9,但它只会引发错误:
ERROR: DimensionMismatch("dimensions must match")
有人可以向我解释不匹配的尺寸是什么,以及如何使它们匹配?