Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PyTorch培训,批量不同长度?_Pytorch - Fatal编程技术网

PyTorch培训,批量不同长度?

PyTorch培训,批量不同长度?,pytorch,Pytorch,在一个时间段内,是否可以使用长度不等的批次来训练模型?我是pytorch的新手。如果你看一下,你会看到一个drop\u last参数,它解释了有时当数据集大小不能被批大小整除时,你会得到不同大小的最后一批。所以基本上答案是肯定的,这是可能的,它经常发生,并且不会影响(太多)神经网络的训练 不过,您必须稍微小心一点,一些pytorch层处理非常小的批量很差。例如,如果您碰巧有Batchnorm层,并且如果您得到一个大小为1的批,您将得到错误,因为Batchnorm在某个点被len(batch)-1

在一个时间段内,是否可以使用长度不等的批次来训练模型?我是pytorch的新手。

如果你看一下,你会看到一个
drop\u last
参数,它解释了有时当数据集大小不能被批大小整除时,你会得到不同大小的最后一批。所以基本上答案是肯定的,这是可能的,它经常发生,并且不会影响(太多)神经网络的训练

不过,您必须稍微小心一点,一些pytorch层处理非常小的批量很差。例如,如果您碰巧有Batchnorm层,并且如果您得到一个大小为1的批,您将得到错误,因为Batchnorm在某个点被
len(batch)-1
除。更一般地说,训练一个具有批量规范的网络通常需要大量的批量,比如至少16个(文献通常针对32或64个)。因此,如果您碰巧有可变大小的批次,请花时间检查您的层在批次大小方面是否有优化培训和收敛的要求。但除了特殊情况外,你的人际网络无论如何都会训练,不用担心


至于如何使用定制尺寸制作批次,我建议您看看和的pytorch实现并从中获得灵感。您可能希望实现类似于
BatchSampler
的功能,并使用
Dataloader

batch\u sampler
参数。您好,您是否在询问是否有办法故意生成不同大小的批(通过调整Dataloader或类似的方式)或者,当训练过程中出现不同大小的批次时,这是否是神经网络的问题?是的,实际上两者都有,因为我在采样器中产生了可变批次。所以,我想知道我需要做什么,比如像神经网络这样的pytorch模型,可以处理这个问题?是的。为什么它不起作用?您的模型不应该依赖于批大小,因此使用不同的批大小调用您的模型不会有任何问题。记住批量大小只是第一轴上输入张量的大小。我来自Tensroflow/Keras,因此我认为您只能使用固定批量进行训练。但我不确定这是否仍然是真的……所以,我可以毫无问题地在不同的bachtes上调用我的模型批次的for循环?