首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么当我多次训练一个网络模型时,我得到了不同的训练模型和不同的结果?

为什么当我多次训练一个网络模型时,我得到了不同的训练模型和不同的结果?
EN

Stack Overflow用户
提问于 2019-10-23 08:36:25
回答 1查看 457关注 0票数 0

为什么当我为相同的选项和相同的数据库训练一个网络模型时,我得到了不同的训练模型,在结果上,我有不同的结果分类。

1)我有一个循环来训练n次神经网络模型。

2)我设置了相同的培训选项

3)我有相同的数据库来训练和测试

4)我使用相同的预训练模型(例如google net)。

最后,每次(n=1,2,3)我都有不同的分类结果。差额甚至等于10个百分点。

数据库-人脸图像(总是读取相同的数据库,而不是随机读取)模型--我使用了Matlab预先训练的模型,以及只对github的人脸图像进行预训练的模型。

代码语言:javascript
运行
复制
opts = trainingOptions('sgdm', ...
    'MaxEpochs',1, ... %5  50
    'MiniBatchSize',100,... %64  10
    'InitialLearnRate',5e-5,... 
    'ExecutionEnvironment','gpu',...
    'Shuffle','every-epoch', ...
    'Plots','training-progress');

如果某些选项未被标识,则意味着默认。

EN

回答 1

Stack Overflow用户

发布于 2019-10-23 08:55:26

您的脚本不是完全由您提到的参数定义的。此外,还涉及随机种子。当您使用预先训练的模型时,您应该重新初始化最后几个层。使用完整的预训练参数往往会导致收敛到坏的局部极小值。

也许你已经这么做了,那么随机性就从那里来了。另外,我想你应该是分批训练的。如果不指定随机种子,则每次运行的批处理是不同的,因为每个批包含的实例都是根据随机种子选择的。

将训练实例以不同的顺序呈现给神经网络会产生不同的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58518752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档