torch.utils.data has no attribute 'random_split'划分训练集和验证集

在使用Pytorch对训练数据进行划分的时候,最常用的就是使用random_split函数将原始的训练集分割为训练集和验证集,但是真正进行的时候却发现报错了。一番搜寻之后,发现是pytorch版本的问题。Pytorch 1.1.0版本的random_split在torch.utils.data里,而我用的0.4.0版本中random_split位于torch.utild.data.dataset里,这一点需要注意。当然为了避免和torchvision中的dataset重复,最好的办法其实就是升级pytorc的版本。现在使用Pytorch 0.4.0版本分割原始训练集为训练集和验证集的关键代码如下:


dataset={}

#原始训练集
dataset['train_total']=ImageFolder(os.path.join(opt.dataroot,opt.dataset,'train')) 
#原始测试集
dataset['test']=ImageFolder(os.path.join(opt.dataroot,opt.dataset,'test'))

dataset_size=len(dataset['train_total'])

valid_size=int(np.floor(opt.valid_proportion*dataset_size))
train_size=dataset_size-valid_size

# 如果是高版本pytorch,则应该是torch.utils.data.random_split
dataset['train'],dataset['valid']=torch.utils.data.dataset.random_split(dataset['train_total'],[train_size,valid_size])

torch.utils.data has no attribute 'random_split'划分训练集和验证集_第1张图片

 

你可能感兴趣的:(深度学习)