我正在使用带有以下工具和版本的Pytorch:
然后,使用两个不同的OS训练了相同的脚本和数据集。 我的机器学习任务是使用CNN,RNN对一些日语句子进行分类。
我希望不同操作系统上的两个脚本具有相同的丢失收敛性。但是结果却不同,显然Debian上的脚本不会像在macOS上那样收敛。
我的训练脚本可能很普通。如下所示:
while True:
# retrive dataset with batch size
fw_args, bw_args = next(train_batcher())
# call ml models, and get results
net_out = net(*fw_args)
# get loss with loss function
# I'm using `cross_entropy`
loss = ... some loss function ...
loss.backward()
# optimizer = torch.optim.Adam
optimizer.step()
# reset grad
net.zero_grad()
...
我猜有一些实现上的差异,例如,将下一步随机化的模块(这是优化程序?)。 有什么建议吗?
编辑:
我将python平台anaconda更改为pyenv,然后在Debian上损失从4.0更改为0.02。 Anaconda导致了这个?