数据有n_rows行
批量大小是 batch_size
我看到一些代码使用:
n_batches = int(n_rows / batch_size)
如果n_rows不是批量大小的倍数怎么办?是n_batches仍然是正确的?
乍一看它看起来像一个bug,似乎我们正在丢失一些训练样例,但我们必须仔细查看代码。
当你看到这一点时,就像你发送的代码一样,在每个时代(基于一个时代看到的n_batches = int(n_rows / batch_size)例子),数据在每个时代之后被洗牌。因此,通过时间(在几个时期之后),您将看到所有训练样例。我们没有丢失任何例子 o /
小结论:如果你看到这一点,确保数据在每个时代都被洗牌,否则你的网络可能永远不会看到一些训练样例。
这样做有什么好处?
效率很高:通过使用此机制,您可以确保在每个培训步骤中,您的网络都会看到batch_size示例,并且您不会使用少量培训示例执行训练循环。
在培训期间,还有一些改善数据的优点: statexchange post
我也将添加到post,如果您使用的机制,如批标准化,最好在训练过程中具有恒定的批量大小
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。