zoukankan      html  css  js  c++  java
  • 同时打乱数据集和标签的几种方式

    最好先将数据转换为numpy数组的格式。

    方法一:使用np.random.shuffle

    state = np.random.get_state()
    np.random.shuffle(train)
    np.random.set_state(state)
    np.random.shuffle(label)

    或者这么使用:

    需要注意的是,如果数组类型是:['a','b','c','d'],(4,)

    我们要先将其转换为[['a'],['b'],['c'],['d']],(4,1)

     train_row = list(range(len(train_label)))
     random.shuffle(train_row)
     train_image = train_image[train_row,:]
     train_label = train_label[train_row,:]

    方法二:使用np.random.permutation()

    shuffle_ix = np.random.permutation(np.arange(len(train_data)))
    train_data = train_data[shuffle_ix,:]
    train_label = train_label[shuffle_ix,:]

    方法三:使用pytorch中的Dataset,还可以设置batchsize的大小

    dataset = torch.utils.data.TensorDataset(data, target)      # 设置数据集
    train_iter = torch.utils.data.DataLoader(dataset, batch_size, shuffle=True) # 设置获取数据方式

     举个例子:

    import numpy as np
    tes = np.array([['a'],['b'],['c'],['d']])
    shuffle_ix = np.random.permutation(len(tes))
    shuffle_ix = list(shuffle_ix)
    print(shuffle_ix)
    tes = tes[shuffle_ix,:]
    [1, 3, 0, 2]
    
    array([['b'],
           ['d'],
           ['a'],
           ['c']], dtype='<U1')

    参考:

    https://blog.csdn.net/sinat_38682860/article/details/108813209

  • 相关阅读:
    java集合归纳
    判断回文数
    29:四则运算计算表达式的值
    getOutString 输出弹出字符串
    两个字符串中不同元素的个数
    字符串各个字符ASCII值加5
    23:一个整数的二进制表示中有多少个1
    Java进程间通信
    转 双重检查锁定与延迟初始化
    Key-Value键值存储原理初识(NOSQL)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/13763027.html
Copyright © 2011-2022 走看看