Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 Matlab-使用经过培训的网络进行测试

我的项目是认识古代硬币。我正在使用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]。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 20:32


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.