Python 如何在Tensorflow 2中实现小批量梯度下降?
我对机器学习和Tensorflow比较陌生,我想尝试在MNIST数据集上实现小批量梯度下降。然而,我不确定我应该如何实施它 (旁注:训练图像(28px x 28px)和标签存储在Numpy阵列中) 目前,我可以看到两种不同的实现方法:Python 如何在Tensorflow 2中实现小批量梯度下降?,python,numpy,tensorflow,keras,tensorflow-datasets,Python,Numpy,Tensorflow,Keras,Tensorflow Datasets,我对机器学习和Tensorflow比较陌生,我想尝试在MNIST数据集上实现小批量梯度下降。然而,我不确定我应该如何实施它 (旁注:训练图像(28px x 28px)和标签存储在Numpy阵列中) 目前,我可以看到两种不同的实现方法: 我的训练图像是[60000,28,28]的Numpy数组。将其重塑为[25(num batches)、2400(num images in batch)、28,28],然后使用for循环调用每个批并将model.compile()方法传递给它。使用这种方法,我唯一
这两种方法中哪一种最适合实现,或者有第三种方法是我不知道的最佳方法?Keras在其model.fit方法中有一个内置的batch_size参数(因为您用Keras标记了这个问题,我假设您正在使用它)。我相信这可能是实现您所追求目标的最佳优化方法。谢谢您的回答!是的,我正在使用Keras。如果我希望最小批量大小为25,那么传递给model.fit方法的numpy数组的维数是多少。只需将要训练网络的所有数据传递到fit函数中,并指定batch_size=25即可。然后,这将以大小为25的小批量对网络进行所有数据的培训。您可能需要在编辑数据之前对其进行一点编辑,以使其成为正确的形状和类型。有关如何执行这些操作的详细信息,请参见:谢谢。我成功了