묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
안녕하세요! 불균형 데이터 처리 과정중 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를 더 큰 숫자로 해서 가지고 있는 데이터를 전부 불러오려고 한다면, 소수의 데이터를 너무 많이 재활용해서 과적합이 될까요?
-
미해결파이썬을 활용한 머신러닝 딥러닝 입문
true function에 대해 이해가 잘 안되서 질문 남깁니다
학습 데이터를 통해 모델을 학습 시켰을 때 true function이 나오는 건가요? 아니면 학습 데이터를 통해 모델을 만든 이후에 모델의 검증을 위한 검증 데이터를 넣었을 때 true function이 나오는 건가요?ture function이 만들어지는 시기가 언제인가요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
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)
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Selective Search를 도면에서 특정 기호 찾는 데 활용할 수 있을까요?
안녕하세요. 선생님의 강의를 열심히 듣고 있는 직장인입니다.다름이 아니라 설계도면에서 특정 기호를 찾아야 하는 업무가 있는데 Selective Search를 이용하여 특정 기호의 이미지를 먼저 인식시키고, 그 다음에 입력되는 도면들에서 해당 기호가 있는 곳을 표시하는 작업을 해보고 싶습니다.해당 방법을 이용하면 될지, 아니면 더 좋은 방법이 있을지 문의드립니다.
-
해결됨U-Net 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0 - 딥러닝 의료영상 분석
Unet 을 회귀문제에 적용할 수 있을지요?
안녕하세요? U-net 을 회귀문제에 활용하는 방안 관련 몇 가지 질문을 드리고자 합니다.예를 들어 위 그림의 왼쪽과 같이 부재의 design 특징을 가지는 section image 와 속도 등의 value 를 input 을 받아서 오른쪽 그림과 같이 부재의 주변의 온도 프로파일을 예측하고자 한다면 (특정 design 에 대한 simulation 을 대체하는 딥러닝 모델을 구축해 보고자 하는 경우)예를 들어 온도의 연속형 데이터를 급간을 만들어 범주형으로 변환한다면 본 강의의 예제 처럼 범주의 개수만큼 출력 layer 를 만들어 segmentation 문제로 정의 할 수 있을 것 같은데요,질문1) 예를 들어 위 그림의 오른쪽 시뮬레이션 결과 이미지의 RGB 값을 학습용 label 데이터로 사용하는 것이 아닌, 해당 이미지의 좌표에 따른 온도 숫자 자체 value 들을 연속형 데이터로 받아서 output 이미지 픽셀값에 매핑시킨 2차원 데이터를 output 이미지(?) 로 사용한다면, 동일한 U net network 를 가지고 회귀문제로 예측 모델을 만드는 접근이 가능한 것인지 문의드립니다. (U-net 으로 회귀문제를 푸는 예제를 거의 찾아보지 못해서 질문 드립니다.)이유는 온도 수치를 범주로 정의하게 되면 예측하고자 하는 수치 정보의 해상도를 낮추게 되어 오차를 만들어 낼 테니까.. 연속형 자료를 범주형 자료로 변환하는 과정에서 발생하는 오차를 원천적으로 없애고, 2차원 혹은 3차원에 존재하게 될 숫자 정보를 최대한 있는 그대로 예측하기 위함입니다.질문2) 만약 위와 같이 Unet 의 출력 layer 를 segmentation (범주) 가 아닌 각 픽셀 위치당 숫자를 예측하는 회귀 문제를 예측할 수 있도록 재구성한다면, 출력 layer 를 구체적으로 어떻게 구성해야 하는지요? 단순히 최종 layer 의 Conv2D 의 activation = 'linear' 로 정의하면 될지요?질문3) 이어지는 질문이지만 본 단원 강의 내용에서 이해해 보면 Unet 활용 시, 범주를 예측하는 segmentation 문제에서는 출력 layer 의 채널 수를 범주의 class 개수로 정의하는 듯 한데.... 픽셀 위치에 mapping 되는 value 값을 예측하는 회귀 문제로 접근하는 경우, 최종 Conv2D layer 의 채널 수를 어떻게 설정해야 하는는지.. 문의드립니다. (단순히 1채널로 정의하면 될지요?)질문4) 2D 혹은 3D 이미지 혹은 모델링을 input 받아서 2D or 3D 공간상의 숫자들을 예측하는 딥러닝 모델을 구축한다면... u-net 이 최선일지.. 혹은 알고 계시거나 경험해 보신 다른 네트워크 모델이 있을지... 강사님의 고견을 듣고 싶습니다. ^^;;
-
해결됨혼자 공부하는 머신러닝+딥러닝
은닉 상태에 대한 질문이 있습니다
강사님 언제나 친절한 답변에 감사드립니다.다름이 아니라 490p에 은닉 상태 이미지에 관해 질문이 있습니다.하단의 도움말을 참고하면 '앞의 그림 O도 은닉상태랍니다'라고 적혀있는데, 이 말이 의미하는 것이 두번째 타임스탭부터는 이전 층의 출력이 재사용되기 때문에, 셀도 출력에 포함되는 것으로 생각하면 된다는 말씀이 맞을까요?그 부분이 직관적인 이해가 되질 않습니다
-
미해결파이썬을 활용한 머신러닝 딥러닝 입문
셔플 시, target과 데이터가 섞일 때
제가 강의를 들으며 사이킷런에 iris 샘플을 가지고 data와 target을 나누고 있는 와중에 문득 궁금한 점이 생겼습니다.train_test_split을 통해 train셋과 test셋을 나누게 되는데 shuffle이 True로 되어 있기 때문에 자동적으로 shuffle이 수행되지않습니까? 이 때 샘플데이터와 타겟은 짝을 지어서 셔플이 되는 건가요? 아니면 샘플데이터도 타겟 데이터도 둘 다 아무렇게나 섞이는 건가요?
-
미해결Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
(재등록) 슬렉 메일이 안와요..
다른 메일로 받고싶어서 4월 9일에 올려서 답변도 받았는데.. 안왓습니다...... jkw06444@gmail.com
-
미해결모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌
강의자료 ppt
안녕하세요 처음 배워보려고 해서 찾아찾아 오게됐습니다 강의 너무 좋은데 강의하시는 ppt가 따로 제공이 되는건지 궁금해서요~혹시 제공된다고 제가 어디서 찾을 수 있을까요??
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
선생님 질문입니다!
3:23 에서 질문을 드리고 있습니다!예측 BBbox 와 positive 좌표차이가 Ground truth와 positive 좌표차이와 같게 만든다고 하셨는데 가령 빨간점이 파랑 점과의 거리 가 같은 곳은 무수히 많다고 생각하는데 단순히 거리를 줄이는 것이 어떤 원리로 regression이되는지 이해가 되지 않습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mask 없이 mask-RCNN 사용이 가능할까요??
안녕하세요 선생님,궁금한 점이 생겨 이렇게 질문 남깁니다.지금 torchvision의 faster r-cnn을 이용해서 object detection 프로젝트를 수행하고 있는데여기서 제가 궁금한 점은 2가지 입니다.사용하고 있는 데이터가 mask 정보가 없는, bounding box와 카테고리 정보만 담겨있는 custom data인데 mask정보 없이 mask R-CNN에서도 실행해볼 수 있을까요??mask 정보 없이 mask R-CNN을 사용하는 것은 faster R-CNN을 사용하는 것과 차이가 없을까요?? 1번을 시도하는 것은 의미 없는 일인 것인지 궁금합니다.감사합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
선생님 질문입니다!
1:01의 그림을 보면서 질문드리고 있습니다!원래 CNN을 거치면 FC layer에 가기전에 여러개의 피처맵을 Flatten 해서 맞춰주는데 지금 그림에서 Conv Network를 통과한 feature 이미지는 하나만 있다고 표현되는데 왜 그런건가요? 제 생각대로라면 Flatten이 되기전에는 여러 피처맵이 있는걸로 알고 있습니다.그리고 이미 vggnet 을 통해서 나온 피처맵을 3*3 conv를 하는 이유를 모르겠습니다. conv를 적용하지 않고 그냥 1*1 conv를 하는 것이 나을거라 생각하는데 이해가 잘 되지 않습니다.
-
미해결혼자 공부하는 머신러닝+딥러닝
합성곱 신경망 파트에 대해 질문이 있습니다.
안녕하세요 강사님. 먼저 늘 유익한 강의에 감사드립니다.다름이 아니라 합성곱에 대해 공부 중 두 가지 의문이 생겨 질문드립니다.1. 451p 신경망 생성을 그림으로 요약한 표 입니다.이미지가 필터를 거칠 때, 필터는 슬라이딩 하듯이 이미지 위를 이동하는 것으로 이해했습니다. 그런데, 몇 차례 이동을 거쳤을텐데 원본과 같은 크기의 이미지를 반환합니다. 반환된 이미지는 어떤 기준으로 계산되는건지 궁금합니다.2. 473p에서 두번째 문단에, '우리에게 필요한 것은 첫번째 conv2D의 출력입니다. model 객체 입력과 conv2D의 출력을 알 수 있다면 둘을 연결하여 새로운 모델을 얻을 수 있지 않을까요?' 부분의 맥락이 이해가 되질 않습니다. 여기서는 왜 새로운 모델을 만들려고 하는걸까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
multi-class segmentation mask일 때 COCO format으로 변환하는 방법
구글링을 해도 도저히 답을 못 찾겠어서 질문 드립니다. 지금 맡고 있는 프로젝트에서는, 총 4개의 class가 masking되어있는 이미지 형태로 annotation이 준비되어 있고 이걸 json annotation으로 만들어야 하는데 이럴 경우에는 어떻게 해야 하죠?
-
미해결Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
슬렉 가입메일이 안옵니다.
jkw06444@gmail.com 이 주소로 부탁드립니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
선생님 질문입니다!
구글링을 해도 잘 이해가 안되서 이렇게 질문을 남깁니다.원본이미지는 이미지내에 오브젝트가 어떤 것이 있는지, 어디에 있는지에 대한 정보인 레이블 값과 비슷한 Annotation 파일과 1:1 매치가 됩니다. (pascal데이터라는 가정하에) 그러한 이미지를 selective search를 통해서 예측한 box와 실제위치 (ground truth)의 겹치는 정도(IOU)가 0.5 이상인 이미지를 미리 학습된 CNN(Alexnet)에 넣어 이 이미지가 예측한 이 곳이 "사람"이다. 라고 분류를 해주는 순으로 가는거라 생각하는데. 제가 이해한게 맞는건지 잘 모르겠습니다. 또한 IOU가 0.5이상인 ss predicted 된 박스의 레이블은 어떻게 결정되는 건가요? 머릿속이 너무 뒤죽박죽이라 질문이 두서가없는 점 죄송합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요 선생님
선생님 제가 생각하는 annotation 파일에 대한 생각이 맞는지 궁금합니다.이전에 배웠던 mnist 파일에 빗대어 표현하자면숫자 '1'이라는 이미지에 레이블값 '1' 이 같이 매핑되어있지 않았습니까? 그렇다면 pascal voc에서는 '1' (물론 없지만) 이미지에 레이블값'1', 1이 있는 위치(bounding box), 또는 사진내 다른 이미지의 위치(bounding box)와 같은 좀 더 세분화 된 레이블 내용을 가진 것이 annotation 파일인가요? 그래서 이러한 많은 정보에 다가가기 위해 파싱을 통해 접근하는 거구요.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
데이터 범위 질문
- 강의 영상에 대한 질문이 있으시면, 주말/휴일 제외, 2~3일 내에 답변드립니다- 우선 질문전에 검색을 꼭 해보세요. 저희 목표는 스스로 이슈를 해결하는 역량을 기르는 것이고, 이는 즉 검색역량을 기르는 것입니다- 강의 영상 외적인 질문은 인프런 커뮤니티 (https://www.inflearn.com/community/questions) 도 활용해보세요~강사님 고생많으십니다. 강의 잘 듣고 있습니다.한가지 의문점이 생겨서 질문드립니다. 당뇨병 환자 데이터 강의에서는 data의 범위를 설정하실때 제일 마지막 부분이 target이라서 빼신것이라고 이해했습니다.dataframe으로 출력해서 descr과 함께 확인했는데. target은 따로 되어있는것이 아닌지... 제가 잘못 보고 있는 것인지 궁금합니다.만약 제 말이 맞다고 가정하였을때 코드를 실행해보면 target의 사이즈는 422로 나옵니다 차원값이 없는데 이부분을 unsqueeze를 해서 차원을 추가해주면 될까요저렇게 했을때 loss값이 3000이 넘습니다.optimizer를 adam이나 learning rate를 변경해줘봐도 의미는 없는것 같습니다. 단층이라서 그런것 같은데.위에 데이터의 범위와 차원 추가하는 방법이 맞는 것인지 궁금합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
코랩 파이토치 환경 변화 관련
안녕하세요 선생님가장 최근에 코랩 파이토치 환경이 변경되어 선생님께서 코멘트 주신 내용이 있었는데요저도 그 글을 보고 파이토치를 재설치해서 mmcv를 사용하고 있었습니다.그런데 오늘 오후부터 mmdetection 첫번째 사진과 같은 방법으로 코드를 돌리면mmengine 이 인식되지 않는다는 오류가 발생합니다. 확인한번 부탁드려도 될까요?혼자 해결해보려고 mmdetection installation 페이지에서 아래와 같이 설치해보았는데그 때는 mmengine이 없다는 말은 안나오는데 mmdet.datasets.builder가 인식이 안되더라구요실제로 mmdet.dataset 폴더 안에 builder.py가 없더라구요. 제가 어느 부분을 놓친건지.. 조언부탁드립니다.
-
해결됨예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
BERT를 이용한 텍스트 분류에서 다중분류라면 어떻게 해야할까요?
보여주신 두 개의 예가 모두 이진 분류 문제라서 질문드려 봅니다.AUTOTUNE = tf.data.AUTOTUNE batch_size = 32 class_names = ['neg', 'pos'] # train 데이터셋 준비 df_train_target = df_train.pop('labels') train_dataset = tf.data.Dataset.from_tensor_slices((df_train.values, df_train_target.values)) raw_train_ds = train_dataset.shuffle(len(df_train)).batch(batch_size) train_ds = raw_train_ds.cache().prefetch(buffer_size=AUTOTUNE) # validation 데이터셋 준비 df_valid_target = df_valid.pop('labels') valid_dataset = tf.data.Dataset.from_tensor_slices((df_valid.values, df_valid_target.values)) valid_ds = valid_dataset.shuffle(len(df_valid)).batch(batch_size) valid_ds = valid_ds.cache().prefetch(buffer_size=AUTOTUNE) # test 데이터셋 df_test_target = df_test.pop('labels') test_dataset = tf.data.Dataset.from_tensor_slices((df_test.values, df_test_target.values)) test_ds = test_dataset.shuffle(len(df_test)).batch(batch_size) test_ds = test_ds.cache().prefetch(buffer_size=AUTOTUNE)여기서 class_names를 class수 에 맞게 변경하고 net = tf.keras.layers.Dense(1, activation=None, name='classifier')(net)Fine Tuning시 Dense Layer를 class수에 맞게 변경 하고...< 여기서 activation은 이진 분류 문제임에도 sigmoid가 아니라 None인데, 그럴경우 linear로 되는 것으로 알고있습니다. 다중분류 문제 분류를 할 때도 None으로 설정하면 될까요? > def print_my_examples(inputs, results): result_for_printing = \ [f'input: {inputs[i]:<30} : score: {results[i][0]:.6f}' for i in range(len(inputs))] print(*result_for_printing, sep='\n') print() examples = [ 'this is such an amazing movie!', # this is the same sentence tried earlier 'The movie was great!', 'The movie was meh.', 'The movie was okish.', 'The movie was terrible...' ] reloaded_results = tf.sigmoid(reloaded_model(tf.constant(examples))) original_results = tf.sigmoid(classifier_model(tf.constant(examples))) print('Results from the saved model:') print_my_examples(examples, reloaded_results) print('Results from the model in memory:') print_my_examples(examples, original_results)마지막으로 다중분류를 할 때,reloaded_results = tf.sigmoid(reloaded_model(tf.constant(examples))) original_results = tf.sigmoid(classifier_model(tf.constant(examples)))여기서 tf.softmax로 바꿔주면 되나요?