Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我的项目是认识古代硬币。我正在使用Matlab。我已经有一个包含输入和输出的功能文件。我已经使用newff训练了3种硬币类型,并且已保存了net。对于这三种硬币,我使用01、10和11作为目标。现在,我想使用训练有素的网络进行测试。我也有测试图像。我这样编码:
load net.mat; load features.mat; testInputs = Features'; out = sim(net,testInputs); [dummy, I]=max(out); I值用于检查硬币类型。如果I是1,则键入1,如果2,则键入2,如果3,则键入3。我正确吗?我将这些1,2,3值硬编码,因为我将目标分别定为01、10和11。 if (I == 2) fprintf('Type1\n'); elseif (I == 1) fprintf('Type2\n'); elseif (I == 3) fprintf('Type3\n'); else fprintf('undefined\n'); end 尽管现在我输入了3种类型的测试硬币图像,但其值I却显示1或2。但不是3。即使当我使用用于训练的同一组图像时,它也会为I给出1或2。 你能帮我吗? 回答: max()的第二个参数将为您提供输出更高的神经元索引。如果您只有两个神经元,而您的目标是[0,1],[1,0]和[1,1](请注意每个目标上只有两个元素),就是这种情况,将无法获得3在那个max()中。您应该尝试[0,0,1],[0,1,0]和[1,0,0]。 附带说明一下,如果您将tansig用作神经元的激活功能,请考虑在目标上使用-1而不是0,以便可以更好地利用非线性。类似于[-1,-1,1],[-1,1,-1],[1,-1,-1]。 更多&回答... |
![]() |
![]() |