我正在训练神经网络来预测输出。 我有一个名为testX的测试集,它是一个4x13矩阵,神经元的数量是10,名为forecastOutput的预期输出是1x13矩阵。此外,net.IW {1}是10x4矩阵,net.b {1}是10x1矩阵。
我没有使用sim函数,而是在Matlab中尝试了以下代码来预测输出。
y = logsig(net.IW{1} * testX + net.b{1});
forecastOutput = purelin(net.LW{2} * y + net.b{2});
但是,矩阵尺寸存在错误。如何使用这些代码获得1x13矩阵的输出?
谢谢。
答案 0 :(得分:0)
问题在于y = logsig(net.IW{1} * testX + net.b{1});
中的尺寸不匹配。
您要在此处尝试添加向量(net.b{1}
和矩阵net.IW{1}
)。请考虑以下事项:
A =
1 2 3
4 5 6
7 8 9
B =
1
2
3
数学上, C = A + B
不是有效的表达式。如果您希望A
添加B
中的每一列,您可以执行以下操作:
C = bsxfun(@plus,A,B) % Or C = A + repmat(B, 1, size(A,2))
C =
2 3 4
6 7 8
10 11 12
如果您只想添加A
的{{1}}的第k列来接收矢量,您可以这样做:
B
我猜你在下一个表达式中有同样的问题(我假设C = A(:,k) + B % k = 1 gives the following result
C =
2
6
10
)。
我不知道哪种方法可以为您提供所需的结果,但这样可以解决您的错误,并且可以帮助您解决问题。