Pytorch如何使用shuffle打乱数据
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Pytorch如何使用shuffle打乱数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我得告诉你一件事,那就是pytorch中的tensor,如果直接使
千家信息网最后更新 2026年11月03日Pytorch如何使用shuffle打乱数据
这篇文章主要介绍Pytorch如何使用shuffle打乱数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
首先我得告诉你一件事,那就是pytorch中的tensor,如果直接使用random.shuffle打乱数据,或者使用下面的方式,自己定义直接写。
def Shuffle(self, x, y,random=None, int=int): if random is None: random = self.random for i in range(len(x)): j = int(random() * (i + 1)) if j<=len(x)-1: x[i],x[j]=x[j],x[i] y[i],y[j]=y[j],y[i] retrun x,y那你就会收获一堆的混乱数据,因为使用这种交换的方式对tensor类型的数据进行操作,会导致里面的数据出现重复复制的问题。
比如我y中的数据为【0,1,0,1,0,1】
在经过几次shuffle,其中的数据就变成了【1,1,1,1,1,1】。
数据顿时出现混乱。
正确的方式是先转成numpy,再进行交换数据
比如:
def Shuffle(self, x, y,random=None, int=int): """x, random=random.random -> shuffle list x in place; return None. Optional arg random is a 0-argument function returning a random float in [0.0, 1.0); by default, the standard random.random. """ if random is None: random = self.random #random=random.random #转成numpy if torch.is_tensor(x)==True: if self.use_cuda==True: x=x.cpu().numpy() else: x=x.numpy() if torch.is_tensor(y) == True: if self.use_cuda==True: y=y.cpu().numpy() else: y=y.numpy() #开始随机置换 for i in range(len(x)): j = int(random() * (i + 1)) if j<=len(x)-1:#交换 x[i],x[j]=x[j],x[i] y[i],y[j]=y[j],y[i] #转回tensor if self.use_cuda == True: x=torch.from_numpy(x).cuda() y=torch.from_numpy(y).cuda() else: x = torch.from_numpy(x) y = torch.from_numpy(y) return x,y补充:python对训练数据集shuffle(打乱)的一些方式
1.通过数组来shuffle
image_list=[] # list of imageslabel_list=[] # list of labels temp = np.array([image_list, label_list])temp = temp.transpose()np.random.shuffle(temp) images = temp[:, 0] # array of images (N,)labels = temp[:, 1]2.通过索引 Index 来 shuffle
image_list=[] # list of imageslabel_list=[] # list of labels ##如果image_list存的是读取的特征数据,而不是图片路径,不要注释后面两句(list无法索引内部list)#[list indices must be integers or slices, not list]#image_list = np.array(image_list)#label_list = np.array(label_list) index = [i for i in range(len(image_list))]np.random.shuffle(index)images = image_list[index]labels = label_list[index]以上是"Pytorch如何使用shuffle打乱数据"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数据
方式
混乱
内容
篇文章
索引
价值
兴趣
图片
小伙
小伙伴
就是
数组
更多
注释
特征
知识
类型
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
上海睿民互联网科技有限公司
云信互联网科技有限公司
华中科技大学互联网
赫美联合互联网科技
互联网科技论坛
互联网科技美容
互联网企业和科技型企业
互联网校园科技培训
东莞新华互联网科技学校
长沙互联网科技
科技互联网的核心竞争力
厦门江牛科技互联网
互联网安防科技感
中国互联网公司的科技投入
恒生科技指数 中概互联网
盐城市攀科互联网科技有限公司
安徽九吞吴互联网科技有限公司
青岛互联网科技园
颐高云石互联网科技
广东猪兼强互联网科技有限公司
互联网与科技发展
互联网科技开发公司
互联网金融 科技金融
为想互联网科技
世界互联网领先科技成果
贷财互联网科技
新浪科技互联网
数字互联网科技有限公司
山东蛋芒互联网科技有限公司