记录学习pytorch中出现的一点问题:
在读代码时,发现有用subset切分数据集为训练集和测试集的情况。
subsets = random_split(dset, [train_size, val_size])
train = subset[0]
test = subset[1]
subset的性质,取数据可以用如下方式
indices = train.indices
x = train.dataset #这个dataset其实是train+test,而且
y = test.dataset #这里x,y指向同一个空间,同一个地址。改变一个,另一个也会改变。
dara = x.dataset.iloc[indices] #实际的train是通过indices取出对应的部分。
subset和dataframe都可以直接用dataloader进行load成可以训练的数据集。
同一个seed按照这种方式切分成的数据集是固定的。indices是固定一样的。
网友评论