小编H.S*_*H.S的帖子

PyTorch中的数据增强

我对PyTorch中执行的数据扩充有点困惑.现在,据我所知,当我们执行数据扩充时,我们将保留原始数据集,然后添加其他版本(Flipping,Cropping ...等).但这似乎并没有发生在PyTorch中.据我data.transforms所知,当我们在PyTorch中使用时,它会逐一应用它们.例如:

data_transforms = {
    'train': transforms.Compose([
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
}
Run Code Online (Sandbox Code Playgroud)

在这里,对于训练,我们首先随机裁剪图像并调整其形状(224,224).然后我们拍摄这些(224,224)图像并水平翻转它们.因此,我们的数据集现在只包含水平翻转的图像,因此在这种情况下我们的原始图像会丢失.

我对吗?这种理解是否正确?如果没有,那么我们在上面的代码(取自官方文档)中告诉PyTorch在哪里保留原始图像并将它们调整到预期的形状(224,224)

谢谢

python image-processing dataset pytorch data-augmentation

27
推荐指数
3
解决办法
2万
查看次数

在 PyTorch 中计算每个 epoch 的准确率

我正在研究神经网络问题,将数据分类为 1 或 0。我使用二进制交叉熵损失来做到这一点。损失很好,但是,准确性非常低并且没有提高。我假设我在精度计算中犯了一个错误。在每个时期之后,我在对输出进行阈值处理后计算正确的预测,并将该数字除以数据集的总数。我在精度计算中做错了什么吗?为什么它没有改善,反而变得更糟?这是我的代码:

net = Model()
criterion = torch.nn.BCELoss(size_average=True)   
optimizer = torch.optim.SGD(net.parameters(), lr=0.1)

num_epochs = 100
for epoch in range(num_epochs):
    for i, (inputs,labels) in enumerate (train_loader):
        inputs = Variable(inputs.float())
        labels = Variable(labels.float())
        output = net(inputs)
        optimizer.zero_grad()
        loss = criterion(output, labels)
        loss.backward()
        optimizer.step()

    #Accuracy
    output = (output>0.5).float()
    correct = (output == labels).float().sum()
    print("Epoch {}/{}, Loss: {:.3f}, Accuracy: {:.3f}".format(epoch+1,num_epochs, loss.data[0], correct/x.shape[0]))
Run Code Online (Sandbox Code Playgroud)

这是我得到的奇怪输出:

Epoch 1/100, Loss: 0.389, Accuracy: 0.035
Epoch 2/100, Loss: 0.370, Accuracy: 0.036
Epoch 3/100, Loss: 0.514, Accuracy: 0.030
Epoch …
Run Code Online (Sandbox Code Playgroud)

neural-network pytorch

11
推荐指数
3
解决办法
5万
查看次数