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])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值