NumPy 레코드

2250 단어
1. 데이터에 shuffle 진행
직접 shuffle 배열: 1⃣️np.random.permutation
data = [1, 4, 9, 12, 15]
after_shuffle = np.random.permutation(data)
print(after_shuffle)

2⃣️np.random.shuffle
data = [1, 4, 9, 12, 15]
np.random.shuffle(data)
print(data)

또한 이로써 두 가지 방법의 차이를 알 수 있다. shuffle는 원래의 수조에서 직접 조작하고 원래의 수조의 순서를 바꾸며 되돌아오는 값이 없다.퍼뮤테이션은 원래의 수조에서 직접 조작하지 않고 새로운 혼란 순서의 수조로 돌아가 원래의 수조를 바꾸지 않는다.
색인을 통해 shuffle: 3⃣𐁻 이것은 내가 비교적 자주 사용하는 방법이다. 왜냐하면 이렇게 하면 label의 값이 뒤섞이지 않기 때문이다. 그렇지 않으면 본 요리의 닭은train 을 생각할 수밖에 없다.x와trainlable의 값은 shuffle입니다. 다음에 unzip...index 값의 그룹을 shuffle로 만들 수도 있고, 이 그룹의 무작위 수로 인덱스를 만들 수도 있습니다.내가 사용한 랜덤 수 생성 방법:
  • random_idx = random.sample(range(0,new_length),new_length)는 지정한 목록에서 무작위로 N개의 다른 요소를 추출한다.
  • np.random.choicenp를 사용합니다.random.choice 시 리플렉스를 False로 설정하여 샘플을 다시 넣지 않음을 표시해야 합니다!!
  • index = [0,1,2,3]
    rand_index = np.random.choice(len(index),4,replace=False)
    print(rand_index)
    

    수동shuffle 훈련집 방법 우선batch사이즈, epoch는 몇 개의iteration을 걸어야 합니다. num_batch = int((data_len - 1)/batch_size) + 1 로 계산합니다.
    def batch_iter(x, y, batch_size = 2):
        data_len = len(x)
        num_batch = int((data_len - 1)/batch_size) + 1
        indices = np.random.permutation(np.arange(data_len))
       
        x_shuff = np.array(x)[indices]
        y_shuff = np.array(y)[indices]
        for i in range(num_batch):
            start_id = i * batch_size
            end_id = min((i+1) * batch_size, data_len)
            yield x_shuff[start_id:end_id], y_shuff[start_id:end_id]
    x = [[1,2,3,4],[2,3,4,5],[32,2,2,2],[1,1,1,1],[2,2,2,2],[3,3,3,3]]
    y = [1,0,0,1,0,1]
    # print(batch_iter(x,y))
    data = batch_iter(x,y)
    for x,y in data:
        print(x)
        print(y)
    

    Dataloader shuffle 트레이닝 세트 사용 방법
    x_tensor = torch.tensor(x)
    y_tensor = torch.tensor(y)
    def get_batch(batch,x,y):
        torch_dataset = Data.TensorDataset(x, y)
        loader = Data.DataLoader(dataset=torch_dataset,batch_size=batch,shuffle=True)
        return loader
    data = get_batch(2,x_tensor,y_tensor)
    for train_x,train_y in data:
        print(train_x)
        print(train_y)
    

    그런데 둘 다 shuffle padding을 끝내야 하는 그룹을 발견했어요.Batch마다 패딩을 어떻게 해야 할지 모르겠어요.

    좋은 웹페이지 즐겨찾기