我对机器学习和 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 标记了这个问题,所以我假设您正在使用它)。我相信这可能是实现您正在寻找的目标的最佳优化方法。
添加回答
举报
0/150
提交
取消