묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음하는 딥러닝과 파이토치(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피쳐맵이 생성된건가요?
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
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에서는 그런 모듈이 따로 없는건가요?
-
미해결Do It! 딥러닝 입문
YOLO v5 모델은 비지도학습이 맞나요?
YOLO v5 모델은 비지도학습이 맞나요?
-
미해결처음하는 딥러닝과 파이토치(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에서 실제 사용예시가 어떻게 다른지가 궁금합니다.감사합니다.
-
해결됨실전 인공지능으로 이어지는 딥러닝 개념 잡기
LSTM 모형의 이해
선생님 이해가 잘 안가는 부분이 있습니다 LSTM을 보면 f, i, s~, o 전부 같은 x, h t-1의 데이터를 쓰고 있지만 각각의 다른 가중치를 쓰는 것은 이해를 했습니다그런데 input, forget 게이트에서 얼만큼 잊고, 얼만큼 받아 드린다고 하셨는데 이 부분은 각각 따로 계산이 되는건가요? 1-x가 아니여서 비율의 합이 1이 아닌데 어떤 원리로 이것을 forget gate라고 하는건가요? (아니면 s t-1이 자체가 전의 정보를 담고 있어서 이를 시그모이드로 비례적으로 계산하는건가요...?) 그리고 마지막으로 i,s~ 는 둘다 곱해서 이를 input gate라고 하는건가요? 아니면 i_t만 input gate인가요?(i,s~ 둘다 같은 데이터인데 가중치만 달라서 혼동이 옵니다) *요약하자면 선생님 써주신 공식을 보면 그냥 같은 데이터에 다른 가중치를 계산한건데 어떤 원리로 이게 작동하는지 잘 이해가 가지 않습니다*가능하시면 해당 수식이 해당 모형에서 어떻게 작동하는지 조금 더 알려주시면 감사하겠습니다 :)
-
미해결실전 인공지능으로 이어지는 딥러닝 개념 잡기
RNN 가중치 w,u,l shape 질문
안녕하세요 선생님 RNN에 대한 알고리즘을 공부하다가 가중치의 shape를 보면서 이해가 가지 않아서 질문을 드립니다 a(t)안에 있는 원소들의 shape들이 달라도 weight를 통해서 n*1의 형태로 만드는 것은 이해를 했는데 input과 ,h(t-1)의 행이 다른 이유는 무엇인가요?행이 달라도 되는 이유가I work at Google라고 할때I, work (t시점이 work일때)i, work의 글자 수의 차이 때문에 이렇게 행이 다른건가요? 감사합니다
-
미해결처음하는 딥러닝과 파이토치(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
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
Validation Dataset의 Shuffle 관련 질문
안녕하세요. 강의 통해 항상 도움 받고 있습니다.다름이 아니라 현재 진행중인 프로젝트에서 모델을 학습하며 Validation 데이터셋에 대한 성능을 확인하는데, Validation 데이터셋의 shuffle을 했을 때와 안했을 때 성능에 유의미한 차이가 발생합니다.무엇이 이유이며 Validation 및 Test Dataset은 항상 Shuffle=False로 설정해주어야 하는지 궁금합니다.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
09.simple_actual_example_multi_label_calssification에서 loss함수에 대해서 질문이 있습니다.
epoch를 돌리는 코드에서 loss = loss_func( y_minibatch, y_minibatch_pred) 했는데 다음과 같은 오류가 났습니다." 0D or 1D target tensor expected, multi-target not supported "그래서 쥬피터의 원본대로 pred를 먼저하니까 정답이 나오더라구요. 구글링을 해본 결과 nn.CrossEntropyLoss()(pred, target) 계산된다고합니다.질문1. 순서를 지켜야하는 이유가 있나요?질문2. MSE와 BCE도 (pred, target) 순서를 지켜야하나요? 구글링을 해봤는데 정확하게 나오지는 않아서 여쭤보게 되었습니다.감사합니다.
-
미해결프로그래머를 위한 강화학습(저자 직강)
PPO에서 min()을 사용하는 이유가 궁금합니다
설명해주신대로면,min()을 사용하지 않아도 이미 clip()을 통해서 r()이 상항과 하한을 넘기면 a 혹은 b로 고정되고, 그 범위 안에 들어가면 r()이 그대로 나오는 것으로 생각됩니다. min()이 여기서 어떠한 역할을 하는지 궁금합니다.=> 범위 안에 있을때 r(original) 과 r(clipped)가 달라지는 경우가 있나요?