Machine learning pytorch SGD的默认批量大小是多少?

Machine learning pytorch SGD的默认批量大小是多少?,machine-learning,deep-learning,pytorch,gradient-descent,stochastic-gradient,Machine Learning,Deep Learning,Pytorch,Gradient Descent,Stochastic Gradient,如果我提供了全部数据,但没有指定批量大小,pytorch SGD会怎么做?我没有看到任何“随机性”或“随机性”。 例如,在下面的简单代码中,我将整个数据(x,y)输入到一个模型中 optimizer = torch.optim.SGD(model.parameters(), lr=0.1) for epoch in range(5): y_pred = model(x_data) loss = criterion(y_pred, y_data) optimizer.z

如果我提供了全部数据,但没有指定批量大小,pytorch SGD会怎么做?我没有看到任何“随机性”或“随机性”。 例如,在下面的简单代码中,我将整个数据
(x,y)
输入到一个模型中

optimizer = torch.optim.SGD(model.parameters(), lr=0.1)  
for epoch in range(5):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
假设有100个数据对
(x,y)
,即
x\u数据
y\u数据
每个都有100个元素


问题:在我看来,所有100个梯度都是在参数更新之前计算出来的。“小批量”的大小是100,而不是1。所以没有随机性,对吗?首先,我认为SGD意味着随机选择一个数据点并计算其梯度,这将被用作所有数据真实梯度的近似值。

PyTorch中的SGD优化器就是梯度下降。stocastic部分来自于您通常一次通过网络传递随机数据子集的方式(即小批量或批量)。在执行backprop和步进优化器之前,您发布的代码在每个历元上传递整个数据集,因此您实际上只是在执行常规的梯度下降