matlab - 为 MATLAB 追加

标签 matlab machine-learning neural-network

我正在训练一个人工神经网络,我想要有不同的训练实例。在每种情况下,我想找到实际输出和预测输出之间的最大差异。然后我想取所有这些最大值的平均值。

到目前为止我的代码是:

maximum = []; 
k=1;

for k = 1:5
  %Train network
  layers = [ ...
    imageInputLayer([250 1 1])
    reluLayer
    fullyConnectedLayer(100)
    fullyConnectedLayer(100)
    fullyConnectedLayer(1)
    regressionLayer];

  options = trainingOptions('sgdm','InitialLearnRate',0.1, ...
    'MaxEpochs',1000);
  net = trainNetwork(nnntrain,nnnfluidtrain,layers,options);
  net.Layers

  %Test network
  predictedn = predict(net,nnntest);
  maximum = append(maximum, max(abs(predictedn-nnnfluidtest)));

  k=k+1
end

我的目的是生成一个名为“最大值”的列表,其中包含五个元素(每个 ANN 训练实例的最大值),然后我想对其求平均值。

但是,它一直给我错误:

wrong number of input arguments for obsolete matrix-based syntax

当它尝试追加时。第一个输入是列表,第二个输入是 1x1 单个输入。

最佳答案

追加在 MATLAB 中是一种 native 操作。您可以通过实际构建一个新向量来附加元素,其中原始向量是输入的一部分。

因此:

maximum = [maximum max(abs(predictedn-nnnfluidtest))];

如果出于某种原因您想以函数形式执行此操作,您正在寻找的函数是 cat这是 conectcatenate 的缩写形式。 append 函数在多个工具箱中都可以看到,但每个工具箱都不能执行您想要的操作。 cat 是您想要的,但您仍然需要提供原始输入向量作为参数的一部分:

maximum = cat(2, maximum, max(abs(predictedn-nnnfluidtest)));

第一个参数是要附加到的轴。为了尊重您在上面执行的代码,您希望列随着您扩展向量而增加,以便成为第二个轴,或者轴为 2。

关于matlab - 为 MATLAB 追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49761988/

相关文章:

matlab - 重采样因子太大

python-3.x - 在Python中计算confusion_matrix

tensorflow - 属性错误: 'Sequential' object has no attribute 'run_eagerly'

c# - 激活函数、初始化函数等对人脸检测神经网络的影响

python-2.7 - Tensorflow 返回相似图像

MATLAB - 寻找峰谷

matlab - 为什么这个傅立叶逆变换没有给出正确的结果?

java - Java-Matlab 接口(interface)背后的历史是什么?

machine-learning - 梯度下降与随机梯度下降算法

neural-network - 卷积神经网络和循环神经网络有什么区别?