自定义的dataset,但’DogCatDataset’ is not callable
from torchvision import transforms
import DogCatDataset
import os
from torch.utils.data import DataLoader
# 文件夹路径
split_dir = 'DogCatDataset'
train_dir = os.path.join(split_dir, "training_set")
valid_dir = os.path.join(split_dir, 'test_set')
# transform
norm_mean = [0.485, 0.456, 0.406]
norm_std = [0.229, 0.224, 0.225]
data_transform = {
'train': transforms.Compose([
transforms.Resize((32, 32)),
transforms.RandomCrop(32, padding=4),
transforms.RandomGrayscale(p=0.9),
transforms.ToTensor(),
transforms.Normalize(norm_mean, norm_std)])
'val': transforms.Compose([
transforms.Resize((32, 32)),
transforms.ToTensor(),
transforms.Normalize(norm_mean, norm_std)])}
# 构建dataset
train_dataset = DogCatDataset(data_dir=train_dir, transform=data_transform['train'])
valid_dataset = DogCatDataset(data_dir=valid_dir, transform=data_transform['val'])
# 构建DataLoder
train_loader = DataLoader(dataset=train_dataset, batch_size=16, shuffle=True)
valid_loader = DataLoader(dataset=valid_dataset, batch_size=16, shuffle=False)
解决方法:
#用from DogCatDataset import DogCatDataset去替换import DogCatDataset
from DogCatDataset import DogCatDataset