묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)
보스턴 집값 예측 15번 강의에 쓰이는 csv
보스턴 집값 예측 15번 강의에 쓰이는 csv는 어디서에서 다운받는지요?
-
해결됨딥러닝 CNN 완벽 가이드 - TFKeras 버전
albumentations ShiftScaleRotate
ShiftScaleRotate에서 Only Scale 변환 후 원본 이미지와 사이즈가 같은 이유가 무엇인지 궁금합니다.ShiftScaleRotate 내부에서 원본 크기로 resize해주는 것인지 내부에서 Super Resolution을 적용해주는 것인지 궁금합니다. 화질이 손상되지 않은거 같아서 여쭈어봅니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 3 [실습] PyTorch로 구현해보는 Loss Function의 Cross Entropy 구현 관련하여 질문이 있습니다.
안녕하세요 선생님,batch_size = 16 n_class = 10 def generate_classification(batch_size=16, n_class=10): pred = torch.nn.Softmax()(torch.rand(batch_size, n_class)) ground_truth = torch.argmax(torch.rand(batch_size, n_class), dim=1) return pred, ground_truth def CE_loss(pred, label): loss = 0. exp_pred = torch.exp(pred) # 이 부분 관련 질문이 있습니다. for batch_i in range(len(pred)): for j in range(len(pred[0])): if j == label[batch_i]: print(pred[0], j) loss = loss + torch.log(exp_pred[batch_i][j] / torch.sum(exp_pred, axis=1)[batch_i]) return -loss / len(pred)CE loss를 구현하는 과정에서 exp_pred = torch.exp(pred) 행이 왜 필요한 것인지 궁금합니다!exp를 취해주는 이유는 모델의 출력값 logits에 exp를 적용해 각 클래스에 대한 예측값을 양수로 변환한다고 알고 있는데generate_classification위에서 이미 softmax를 취해서 확률분포로 변환해주기 때문에 음수 값은 나오지 않는데 왜 exp를 적용해주어야 하는지 모르겠어서 여쭤봅니다!
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
pad_both_ends 사용할 때 n은 왜 사용하나요?
제목 그대로 pad_both_ends 사용할 때 n은 왜 사용하나요?그냥 앞뒤로 붙여주면 될 것 같은데, 3을 넣으니 두개씩 붙던데 n값을 설정하는 이유가 있나요?ngram의 n과 관련이 있나요?
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss "미분가능"관련 에서 질문이 있습니다.
안녕하세요 선생님!Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss 에서 질문이 있습니다."미분 가능"에 대해서 궁금한 점이 있는데,MAE loss처럼 0에서 미분이 불가능 한 경우에는 gradient를 계산할 수 없는데 어떻게 해당 loss를 사용할 수 있는 것인가요?또 Huber loss는 한 번만 전 구간 한번만 미분가능하고,Log Cosh loss는 전 구간 2번 이상 미분가능하다고 말씀해주셨는데한 번만 미분 가능한 것보다 2번 이상 미분가능한 것의 장점이 무엇인가요?확인해주셔서 감사합니다!
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
아나콘다를 사용하지 않고 파이토치 사용하는 방법
회사에서는 라이선스 문제로 아나콘다를 설치하여 사용하지 못하고 있습니다. 그래서 이전 강의부터 계속 VS CODE에서 주피터노트북 확장자를 사용하여 강의를 듣고있습니다. 머신러닝 강의 때는 VS CODE에서 라이브러리가 문제 없이 설치되었는데, 파이토치의 경우 터미널에서 pip install torch torchvision torchaudio 한 후, 셀에서 import torch를 하면 계속 "[WindError 126] 지정된 모듈을 찾을 수 없습니다.~~~~" 에러가 뜹니다. 혹시 VS CODE에서 주피터노트북을 활용하여, PIP를 통해 파이토치 설치법을 알려주실수있는지 문의드립니다. 추가로 CUDA를 지원하지 않는 경우 cpu only로 설치해도 강의를 따라하기에 무리가 없는지 궁금합니다. - 강의 영상에 대한 질문이 있으시면, 주말/휴일 제외, 2~3일 내에 답변드립니다- 우선 질문전에 검색을 꼭 해보세요. 저희 목표는 스스로 이슈를 해결하는 역량을 기르는 것이고, 이는 즉 검색역량을 기르는 것입니다- 강의 영상 외적인 질문은 인프런 커뮤니티 (https://www.inflearn.com/community/questions) 도 활용해보세요~
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 15 실습 중, lstm 클래스의 forward 함수 질문
안녕하세요, 먼저 좋은 강의 제공해 주셔서 감사하게 잘 듣고 있다는 감사 말씀 드리고 싶습니다.질문 사항은,수업 중 정의하신 lstm 클래스의 forward 함수를 아래와 같이 정의 하셨는데요,class LSTM(torch.nn.Module): def __init__(self, vocab_size, embedding_dim, hidden_dim, num_layers, n_classes) -> None: super(LSTM, self).__init__() self.vocab_size = vocab_size self.embedding_dim = embedding_dim self.embedding = torch.nn.Embedding(vocab_size, embedding_dim) self.lstm = torch.nn.LSTM(input_size=embedding_dim, hidden_size=hidden_dim, num_layers=num_layers, batch_first=True, dropout=0.2) self.fc = torch.nn.Linear(in_features=hidden_dim, out_features=num_classes) self.sigmoid = torch.nn.Sigmoid() def forward(self, x): x = self.embedding(x) x, (h_n, c_n) = self.lstm(x) x = torch.sum(h_n, dim=0) x = self.fc(x) return xforward 함수의 마지막 부분에서 fc를 통과한 x를 self.sigmod 함수에 통과 시키지 않고 return 하여도 되는건지 궁금합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
Llama3 response 시간
안녕하세요. 수업 잘 듣고 있습니다. 감사합니다.Llama3 모델 알려주시는 부분에서 모델 성능은 너무 좋은데요논문 요약을 위한 fine tuning이 끝난 모델에 input을 넣고 response를 받기까지3분이 걸린다고 말씀하셨는데, 너무 느려서요.왜 느린 것인지, 혹시 이를 더 빨리할 수 있는 방법으로 어떤 것을 활용할 수 있는지 알려주시면 감사하겠습니다.
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
Model Input Size 관련
먼저, 비전공자도 이해할 수 있도록 섬세하게 강의해주셔서 감사합니다.강의에서 efficientnet, xception 등 좋은 딥러닝 모델들을 소개해주셨는데요 실제 어떤 모델이 좋을지 테스트하다 보니 Input size 관련해서 아래와 같은 궁금증이 생깁니다.모델마다 권장 사이즈가 다 다르던데 여러 모델을 테스트 할 때 모델별 권장 Input size로 resize 하는게 좋을까요? 아니면 특정 사이즈로 고정해서 테스트 하는 것이 좋을까요? 이미지를 축소하는 경우보다 확대해서 모델에 넣는 경우 성능이 더 안 좋을까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Feature 표현에 대한 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 교수님. 강의 잘 듣고있습니다.SPPNet의 이해 02 2:30 경에서 SPM으로 균일한 크기의 vector를 표현한다고 했는데 여기서 feature 표현이 3개가 있을 경우 ... 하는게 어떤 말인지 이해가 안 갑니다.예를들어 Max Pooling을 진행한다고 하면 사분면이 나뉘어지지 않았을 때는 1개를 뽑고 4개로 나누어지면 4개, 16개면 16개를 뽑을텐데 여기서 3을 곱하는게 어떨때 곱하는지 이해가 잘 안갑니다. 감사합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
fine-tuning 완료된 모델 관련 질문
autotrain 으로 학습이 완료 된 모델을 Langchain 을 이용하여 서비스 해보고 싶습니다.1. autotrain 으로 학습된 모델도 Langchain 에서 사용할 수 있나요?Langchain 에서 사용하려면 어떻게 해야할까요?
-
해결됨TensorFlow 2.0으로 배우는 딥러닝 입문
선형 회귀 모델에 대해서 질문 있습니다
강좌 TensorFlow 2.0을 이용한 선형 회귀 알고리즘 구현 편에서 나오는 선형 회귀 모델을 실행하였을 때 결과값이 계속하여 미세하게 변화하는 이유가 궁금해서 질문합니다. 수학적 계산식을 항상 동일하니 계산값 역시 항상 동일해야 하는 것 아닌가요?
-
해결됨최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지
안녕하세요, vit에 관심이 많은 사람입니다.
vit.ipynb 파일에서, 코드 !python vit.py --pretrained 1 --drop_rate 0.1 --weight_decay 2e-4 , 이것을 실행하였더니,Traceback (most recent call last): File "/content/gdrive/MyDrive/인프런/VisionTransformer/VisionTransformer/VisionTransformer/vit.py", line 38, in <module> image_patches, _ = iter(trainloader).next() AttributeError: '_SingleProcessDataLoaderIter' object has no attribute 'next' , 이런 에러가 발생하였는데, 어떻게 해결할 수 있을까요?
-
미해결하루 10분 한달완성 선형대수학
커리큘럼 문의
0.1 선형대수 소개를 보면 Group Theory 내용도 다룬다고 나와있습니다. 하지만 강의내용에는 Group Theory이 나와있지 않습니다. 혹시 향 후 업데이트 예정이실까요?
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
AutoEncoder 차원 질문
안녕하세요! 오토인코더 구현 중 질문이 있어서 글을 남기게 되었습니다.class AutoEncoder(nn.Module): def __init__(self): super().__init__() k = 16 self.encoder = nn.Sequential( nn.Conv2d(1, k, 3, stride=2), nn.ReLU(), nn.Conv2d(k, 2*k, 3, stride=2), nn.ReLU(), nn.Conv2d(2*k, 4*k, 3, stride=1), nn.ReLU(), nn.Flatten(), nn.Linear(1024, 10), nn.ReLU() ) self.decoder = nn.Sequential( nn.Linear(10, 1024), nn.ReLU(), nn.Unflatten(1, (4*k, 4, 4)), nn.ConvTranspose2d(4*k, 2*k, 3, stride=1), nn.ReLU(), nn.ConvTranspose2d(2*k, k, 3, stride=2), nn.ReLU(), nn.ConvTranspose2d(k, 1, 3, stride=2, output_padding=1) )여기에서 nn.Linear(1024, 10), nn.ConvTranspose2d(k, 1, 3, stride=2, output_padding=1)에 질문이 있습니다.채널 수를 직접 맞춰주는 것이 아니라 반환 받아서 그 값을 nn.Linear(이 부분, 10)에 넣어주고 싶은데 gpt 한테 물어보니까 그러려면 이렇게 직접 구해서 add_module을 해줘야 한다던데...정말 이런 방법 뿐인지ㅜㅜ 매번 채널수를 직접 구해야 하는 것인지 궁금합니다!def __init__(self, input_shape=(1, 28, 28)): super().__init__() k = 16 self.encoder = nn.Sequential( nn.Conv2d(1, k, 3, stride=2), nn.ReLU(), nn.Conv2d(k, 2*k, 3, stride=2), nn.ReLU(), nn.Conv2d(2*k, 4*k, 3, stride=1), nn.ReLU(), nn.Flatten(), ) self.latent_dim = self.get_encoder_dim() self.encoder.add_module('linear', nn.Linear(self.latent_dim, 10)) self.encoder.add_module('relu', nn.ReLU()) def get_encoder_dim(self): x = torch.randn(1, self.input_shape) x = self.encoder(x) return x.view(1, -1).size(1)nn.ConvTranspose2d(k, 1, 3, stride=2, output_padding=1) 여기에서도 output_padding=1이 필요한지 알기 위해서는 직접 계산을 다 해봤어야 하는 것인데.. 이것도 위의 경우와 마찬가지로 직접 구하는 방법 뿐인지 알고 싶습니다!감사합니다!
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 16 [이론] Transformer의 Encoder 질문
안녕하세요, 강의 감사드립니다.multi-head attention에서 Q,K,V 차원에 대해 질문드립니다.1. 여기서 H는 multi-head 시킨 후 (concatnation 후)의 최종 feature 차원을 의미하는지 궁금합니다. (단일 self-attention에서도 Q,K,V에서 H와 다른거 같은데 확인부탁드립니다)2. 만약, 1이 맞다면 Q,K,V의 차원은 N x H/M 이 되어야 하는건 아닌가 싶습니다. (m은 M을 표현하기 위한 index로 보이기 때문입니다)혹시 제가 잘못 이해하고 있는 부분이 있다면, 정정해주시면 감사드리겠습니다!
-
해결됨강화학습 입문에서 Deep Q-learning/Policy Gradient까지
정책 반복 알고리즘 구현 에서 정책 업데이트 메모리 문제
선생님 #3. 정책 개선 #policy_stable <- true policy_stable = True old_pi = pi #각 s에 대해: for s in range(num_states): # pi_s <- argmax_a(sum(p(s',r|s,a)*[r + gamma*V(s')])) new_action_values = np.zeros(num_actions) for a in range(num_actions): for prob, s_, r, _ in transitions[s][a]: new_action_values[a] += prob * (r + GAMMA * V[s_]) new_action = np.argmax(new_action_values) pi[s] = np.eye(num_actions)[new_action] if old_pi.all() != pi.all(): policy_stable = False여기 최적 정책을 업데이트 하는 과정을 디버깅 하는 과정에서 old.pi = pi 에서 메모리를 공유 해서 pi[s]를 업데이트를 같이 해서 무조건 아래서 if old_pi.all() != pi.all():구문은 True가 나오게 되어 있는데 의도한 바는 old_pi = copy.deepcopy(pi) 로 코드를 바꾸는게 맞나요?
-
해결됨강화학습 입문에서 Deep Q-learning/Policy Gradient까지
반복 정책 평가 실습 알고리즘에서 이론과 코드가 헷갈려서요.
이렇게 기존의 V 테이블을 가지고 새로운 V` 을 구하는데 while True: #delta <- 0 delta = 0 #각 s에 대해 반복: for s in range(num_states): #v <- V(s) old_value = V[s] new_value = 0 #업데이트 규칙 : V(s) = sum(pi(a|s)*sum(p(s,a)*[r + gamma*v(s')])) for a, prob_action in enumerate(policy[s]): # s', r에 대해 합산 for prob, s_, reward, _ in transitions[s][a]: new_value += prob_action * prob * (reward + GAMMA * V[s_]) V[s] = new_value #delta <- max(delta|v - V(s)|) delta = max(delta, np.abs(old_value - V[s]))V[s] = new_value여기 실습 코드에서는 바로 V[s]을 업데이트 합니다.예를 들면9번 타일 상태 값에서 오른쪽 action을 해서 10번의 다음 상태 값을 가지고 계산 합니다.그리고 9번이 상태 값이 업데이트 됩니다.그리고 나서 10번에서 왼쪽의 action의 상태 값을 구할때 이미 업데이트된 9번의 상태 값을 가지고 상태를 업데이트 합니다. 기존 ppt 에서 설명은 기존의 V를 가지고 있다가 기존의 V를 업데이트 하지 않은 채로새로운 V` 테이블을 계산 하고 V 을 V` 로 교체 하는것으로 표현 되고 있습니다. https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_dp.html 해당 사이트의 코드는ppt 에서 배운 대로 V를 V` 로 교체 하는것으로 되어 있습니다. 실습 처럼 바로 값을 업데이트 하는게 맞는건지 ppt 처럼 스왑 하는게 맞는건지어느것이 맞는건지 잘모르겠습니다.
-
미해결파이썬을 활용한 머신러닝 딥러닝 입문
Crash 파일 위치
쥬피터 노트북에서 crash 강의를 수강하려는데 다운 받은 파일집에는 영상과 다른 00.Table of contaent파일로 존재하는데 어떻게 수강해야하나요?
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mm_faster_rcnn_train_coco_bccd 학습시 수행이 안됩니다
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[20], line 4 2 mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir)) 3 # epochs는 config의 runner 파라미터로 지정됨. 기본 12회 ----> 4 train_detector(model, datasets, cfg, distributed=False, validate=True) File /opt/conda/lib/python3.10/site-packages/mmdet-2.28.2-py3.10.egg/mmdet/apis/train.py:163, in train_detector(model, dataset, cfg, distributed, validate, timestamp, meta) 156 model = build_ddp( 157 model, 158 cfg.device, 159 device_ids=[int(os.environ['LOCAL_RANK'])], 160 broadcast_buffers=False, 161 find_unused_parameters=find_unused_parameters) 162 else: --> 163 model = build_dp(model, cfg.device, device_ids=cfg.gpu_ids) 165 # build optimizer 166 auto_scale_lr(cfg, distributed, logger) File /opt/conda/lib/python3.10/site-packages/mmcv/utils/config.py:524, in Config.__getattr__(self, name) 523 def __getattr__(self, name): --> 524 return getattr(self._cfg_dict, name) File /opt/conda/lib/python3.10/site-packages/mmcv/utils/config.py:52, in ConfigDict.__getattr__(self, name) 50 else: 51 return value ---> 52 raise ex AttributeError: 'ConfigDict' object has no attribute 'device'^캐글--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-25-adb1a52111f0> in <cell line: 4>() 2 mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir)) 3 # epochs는 config의 runner 파라미터로 지정됨. 기본 12회 ----> 4 train_detector(model, datasets, cfg, distributed=False, validate=True) 2 frames /usr/local/lib/python3.10/dist-packages/mmcv/utils/config.py in __getattr__(self, name) 50 else: 51 return value ---> 52 raise ex 53 54 AttributeError: 'ConfigDict' object has no attribute 'device'^코랩 안녕하세요 좋은 강의 감사드립니다. import os.path as ospmmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))# epochs는 config의 runner 파라미터로 지정됨. 기본 12회train_detector(model, datasets, cfg, distributed=False, validate=True) 이 셀이 실행시 이러한 오류가 뜨는데 이유를 모르겠습니다