NumPy 레코드
직접 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.choice
np를 사용합니다.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마다 패딩을 어떻게 해야 할지 모르겠어요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.