inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 [데이터과학 Part3] - 지금까지 익힌 이론과 미니배치까지 적용된 딥러닝 코드 구현해보기 에서 질

해결된 질문

501

youngwookr

작성한 질문수 2

0

9분 20초쯤에

indices = torch.randperm(x.size(0)) print(indices) x_batch_list = torch.index_select(x, 0, index=indices) y_batch_list = torch.index_select(y, 0, index=indices)

indices를 랜덤한 순서로 넣었다고 하셨는데

그리고

x_batch_list = torch.index_select(x, 0, index=indices) 이걸사용하는 이유가뭔가요?

어차피 지금 랜덤하게 바뀐순서라면

x_batch_list = x[indices] 이걸통해서 바로 넣어도 되는게 아닌가요?

 

torch.index_select 이건 인덱스로 원하는 데이터만 선택적으로 추출하기에 적합하다고 알고있습니다. 이번에 굳이 x_batch_list = x[indices] 이게아닌 x_batch_list = torch.index_select(x, 0, index=indices) 이걸 사용한 이유를 알고 싶습니다.

제가 아는것이 전부가 아닌 또다른게 있는가해서요

머신러닝 딥러닝 인공신경망 pytorch vision-transformer

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변 도우미입니다.

기본적으로 IT에서 동일한 또는 유사한 기능을 하는 다양한 문법이 있는 것은 일반적이긴 하거든요. 그래서, 말씀하신 방법과 크게 차이는 없습니다.

PyTorch의 torch.index_select와 인덱싱 연산자인 []를 통한 인덱싱 방법은 매우 비슷한 기능을 제공합니다. 둘 다 텐서에서 특정 인덱스를 기반으로 원하는 요소를 선택하도록 합니다.

그럼에도 불구하고, 코드에서 torch.index_select를 사용하는 특별한 이유가 있다면, 다음과 같은 이유들이 있을 수 있습니다:

1. 명시성: torch.index_select 함수는 선택하려는 차원을 명시적으로 지정해야 합니다. 이는 코드를 읽는 사람에게 해당 연산이 어떤 차원에서 수행되는지 명확히 보여주는 장점이 있습니다. x[indices] 표현식은 암시적으로 첫 번째 차원에서 인덱싱을 수행한다는 것을 가정하므로, 이 점이 명시성에서 약간의 차이를 만들 수 있습니다.

2. 성능: 일부 상황에서 torch.index_select[] 연산자보다 약간 더 빠를 수 있습니다. 하지만 대부분의 일반적인 사용 사례에서는 성능 차이는 무시할 수 있을 정도로 작습니다.

3. 호환성: 일부 라이브러리 또는 환경에서는 torch.index_select를 선호할 수 있습니다. 예를 들어, autograd의 역전파 계산이 torch.index_select와 더 잘 작동할 수 있습니다.

그럼에도 불구하고, 주어진 상황에서 torch.index_select(x, 0, indices)x[indices]는 동일한 결과를 제공하므로, 어떤 방법을 선택할지는 주로 개발자의 선호도와 스타일에 따라 편하게 사용하시면 됩니다.

감사합니다.

import torch가 안되는 경우는 어떻게 하나요?

0

17

1

강의 필기는 어떻게 하나요?

0

85

1

섹션 5퀴즈 4번 문제 보기 오류로 보임

0

63

1

섹션17 81번이랑 82번 강의가 중복되는 것 같아서 질문드립니다.

0

88

2

강의교안이 안 옵니다

0

80

1

17-2강 Transfer learning 실습 관련 질문

0

134

2

13섹션 강의자료가 없네요^^

0

92

1

강의자료가 없네요.

0

107

2

LSTM 모델 학습 관련한 질문입니다.

0

127

1

MSE LOSS 관련

0

132

1

test시 minibatch 사용?

0

133

1

Average Test loss 계산식 문의

0

101

1

파이토치 설치

0

247

1

[Pytorch 기울기의 누적 곱? 누적 합?]

0

135

1

3d 텐서에서의 축 구분 질문

0

119

1

항상 tensor([0., 0., 0.]) 형식으로만 나오는 이유

0

111

1

강의자료 PDF 다운로드에 관하여

0

132

1

[실무에서 판다스 copy()메서드의 깊은복사 얕은복사 조정 소요가 생길까?]

0

116

1

섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.

0

149

1

마지막에 confusion matrix 작성할때

0

157

1

아나콘다를 사용하지 않고 파이토치 사용하는 방법

0

853

1

test data 의 loss 계산식 문의

0

288

1

차원 출력 관련 문의

0

245

1

섹션 7-4 당뇨병

0

388

3