Numpy PyTorch中类间的平衡采样

Numpy PyTorch中类间的平衡采样,numpy,deep-learning,pytorch,sampling,Numpy,Deep Learning,Pytorch,Sampling,我正在使用PyTorch的数据分割数据。随机分割 train\u idx,validate\u idx,test\u idx=数据。随机分割(X, [num\u培训样本、num\u验证样本、num\u测试样本]) 它返回随机拆分的索引。那么我就做下面的事情 train=[X[train\u idx.index],y[train\u idx.index]] validate=[X[validate_idx.index],y[validate_idx.index]] test=[X[test_id

我正在使用PyTorch的
数据分割数据。随机分割

train\u idx,validate\u idx,test\u idx=数据。随机分割(X,
[num\u培训样本、num\u验证样本、num\u测试样本])
它返回随机拆分的索引。那么我就做下面的事情

train=[X[train\u idx.index],y[train\u idx.index]]
validate=[X[validate_idx.index],y[validate_idx.index]]
test=[X[test_idx.index],y[test_idx.index]]
虽然它们的总比例为6:2:2,但类与类之间的抽样并不相同。当我打印计数时,它显示

{0:4251,1:4168,2:4223,3:4192,4:4180,5:4133,6:4226,7:4249,8:4238,9:4140}

现在,我可以迭代样本并生成平衡的子样本,但我想知道在PyTorch(或Numpy)中是否有一种方法要有效地做到这一点。

您可以使用from sklearn,将每个类的样本百分比保留为与数据中相同。您可以使用from sklearn,将每个类的样本百分比保留为与数据中相同。