Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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框架中发挥作用 在此模型中: class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() # 28x28x1 => 26x26x32 self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3) self.d1 =

我很难理解批如何在Pytorch框架中发挥作用

在此模型中:

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()

        # 28x28x1 => 26x26x32
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3)
        self.d1 = nn.Linear(26 * 26 * 32, 128)
        self.d2 = nn.Linear(128, 10)

    def forward(self, x):
        # 32x1x28x28 => 32x32x26x26
        x = self.conv1(x)
        x = F.relu(x)

        # flatten => 32 x (32*26*26)
        x = x.flatten(start_dim = 1)
        #x = x.view(32, -1)

        # 32 x (32*26*26) => 32x128
        x = self.d1(x)
        x = F.relu(x)

        # logits => 32x10
        logits = self.d2(x)
        out = F.softmax(logits, dim=1)
        return out

在正向定义中,我们传入一些
x
,即从数据加载器为批处理传递聚合图像。此处,
32x1x28x28
尺寸表示一批中有32个图像。我们是否忽略了这一事实,而Pytorch将Conv2d应用于每个样本?前向传播似乎只与单个图像相关。

事实上,网络对批次是不可知的:该模型旨在对单个图像进行分类

那么为什么我们需要批量生产呢?
每个模型都有权重(aka参数),需要使用训练图像优化权重,以便模型尽可能正确地对图像进行分类。

此优化过程通常使用以下方法执行:我们使用权重的当前值对一批图像进行分类。使用当前模型所做的预测以及我们知道的预期预测(“标签”),我们可以计算权重梯度并改进模型。

事实上,网络对批次不可知:该模型设计用于对单个图像进行分类

那么为什么我们需要批量生产呢?
每个模型都有权重(aka参数),需要使用训练图像优化权重,以便模型尽可能正确地对图像进行分类。

此优化过程通常使用以下方法执行:我们使用权重的当前值对一批图像进行分类。使用当前模型所做的预测,以及我们知道的预期预测(“标签”),我们可以计算权重的梯度并改进模型。

如果我正确理解了你,我不会起诉你,如果我没有,我会这么说。基本上,Pytorch使用矩阵乘法,一次计算全部输出,这包括批处理中的所有图像。如果我理解正确,我不是sue,如果我没有理解,那么我就这么说。基本上Pytork使用矩阵乘法,一次性计算输出,这包括批处理中的所有图像。