首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于tfjs的预训练模型的策略

用于tfjs的预训练模型的策略
EN

Stack Overflow用户
提问于 2020-05-05 23:47:51
回答 1查看 78关注 0票数 0

这是我已经问过的一个问题的更一般的版本:Significant difference between outputs of deep tensorflow keras model in Python and tensorflowjs conversion

据我所知,tfjs模型的各层在浏览器中运行时(到目前为止只在Chrome和Firefox中测试过),与在Python或Node中运行的相同模型相比,输出值的数值差异很小。这些小差异在模型的所有层上的累积效果可能会导致输出中的相当大的差异。有关这方面的示例,请参阅here

这意味着在浏览器中运行时,在Python或Node中训练的模型在准确性方面的表现不会很好。而且你的模型越深,它就会变得越糟糕。

因此,我的问题是,在浏览器中训练模型与tfjs一起使用的最佳方式是什么?有没有办法确保输出是相同的?或者你只是必须接受会有很小的数字差异,如果是这样的话,有没有什么方法可以用来训练模型,使其对此更具弹性?

EN

回答 1

Stack Overflow用户

发布于 2020-05-06 15:01:50

这个答案是基于我个人的观察得出的。因此,这是有争议的,没有太多证据支持。为了获得接近32位模型的16位模型的精确度,我遵循的一些方法如下:

  1. 避免对隐藏层使用具有较小上下限的激活,例如sigmoidtanh。这些激活会导致下一层的权重对较小的值非常敏感,从而导致较小的变化。对于这样的模型,我更喜欢使用ReLU。由于它现在是大多数模型中隐藏层的标准激活,因此在任何情况下都应该使用它。
  2. 在训练时避免权重衰减和权重的L1/L2正则化(keras中的kernel_regularizer参数),因为这些会增加权重的敏感度。改用Dropout,在使用TFLite而不是数值正则化时,我没有观察到性能有很大的下降。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61617238

复制
相关文章

相似问题

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