请问mnist里的一个batch是怎么训练的

最近学习一个mnist的训练,里面是这样写的:

xs,ys = mnist.train.next___batch(100)

而我看了一下mnist的单个数据是28*28的
而每次用一个batch的大小是100*784
我想请问一下一个batch是怎么训练的,是一个一个的28*28传入网络,还是100*784大小的数据全部传入网络?
如果是100*784传入,请问这个是怎么回事?

每次都是输入1个图片,正向传播,计算损失函数,再100个作为整体来反向传播,调整权重

一张mnist图片size就是28*28,即长宽都为28,一个batch就是100张图片一起传进去训练,那个784=28*28,应该是将一张图片reval为一行,
你这个应该是全连接即用的Dense层。
所以他的维度(shape)应该是(1,100,784)即在最前面加了一个维度,你可以仔细看下实现代码。(另外mnist图片是灰度图片,它的shape为(28,28,1),彩色图片是(28,28,3)即有三个通道这个要注意

训练阶段

在训练的时候是100*784作为一个batch一起传入网络,然后用小批量梯度下降法(Mini-Batch Gradient Descent, MBGD)找到梯度并更新模型参数。
目前我们训练模型一般都是用的小批量梯度下降法,解释见链接:
https://www.cnblogs.com/lliuye/p/9451903.html

测试阶段

在测试阶段,也可以100 * 784一起输入到网络进行分类,也可以是一张一张图片输入到网络测试。如果是100 * 784输入到网络,那么最后得到的特征大小就是100 * 10,也就是同时计算了100张图片的特征向量。

batch_size是指一次训练使用100个样本, 和784关系不大,主要是为了网络在反向传播过程中学习到更好的参数,
如果采用CNN把100*784reshape(100,28,28,1),
前向神经网络为(100,784),784可以理解为特征个数。