묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 [데이터과학 Part3]에 파이토치(PyTorch) 텐서 연산 관련 수학과 구현 정리 (이론+실습) 파이토치(PyTorch) 텐서 연산 관련 수학 정리 강의 질
5분 50초쯤에data1 = torch.FloatTensor([1,2]) # 1,2 원소를 가진 1D 텐서 선언이걸 가르키면서 정확히 말하면 2차원 벡터라고 말씀하셨는데 그럼 data1 = torch.FloatTensor([1,2,3,4])print(data1)tensor([1., 2. ,3., 4.])이렇게 된다면 4차원이 되는건가요? 다른 블로그나 구글링을 해보면2. 벡터(1D Tensor)숫자들의 배열을 벡터라고 하며 1차원 텐서라고 한다.벡터의 축의 개수는 1개이다.vector = np.array([1, 2, 3, 4, 5]) print(vector) print(vector.ndim) print(vector.shape)[1 2 3 4 5] 1 (5,)이렇게 말하고 있습니다. 또 강사님의 02_tensor.md 파일을보면벡터(1D 텐서)벡터(1D 텐서): 숫자 여러 개가 특정 순서대로 모여 있는것을 의미함 (배열이라고 이해하면됨)하나의 벡터가 이루는 데이터의 갯수가 n개이면 n-차원 벡터라고함벡터는 열 벡터, 행 벡터 둘다 가리키지만, 열 벡터로 표현하는것이 일반적임이라고 하는데 갯수가 n개이면 n-차원 벡터 이말과 저위의 다른 누군가의 블로그(구글링)의 말에 혼동이 좀 생기는것 같습니다. 아마 강사님께서 차원의 대한 얘기가 혼동될 수 있다고 수차례 말씀하셨는데 이부분인가 싶기도합니다.아니면 제가 잘못 생각하고 있는부분이 있는지 알려주시면 감사하겠습니다
-
해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
답변에 대한 추가질문이 있습니다.
답변 감사드립니다!강의를 통해 Head 수에 따라 다양한 영역에 대한 Attention 이 가능하다고 이해했습니다. 이에 따른 추가적인 궁금한 부분이 있습니다. (아래 질문은 배치 사이즈를 배제하고 질문드립니다.)Umsa를 통한 Linear Projection 이전의 shape는 (N x Dh x k) 이고, 이후의 shape는 (N x D)로 k가 사라져서 다양한 영역을 Attention 하고자 하는 의도가 사라지는 것 아닌지, 그렇다면 Umsa의 역할이 무엇인지 헷갈렸습니다. Umsa를 통한 Linear Projection을 진행한 후에도 다양한 영역을 Attention하고자 하는 Head의 특성이 반영되기에 상관이 없는건지 궁금합니다. Umsa도 무작위로 주어지고 학습을 통해 최적화되는 것이 맞을까요?
-
해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
헷갈리는게 몇개 있습니다ㅠㅠ
안녕하세요 강사님.Transformer 에 대해 처음 공부해보니 헷갈리는 부분들이 있어서 질문남깁니다.1) k 개의 Multi-Head를 만든 후에 Linear를 해주는 이유가 따로 있는지 궁금합니다. 단순히 Residual Connection을 위해 차원을 맞춰주기 위해 하는 것인가요??2) Head의 개수(k)는 CNN에서 필터 개수처럼 사용자가 정해주는 파라미터인가요??3) 클래스 토큰까지 Positional Embedding을 더해줘야 하는 이유가 따로 있을까요??좋은 강의 덕분에 따라가긴 하는데 한 번에 이해하려하니 과부하가 와서 헷갈리는게 생기네요ㅠㅠ코드 분석 파트 들어가면 조금 더 이해가 될 것 같은데 우선적으로 질문남겨봅니다.
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
8강 전이학습에서 kernel size 관련 질문 드립니다.
커널 사이즈의 의미가 먼가요?커널 사이즈를 input size에 맞게 대략 어림잡아 pre-trained 모델 (7, 7) -> (3, 3)으로 바꾸면 되는건가요?예를들어, (2, 2) 로 바꾸는 것과 어떤 차이가 있을까요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
DOGS VS CATS문제에서 흑백사진사용시
선생님 안녕하세요.. 덕분에 파이터치문법에 대해서 이해할수 잇게 되엇습니다 ㅎㅎ다른 여러가지강의도 들어봣는데, 가장이해하기 쉽게설명해주셔서 드디어 이해햇다라고 느끼게 해주는 강의엿습니다 ㅎㅎ 참고로 질문하나 드리겟습니다 ㅎ, 마지막강의 캐글문제 DOGS VS CATS문제인데요.. 제가 가지고 잇는 이미지파일이 흑백사진파일인데 이 흑백사진파일을 사용할때는 그냥cv2.cvtColor()로 컬러로 변환만 하고 그냥 사용하면 되는지요?예를들어, 흑백사진을 그대로 사용하니 transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])에서는 에러가 나던데....흑백사진을 사용할때의 코드상의 변경할 부분이 따로 있는지 알고싶습니다 ㅎ답변 부탁드리겠습니다 ㅎ
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.
안녕하세요. 강의 잘 듣고있습니다.질문은 여기서 16*5*5가 5*5피쳐맵 16개라는데5*5피쳐맵이 갑자기 어디서 나온건가요?앞의 conv2d에서의 필터크기가 5*5여서 5*5피쳐맵이 생성된건가요?
-
해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
Positional Encoding, KQV 질문입니다!
안녕하세요!제가 여쭙고 싶은 질문이 2가지 있습니다. Positional Encoding은 이미지를 패치로 바꿔주었을 때 순서 유지를 목적으로 순서를 기억하는 용도로 이해를 하였는데, 코드에서 랜덤한 값으로 지정하여 이를 단순 더해줍니다. 단순 랜덤한 값을 더해주는 과정인데, 이게 왜 위치를 기억하는 positional encoding이 되는지 이해가 가지 않습니다.Key Query Value 관련해서 셋 모두 Linear Projection을 진행하는데, 같은 representation 하나에 대해서 세개 모두 단순 선형변환을 진행하면 같은 벡터가 나오지 않나 하는 의문이 들었습니다. 만약 그렇다면, 왜 같은 과정을 K Q V 세번이나 진행하는지, 만약 다르다면 nn.Linear를 진행할 경우 벡터 방향이 비슷하게 다른 벡터로 벡터공간에 주입이 되는지 궁금합니다.강의 너무너무 유익했습니다. 감사합니다!
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
14강 데이터 불균형 RandomRotation
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. tr.RandomRotation(10, resample=PIL.Image.BILINEAR),이 부분에서 RandomRotation.__init__() got an unexpected keyword argument 'resample'이런 TypeError 가 발생을 하는데 원인을 잘 모르겠습니다.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
early stopping관련
안녕하세요, tensorflow로 다른 강의들을 듣다가 torch를 공부하기 시작한지 얼마안돼서 여쭤보는 질문입니다.tensorflow에서는 callback함수로 간단히 earlystopping이나 checkpoint등을 가져와 쓸 수 있는 모듈이 있는걸로 알고있습니다. 혹시 torch에서는 그런 모듈이 따로 없는건가요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
nn.Parameter
class로 모델 만드는 설명 해주실 때, linear layer 예제 알려주실 때, 파라미터로 등록하려면 nn.Parameter()로 감싸주라고 하셨는데요, 이후의 코드들을 보면 따로 감싸주는 모습이 안보여서요.파라미터로 등록할 때 명시적으로 필요 없는 경우가 있는 건지요? 감사합니다.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
9:45 쯤에 y_pred_list.extend 질문입니다.
list.append 와 list.extend의 차이는 append는 y_test_pred자체를 리스트에 추가를 하는 것이고, extend는 리스트의 맨 끝쪽에 y_test_pred 원소들을 하나씩 다 넣는것으로 이해를 했는데, 여기서는 append나 extend 둘 다 써도 괜찮은 것인가요? 제가 이해한 바로는 그렇습니다!
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
3장 데이터 불러오기에서 LinearTensor를 정의하는 이유가 궁금합니다.
안녕하세요. 강의 잘 듣고있습니다. 다만 질문이 몇가지 있는데요. 3장 데이터 불러오기를 보던 중 LinearTensor를 정의하는 이유가 궁금합니다. ToTensor로만 해주면 되는 것 아닌가 하는 생각이 드는데, ToTensor() 이후 LinearTensor(2,5)를 해주는 이유가 무엇인가요??LinearTensor에서 init함수와 call함수가 같이 있는데 LinearTensor(2,5)와 같이 호출하면 객체를 만드는 것이니 init을 해주는건가요? 그렇다면 call은 어느 경우에 사용하게 될까요?? 이론적으로는 init을 객체생성, call을 클래스를 함수 그자체로 사용. 하는 경우에 쓰는 것을 알고있으나 pytorch에서 실제 사용예시가 어떻게 다른지가 궁금합니다.감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
pytorch fasterRCNN 커스텀데이터로 학습, 평가 질문
안녕하세요 선생님!선생님 강의해주신 내용 바탕으로 개인 프로젝트를 진행하는 와중에 10일동안 구글링을 통해서도 해결을 못한 문제가 있어 여쭤봅니다..!AI허브(https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100)에서 받은 컨테이너고유번호(BIC)를 FasterRCNN으로 detect하는 코드를 작성중인데, 6천개로 학습시키고 학습시켰던 데이터 일부로 evaluation을 하면 검출을 잘 하는데, 새로운 데이터(학습데이터와 유사한 이미지)로 evaluation을 하면 아무것도 검출을 못하는(빈 텐서만 출력) 현상이 일어납니다. 에폭을 1부터 10까지 해보고 loss가 0.01까지 줄어들며 수렴하는것을 확인했는데도 아무것도 검출을 못하네요.ㅇ모델 : pytorch fasterrcnn_resnet50_fpn(pretrained=True)ㅇ학습과정 * 구글코랩 활용1. AI 허브 json파일을 coco 형식으로 변경(시각화를 통해 정상변경 확인)2. customdataset 정의3. 학습환경 설정 및 학습4. 가중치 저장5. evaluation 환경 설정(pretrained=False) 및 evaluation(가중치 로드)6. pycocotools로 평가지표 출력 구글코랩에서 작성한 코드는 링크로 첨부했습니다.https://colab.research.google.com/drive/1dq4wx7M5GFwLSrz8lcCLIL431Othr94Otrain 모드 모델정의하고, eval모드 모델 정의하는 부분에 뭔가 오류가 있는것 같은데 못 찾겠습니다...ㅜㅜ
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
8분 33초 df_train.corr()['SalePrice'] 부분 질문입니다.
안녕하세요 항상 좋은 강의 해주셔서 감사합니다.df_train.corr()['SalePrice'] 를 실행했더니,ValueError: could not convert string to float: 'RL'이런 벨류 에러가 뜹니다.따라서 인터넷에 찾아보았더니, 'RL'과 같은 문자열을 실수(float)으로 변환할 수 없다고 하며, 이러한 문자열이 존재하는 열은 데이터 타입이 숫자형이 아닌 문자형(object)일 가능성이 높다고 하는데, 위에서 해당 feature를 봤을 떄는 실수형이던데 왜 이런 오류가 발생하는지 아실까요?
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
안녕하세요! 질문이 있습니다
어제 질문 답변 감사드립니다! 궁금한게 해결되었습니다..ㅎ오늘도 질문이 좀 있어서 여쭤보고 싶습니다..! 혹시 augmentation을 한 뒤에 데이터셋을 저장하는 코드를 알 수 있을까요?예를 들어, 1000개의 이미지 데이터가 train_set에 있고, DataLoader에서 transform을 통해 이 1000개를 변형해가며 로드할텐데, 이 로드한 데이터들을 저장하고 싶습니다!다양한 augmentation을 통해서 기존 데이터의 3배정도인 3000개의 변형 데이터들을 저장하고 싶은데 코드를 어떻게 짜야할지 모르겠어서 질문드립니다. 요즘 예전 대회들에 있었던 불균형 이미지 데이터 분류를 연습하고 있는 중인데, 라벨이 총 10개에 어떤 라벨에는 데이터가 600개 가까이 되고, 어떤 라벨에는 데이터가 10개도 안되는 경우들이 있는 불균형이 매우 심한 데이터들입니다. 이 불균형을 weightedrandomsampler에 augmentation을 활용하여 불균형을 해소하고자 하였습니다. validation용으로 원본데이터에서 30%만큼 지정을 해 둔 뒤, train용으로 원본데이터를 weightedrandomsampler를 활용해 원본데이터를 변형하고 가중치를 주어 데이터가 적은 라벨의 데이터를 늘려 학습했습니다. 그 뒤에 아까 분리해 놓았던 validation데이터를 분류했습니다만... 평가기준인 weighted F1 score가 생각보다 낮게 나와서 고민입니다.. 제 생각에는 결국 validation 데이터에는 여전히 라벨별로 불균형이 매우 심한 상태이므로 라벨별로 동등한 양의 데이터로 학습한 모델에서는 제대로 예측을 못한것이 아닐까합니다. 그래서 위에서 질문한 코드를 통해 변형된 데이터에 원본 데이터를 합쳐서 학습을 시키고, 그 다음에 validation을 하면 약간은 나아질까 하는 생각이 듭니다만.. 호형님이라면 어떻게 하실지 궁금해서 여쭤봅니다. 질문이 너무 길고 장황해서 죄송합니다..ㅜ
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
안녕하세요! 불균형 데이터 처리 과정중 augmentation에 대해 질문이 있습니다
imbalanced data를 처리할 때, weightedrandomsampler (replacement=True) 와 augmentation을 통해 불균형을 해소하고자 하는데, weightedrandomsampler에 있는 num_samples 파라미터에 관해 궁금한점이 있어서 질문드립니다. weightedrandomsampler가 작동하는 방법이, 샘플마다 가중치를 줘서 데이터 수가 적은 라벨에서는 더 높은 확률로 뽑히고, 데이터 수가 많은 라벨에서는 더 낮은 확률로 뽑혀서 결국 확률상 거의 같은 확률로 뽑도록 만들어서 불균형을 해소하는 걸로 알고 있습니다.이때, 만약 num_samples를 그냥 원래 train_sets의 길이로 지정을 하면 데이터가 적은 라벨에서는 augmentation을 통해 이미지를 변형해가며 오버샘플링이 된 것 처럼 샘플수가 증가되겠지만, 반대로 원래 데이터가 많던 라벨에서는 기존에 있던 데이터들에서 일부는 뽑히지 않을 수도 있지 않나요?예를들어 (1000,200,100)의 불균형 데이터가 있다고 했을때, 전체 데이터의 개수인 1300만큼 weightedrandomsampler에서 num_samples=1300으로 하고 추출을 한다면, 라벨별로 1300/3 = 433개씩 뽑힐텐데, 이러면 첫번째 라벨의 데이터는 1000개에서 433개를 뺀 567개는 그대로 누락되는건가요?만약 그렇다면 num_samples를 더 큰 숫자로 해서 가지고 있는 데이터를 전부 불러오려고 한다면, 소수의 데이터를 너무 많이 재활용해서 과적합이 될까요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
MNIST 데이터 DNN 학습시키는 반복문 안에 minibatch 관련 질문
# 질문 1. 아래와 같이 model 안에 x_minibatch, y_minibatch를 넣고 학습을 시키는 과정인데 결국 train_batches의 차원은 (375,128,1,28,28) # 48000/128=375 x_minibatch 의 차원은 (128,1,28,28) 여기서 model의 input의 차원은 (128,784) 가 맞을까요? 결국 한번 model 넣을 때마다 128개의 data가 학습되는 건가요? DNNModel에는 input 차원이 (784,)인 1개의 데이터가 들어가서 output으로 (10,) 데이터를 출력한다고 알고있어서 조금 개념이 충돌하는 것 같습니다. # 질문 2. train_batches의 type이 torch.utils.data 이라 shape을 알기 어려워 행렬 구조가 눈에 안들어오는데 따로 보는 방법이 있을까요? model.train() # prep model for training for x_minibatch, y_minibatch in train_batches: y_minibatch_pred = model(x_minibatch.view(x_minibatch.size(0), -1)) loss = loss_func(y_minibatch_pred, y_minibatch) optimizer.zero_grad() loss.backward() optimizer.step() train_loss += loss.item() train_loss = train_loss / len(train_batches) train_losses.append(train_loss)
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
데이터 범위 질문
- 강의 영상에 대한 질문이 있으시면, 주말/휴일 제외, 2~3일 내에 답변드립니다- 우선 질문전에 검색을 꼭 해보세요. 저희 목표는 스스로 이슈를 해결하는 역량을 기르는 것이고, 이는 즉 검색역량을 기르는 것입니다- 강의 영상 외적인 질문은 인프런 커뮤니티 (https://www.inflearn.com/community/questions) 도 활용해보세요~강사님 고생많으십니다. 강의 잘 듣고 있습니다.한가지 의문점이 생겨서 질문드립니다. 당뇨병 환자 데이터 강의에서는 data의 범위를 설정하실때 제일 마지막 부분이 target이라서 빼신것이라고 이해했습니다.dataframe으로 출력해서 descr과 함께 확인했는데. target은 따로 되어있는것이 아닌지... 제가 잘못 보고 있는 것인지 궁금합니다.만약 제 말이 맞다고 가정하였을때 코드를 실행해보면 target의 사이즈는 422로 나옵니다 차원값이 없는데 이부분을 unsqueeze를 해서 차원을 추가해주면 될까요저렇게 했을때 loss값이 3000이 넘습니다.optimizer를 adam이나 learning rate를 변경해줘봐도 의미는 없는것 같습니다. 단층이라서 그런것 같은데.위에 데이터의 범위와 차원 추가하는 방법이 맞는 것인지 궁금합니다.
-
해결됨처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
GPU 학습 파일 없음
GPU로 실행하려면 13_LSTM_STOCK_ADVANCE_GPU.ipynb 파일로 실행하라고 적혀 있는데, 강의 자료 다운로드 시 해당 파일이 없는 것 같아요
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
코랩 실행여부 관련
코랩 실행시 에러메시지가 자주 뜹니다 ㅠㅠ가령 보스턴 집값 예측하기(4-1)강의를 수강 중인데첫줄부터 실행을 누르면 아래와 같이 에러메시지가 뜨고,하위 코드도 전부 에러가 뜹니다. [Errno 2] No such file or directory: '/content/gdrive/My Drive/deeplearningbro/pytorch' /content