gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:02:34 25 4
gpt4 key购买 nike

如果我提供整个数据并且不指定批量大小,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_datay_data各有100个元素。

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

最佳答案

PyTorch 中的 SGD 优化器只是梯度下降。随机部分来自您通常如何一次通过网络传递数据的随机子集(即小批量或批量)。您发布的代码在进行反向传播和步进优化器之前在每个时期传递整个数据集,因此您实际上只是在进行常规梯度下降。

关于machine-learning - pytorch SGD 的默认批量大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com