我想知道,我是否正确使用了来自 torchvision 的 toPILImage。我想用它来查看在将初始图像转换应用于数据集后图像的外观。
当我像下面的代码一样使用它时,出现的图像具有像这样的奇怪颜色。原始图像是常规的 RGB 图像。
这是我的代码:
import os
import torch
from PIL import Image, ImageFont, ImageDraw
import torch.utils.data as data
import torchvision
from torchvision import transforms
import matplotlib.pyplot as plt
# Image transformations
normalize = transforms.Normalize(
mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]
)
transform_img = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(256),
transforms.ToTensor(),
normalize ])
train_data = torchvision.datasets.ImageFolder(
root='./train_cl/',
transform=transform_img
)
test_data = torchvision.datasets.ImageFolder(
root='./test_named_cl/',
transform=transform_img
)
train_data_loader = data.DataLoader(train_data,
batch_size=4,
shuffle=True,
num_workers=4) #num_workers=args.nThreads)
test_data_loader = data.DataLoader(test_data,
batch_size=32, …Run Code Online (Sandbox Code Playgroud) 我是一个新手,试图通过kaggle的Cats&Dogs数据集使用此PyTorch CNN 。由于测试图像没有目标,因此我手动对一些测试图像进行了分类,然后将该类放入文件名中,以便进行测试(也许应该只使用了一些训练图像)。
我使用了torchvision.datasets.ImageFolder类来加载训练和测试图像。训练似乎奏效。
但是,我需要做些什么才能使例程正常工作?我不知道如何通过test_x和test_y将test_data_loader与底部的测试循环连接。
该代码基于此MNIST示例CNN。在那里,在创建装载程序后立即使用类似的方法。但是我没有为我的数据集重写它:
test_x = Variable(torch.unsqueeze(test_data.test_data, dim=1), volatile=True).type(torch.FloatTensor)[:2000]/255. # shape from (2000, 28, 28) to (2000, 1, 28, 28), value in range(0,1)
test_y = test_data.test_labels[:2000]
Run Code Online (Sandbox Code Playgroud)
代码:
import os
import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import torch.utils.data as data
import torchvision
from torchvision import transforms
EPOCHS = 2
BATCH_SIZE = 10
LEARNING_RATE = 0.003
TRAIN_DATA_PATH = "./train_cl/"
TEST_DATA_PATH = "./test_named_cl/"
TRANSFORM_IMG = …Run Code Online (Sandbox Code Playgroud) 这已经让我很烦了。")", "]", "}"当已经存在相同类型的结束符号时,VSCode不允许我键入右括号或括号等。
在此WEBM中,您看到我尝试设置另一组括号,而VSCode跳过了我键入的右括号。这非常烦人。 WEBM
如何在VSCode中禁用此行为?(或者更正它,所以VSCode为我关闭了内部括号。)
编辑:我知道我可以使用禁用VSCode中的自动闭合括号"editor.autoClosingBrackets": false。但是我不想完全禁用它。我只想禁用改写。