为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Tensorflow 2中实现小批量梯度下降?

如何在Tensorflow 2中实现小批量梯度下降?

慕的地6264312 2023-07-05 16:39:00
我对机器学习和 Tensorflow 比较陌生,我想尝试在 MNIST 数据集上实现小批量梯度下降。但是,我不确定应该如何实施它。(旁注:训练图像(28px x 28px)和标签存储在 Numpy 数组中)目前,我可以看到两种不同的实现方式:我的训练图像位于 [60000,28,28] 的 Numpy 数组中。将其重塑为 [25(批次数)、2400(批次中的图像数)、28,28],然后使用 for 循环调用每个批次并将其传递给 model.compile() 方法。我对这种方法唯一担心的是 for 循环本质上很慢,而矢量化实现会快得多。将图像和标签组合成一个tensorflow数据集对象,然后调用Dataset.batch()方法和Dataset.prefetch()方法,然后将数据传递给model.compile()方法。唯一的问题是我的数据不会保留为 Numpy 数组,我认为它比张量流数据集对象具有更大的灵活性。这两种方法中哪一种最适合实施,或者是否有我不知道的第三种最佳方法?
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

Keras 的 model.fit 方法有一个内置的 batch_size 参数(因为您用 keras 标记了这个问题,所以我假设您正在使用它)。我相信这可能是实现您正在寻找的目标的最佳优化方法。



查看完整回答
反对 回复 2023-07-05
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信