묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
강사님 Tensorflow 실습코드 중 궁금한 점이 있습니다.
# 훈련 데이터셋에서 포르투갈어 및 영어 예제 출력 for pt_examples, en_examples in train_examples.batch(3).take(1): print('> 포르투갈어 예제:') for pt in pt_examples.numpy(): print(pt.decode('utf-8')) # 포르투갈어 문장 디코딩하여 출력 print() print('> 영어 예제:') for en in en_examples.numpy(): print(en.decode('utf-8')) # 영어 문장 디코딩하여 출력 =====> 위의 코드에 pt 와 en 이 어떻게 생성된 변수인지 잘 이해가 안 가서 여쭤봅니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Batch size 가 극단적으로 작은 경우 (예를들어 batch_size =1) Normalization 적용 방안
강사님, 본 강의 들으면서 정말 많은 도움을 받고 있습니다. normalization 에 대해서 이렇게 상세하게 설명해 준 온라인 강의는 본 적이 없네요 🙂 CNN 을 기반으로 하되 모델 파라메터도 엄청 크고, 데이터셋 크기도 매우 큰 경우, 예를 들어 3D Unet 을 구성해서 3차원의 고해상도 (256 x 256 x 256) 이미지를 input 과 output 으로 사용하다보니 GPU 메모리를 너무 많이 잡아먹어서 batch 에 복수의 샘플을 적용하지 못하고 하나의 batch 에 단일 샘플만 적용하는 경우를 study 하고 있는데요, BatchNormalization 을 적용했을 경우 오히려 학습이 잘 안 되는 것 같아서 Normalization layer 를 야예 제거한 후 모델 학습 진행 중이었습니다. 경험적으로 했던 것이었지만 본 강의를 보다 보니 그 이유가 조금 이해가 되기도 하는데요, 이와 같이 batch size 가 극단적으로 작은 경우에 Normalization layer 을 적용 안하는게 더 좋을 수 있나요? 혹은 설명해 주신 table 에 나와 있는 것 처럼 Group Normalization layer 나 Instance Normalization을 적용하는 것이 개념적으로 더 나은 방법일까요? (설명을 들었을 때는 Group Normalization 을 적용하는 것이 필요한 상황으로 이해가 되기도 하는데.. 제가 이해한 것이 맞는지 확인 부탁드립니다 ^^;) 그리고 Group Normalization 에서 "Group" 의 의미가 무엇인지 잘 와닿지가 않아서 (Batch 나 Width, Height, Sample Number 이외에 그룹이 될 수 있는 경우가 무엇인지가 잘 이해가 되지 않습니다.) ... 요 부분에 대해서 좀 더 설명해 주시면 감사드리겠습니다!
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
패딩과 관련한 질문 드립니다.
교사학습용 데이터와 target 데이터 모두 post 패딩을 하였는데교사학습용 데이터는 <sos> 가 중요하고 target 데이터는<eos> 가 중요하기 때문에 교사학습용은 post, target 데이터는 pre 를 해야 하는거 아닌지요?만약 post 패딩을 하게 되면 길이가 초과하는 교사학습용 데이터는 <sos>가 잘려지지 않을까 생각합니다.강사님 부탁드리겠습니다.
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
seq2seq를_이용한_NMT.ipynb 실습코드 에러 문의사항입니다.
실습 1 - TensorFlow와 Seq2Seq 모델을 이용해서 포르투칼어-영어 번역 수행해보기실습코드 내 GRU를 이용한 Encoder 부분에서 아래와 같이 error가 납니다.encoder = Encoder(vocab_inp_size, embedding_dim, units, BATCH_SIZE) # 샘플 입력 sample_hidden = encoder.initialize_hidden_state() sample_output, sample_hidden = encoder(example_input_batch, sample_hidden) print ('Encoder output shape: (batch size, sequence length, units) {}'.format(sample_output.shape)) print ('Encoder Hidden state shape: (batch size, units) {}'.format(sample_hidden.shape)) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-71-879487bff06b> in <cell line: 5>() 3 # 샘플 입력 4 sample_hidden = encoder.initialize_hidden_state() ----> 5 sample_output, sample_hidden = encoder(example_input_batch, sample_hidden) 6 print ('Encoder output shape: (batch size, sequence length, units) {}'.format(sample_output.shape)) 7 print ('Encoder Hidden state shape: (batch size, units) {}'.format(sample_hidden.shape)) 1 frames <ipython-input-69-76383a24b17a> in call(self, x, hidden) 12 def call(self, x, hidden): 13 x = self.embedding(x) ---> 14 output, state = self.gru(x, initial_state = hidden) 15 return output, state 16 ValueError: Exception encountered when calling Encoder.call(). too many values to unpack (expected 2) Arguments received by Encoder.call(): • x=tf.Tensor(shape=(64, 16), dtype=int32) • hidden=tf.Tensor(shape=(64, 1024), dtype=float32)self.gru(x, initia_state=hidden)부분에서 출력 결과가 두 개가 아닌 65개가 출력되어서 output, state 두 개로 할당하면 안되는 것 같습니다!
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Normalization 질문
안녕하세요, 수업 설명 감사드립니다. cnn이 아닌 일반적인 fully connected NN (multi-layer perceptron) 에서 혹시 batch/instance/layer normalization 을 어떻게 계산하는지 설명을 부탁드려도 될까요 (그림으로 표현해 주시면 더 좋을거 같습니다.)MLP에서라면 small c가 특정 hidden layer의 node/unit에 대응될거 같고 large C가 layer 전체를 표현할거 같은데, H,W는 무엇인지 이해가 잘 되지 않습니다. 특히, MLP에서 instance normalization의 평균/분산을 구할 수가 있을지 궁금합니다 (단일 값 하나일거 같은데..)강사님께서는 어떻게 생각하시는지 알려주시면 감사드리며, 제가 잘못 이해한 부분이 있으면 코멘트 부탁드리겠습니다. 추가로 하나만 더 질문드리고 싶습니다.강의안에서 x_nhwc는 벡터일까요? 아니면 scalar 값일까요? Normalization의 경우에 feature간 (예, 인풋 변수) 평균도 구하는지, element-wise로 구하는지 궁금해서 여쭤봅니다.바쁘실텐데 시간내주셔서 미리 감사드립니다.
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Custom Dataset 실전 프로젝트 실습 1 - CRNN를 이용한 License Plate OCR 모델(Custom Dataset) 학습
결과 30만 나오는 현상 무엇이 잘못되었을까요?데이터 전부 30만 나옵니다
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Custom Dataset 실전 프로젝트 실습 1 - CRNN를 이용한 License Plate OCR 모델(Custom Dataset) 학습
recognizer = keras_ocr.recognition.Recognizer()여기서 인식할 수 없는 키워드가 Dense에 전달되었다고 하면서 진행이 되질 않습니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section 7 [Activation Function의 종류] Softmax logit 분포와 Entropy 질문이 있습니다
안녕하세요 선생님해당 강의 마지막 참고사항: what is entropy 부분에서 Temperature가 낮을수록 softmax logit의 분포가 쏠리면 Entropy가 감소하게 되는 것이 아닌지 궁금합니다! 확인해주셔서 감사합니다!
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Custom Dataset 실전 프로젝트 실습 1 - CenterNet을 이용한 License Plate Detection 모델(Custom Dataset) 학습 실습 Solution
- CenterNet을 이용한 License Plate Detection 모델(Custom Dataset) 학습 실습 Solution 실습해보는데 계속 버젼이 달라서 그런지 실행이 안되네요
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
실습 2 - Char-RNN 코드 학습 부분에서 오류가 발생합니다.
안녕하세요.실습 2 - Char-RNN 코드 학습 부분에서 ValueError: Unrecognized keyword arguments passed to Embedding: {'batch_input_shape': [64, None]} 오류가 발생합니다.
-
해결됨딥러닝 이론 + 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 실무 완전 정복
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 하여도 되는건지 궁금합니다.
-
해결됨딥러닝 이론 + 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로 보이기 때문입니다)혹시 제가 잘못 이해하고 있는 부분이 있다면, 정정해주시면 감사드리겠습니다!
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
트레이닝 에러 발생
for epoch in range(EPOCHS): start = time.time() train_loss.reset_states() train_accuracy.reset_states() # inp -> portuguese, tar -> english for (batch, (inp, tar)) in enumerate(train_batches): train_step(inp, tar) if batch % 50 == 0: print(f'Epoch {epoch + 1} Batch {batch} Loss {train_loss.result():.4f} Accuracy {train_accuracy.result():.4f}') if (epoch + 1) % 5 == 0: ckpt_save_path = ckpt_manager.save() print(f'Saving checkpoint for epoch {epoch+1} at {ckpt_save_path}') print(f'Epoch {epoch + 1} Loss {train_loss.result():.4f} Accuracy {train_accuracy.result():.4f}') print(f'Time taken for 1 epoch: {time.time() - start:.2f} secs\n')위 코드에서 에러 발생합니다. GPT 에도 물어보고 해도 답이 안나와서 조치 방법 질문드립니다.AttributeError Traceback (most recent call last) <ipython-input-109-d5f75ec190c4> in <cell line: 1>() 2 start = time.time() 3 ----> 4 train_loss.reset_states() 5 train_accuracy.reset_states() 6 AttributeError: 'Mean' object has no attribute 'reset_states'
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
트랜스포머 인코더 레이어 테스트 에러
sample_encoder_layer = EncoderLayer(512, 8, 2048) sample_encoder_layer_output = sample_encoder_layer(tf.random.uniform((64, 43, 512)), False, None) sample_encoder_layer_output.shape # (batch_size, input_seq_len, d_model)해당 코드에서 아래 에러가 떴어요. 어떻게 조치하면 될까요?Only input tensors may be passed as positional arguments. The following argument value should be passed as a keyword argument: False (of type <class 'bool'>)
-
미해결모두의 한국어 텍스트 분석과 자연어처리 with 파이썬
강의에서 사용하는 csv 파일이 없습니다
0301 KLUE Dacon 데이터셋 소개, 텍스트 길이 분석강의에서 다루는 'topic_dict' csv 파일이 없습니다. 어디서 파일을 구할 수 있나요??
-
미해결모두의 한국어 텍스트 분석과 자연어처리 with 파이썬
적합한 알고리즘이나 라이브러리를 알고싶습니다
안녕하세요제가 구현하고 싶은 내용은 업체명(상호)에서 특정한 문자열 포함여부에 따라 20가지로 분류하고자 합니다제 소견에 로지스틱 회귀 + softmax + 크로스 엔트로피로 하는 것이 효율적인 것 같은데 적용에 적합한 머신러닝 라이브러리나 알고리즘을 알고 싶고 더불어 관련 자료 또는 사례의 출처도 알려주시면 너무 감사하겠습니다
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Auto Differentiation에서 computational Graph 질문있습니다
안녕하세요, 좋은 강의 준비해주셔서 감사드립니다.딥러닝에 대한 흥미가 점점 더 깊어지는 중입니다!한가지 간략히 질문드리고 싶습니다.노드의 정의 문제와 관련된거 같은데요.. computation graph에서의 노드는 x, w, h, y, L 전부를 의미하는 반면, Neural network에서의 노드는 x, h, y, L이라고 이해하면 될까요?미리 감사드립니다.