Pytorch如何使用shuffle打乱数据
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍Pytorch如何使用shuffle打乱数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我得告诉你一件事,那就是pytorch中的tensor,如果直接使
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
服务器调研
校园网免服务器
网络安全等级三级保护
采集数据怎样存入数据库
湖北正规软件开发哪家便宜
网页版微信的数据库
服务器空间扩容方案
工行软件开发中网址
黑客文化与网络安全有用吗
大数据里的网络安全
使用过的包含数据库的应用案例
黑魂3 服务器
数据库培训机构排名
比较毒理数据库
网络安全培训内容及形式
贝贝方舟服务器管理工具
榆树有名的网络技术服务排名靠前
杭州蓝牙软件开发价格
canvas取数据库
苹果软件开发打包
数据库技术未来的发展趋势
湖北正规软件开发哪家便宜
小米链接不到服务器
软件开发流程 概要设计
宏脉连接服务器失败
徐州企业软件开发管理
公安网络安全考试试题及答案
上海软件开发学校哪个好
数据库字母加数字是什么类型
仓库管理软件开发自学步骤