묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결머신러닝, 딥러닝 입문 : 알고리즘 이해하기
강의자료 문의
강의에서 사용되는 강의자료를 제공해주실 수 있나요?
-
미해결[Pytorch] 파이토치를 활용한 딥러닝 모델 구축
이미지가 출력되지 않습니다
[Pytorch] 파이토치를 활용한 딥러닝 모델 구축섹션 5 CNN(Convolutional Neural Network, 합성곱 신경망)실습 - CNN model (LeNet-5) Mnist Dataset 분류 강의 중15분 15초 부분 code 실행 시 이미지가 출력되지 않습니다.local(jupyter notebook) 에서도 online(colab) 에서도모두 출려되지 않습니다. 어떻게 하면 되는지요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.
섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.강의에 나오는 code 중 아래 부분을 실행하면 RuntimeError 가 발생합니다. 이 부분이 문제라고 나옵니다. --> loss = torch.sqrt(loss_function(y_minibatch_pred, y_minibatch))RuntimeError: The size of tensor a (1460) must match the size of tensor b (256) at non-singleton dimension 1 - 아 래 - for index in range(nb_epochs): indices = torch.randperm(X_train_tensor.size(0)) x_batch_list = torch.index_select(X_train_tensor, 0, index=indices) y_batch_list = torch.index_select(y_train_tensor, 0, index=indices) x_batch_list = x_batch_list.split(minibatch_size, 0) y_batch_list = y_batch_list.split(minibatch_size, 0) epoch_loss = list() for x_minibatch, y_minibatch in zip(x_batch_list, y_batch_list): y_minibatch_pred = model(x_minibatch) loss = torch.sqrt(loss_function(y_minibatch_pred, y_minibatch)) epoch_loss.append(loss) optimizer.zero_grad() loss.backward() potimizer.step() if index % 100 == 0: print(index, sum(epoch_loss) / len(epoch_loss))
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
초기값 관련 질문있습니다.
안녕하세요, 도움되는 강의 제공해주셔서 진심으로 감사드립니다.Harmonic Oscillator 초기값 관련하여 질문있습니다.현재 우리는 pinn의 performance를 확인하기 위해 실제해가 알려진 경우와, pinn의 prediction을 비교하고 있는데요. loss function이 residual과 초기값에 대한 mse로 구성되어 있는데, 우리가 실제 해를 모른다고 가정하고 온전히 pinn으로만 학습한다고 가정할 경우, 초기값에 대한 mse는 어떻게 구할 수 있을까요?제가 미분방정식에 대한 기억이 너무 오래되서 그런데 보통 초기값은 실제해를 몰라도 방정식 별로 알려진 값일까요?미리 감사드립니다.
-
미해결딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
방정식을 세우기 힘든 문제라면 어떻게 해야 하나요?
물리 정보 신경망은 결국 미분방정식 해를샘플데이터를 이용해서 빠르게 찾는 것이 핵심인 것 같습니다. 그러나 현실에서는 방정식 자체를 세우기가 힘듭니다. 예를 들어 단순히 개나 고양이 사진을 구분하는 문제만 봐도 식을 세우기 힘들며, 결국 데이터에 의존해야 하는데요. 물론 문제 성격에 따라 알고리듬을 달리 적용하는 것이 맞지만, 현실 문제에 적용이 힘들어 보입니다. 미분방정식이 있는 난제에만 적용이 가능할까요?수치해석과 비교했을 때 결국 시뮬레이션을 얼마나 빨리하는지의 차이일 뿐, 정확한 해인지는 어떻게 평가할 수 있나요? 더불어서 수치해석은 시뮬레이션 수치를 눈으로 확인할 수 있으니 말 그대로 해석이 가능한데, 인공신경망이 복잡할 경우, 어떻게 해석하나요?
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
마지막에 confusion matrix 작성할때
/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_consistent_length(*arrays) 405 uniques = np.unique(lengths) 406 if len(uniques) > 1: --> 407 raise ValueError( 408 "Found input variables with inconsistent numbers of samples: %r" 409 % [int(l) for l in lengths] ValueError: Found input variables with inconsistent numbers of samples: [2286, 238]수업 내용대로 했는데 이러한 에러가 나오네요.. 그대로 코드로 작성했는데요. 샘플 수가 안맞는건가요.
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
분류 성능이 잘 안 나오는 이유
안녕하세요 강사님..제가 일주일이 넘는 기간 동안 계속 이것저것 시도를 해봤음에도 왜 분류 성능이 10%인지를 모르겠어서 실례를 무릅쓰고 질문을 올리게 되었습니다..cifar10 이미지가 32 크기여서 128 정도로만 rescale을 했고, normalize도 진행했음에도 계속 성능이 10%대이고, loss는 줄어들었다가 갑자기 튀기도 하면서.. 제대로 학습이 되고 있지 않은 것 같습니다ㅠㅠ 바쁘시겠지만 문제의 원인이 무엇인지 여쭤보고 싶습니다ㅠㅠ감사합니다.. https://drive.google.com/file/d/1FEsv1dex9y9I4AFqX42gBIhVeeOcgQXQ/view?usp=sharing
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
PINN 의 business 적용 분야에 대한 질문 입니다.
안녕하세요? PINN 이 무엇인지 매우 궁금하던 차에 인프런에서 강의가 개설되어 수강하게 되었습니다.짧은 시간에 PINN 의 개념과 큰 그림을 이해하는데 매우 도움이 많이 된 강좌여서 정말 감사하다는 말씀을 먼저 드리고 싶습니다 ^^ 제조업체에서 AI 적용을 고민하는 직무에 있다보니 PINN 이 어떤 분야를 대체하기 위해 고안된 것인지 등... business 적용에 대한 몇 가지 질문을 드려 보고자 합니다.일단 PINN 에 대한 저의 이해도가 정확한지 부터 확인하고 싶은데요, 네트워크 구조에는 다른 딥러닝 방법론과 차이점이 없어보이고, 변수에 미분방정식의 변수가, loss function 에는 지배방정식인 미분방정식이 적용되고, 해당 미분방정식을 규제해 주기 위한 초기값이나 경계조건도 Loss 에 반영되어야 한다는 것으로 이해했습니다. 그러다 보니 데이터가 없어도 학습이 가능하고, 일부데이터가 있다면 loss 값에 포함을 시켜서 모델의 오차를 보정시켜 주는 용도로 활용이 되는 것 같습니다. 제가 이해한 것이 맞는지요?그렇다면 제조업계에서의 PINN 이 어느 분야에 잘 맞는지...에 대한 근본적인 질문을 드리고 싶은데요, 해당 시스템 behavior 를 설명할 수 있는 미분방정식이 명확하다는 말은, 그냥 해당 미분방정식에 수치를 넣어서 계산하면 딥러닝에 적용하는 것 보다 더 명확하고 신뢰도 높은 solution 을 얻게 될 것으로 생각이 되어서요.. 만약 CPU solving 자원이 넉넉하다면 굳이 PINN 적용 할 필요 없이 해당 분야에 신뢰도가 높은 지배방정식 자체를 사용해서 문제를 풀면 되는 것은 아닌지요?CAE solving 과정이 미분방정식을 푸는 과정이고 제조업체에서 명확한 지배방정식이 정의 될 수 있는 분야는 CAE analysis 가 가능한 분야라고도 볼수 있을 텐데, 그렇다면 PINN 적용이 가능한 거의 대부분의 문제가 현재 CAE 로도 solving 가능한 분야로 거의 한정되는 것으로 이해하면 될지도 궁금합니다. 그렇다면PINN 의 효용성이란 것은 CAE 보다 좀 더 효율적인 (CPU or GPU 자원도 적게 사용하고 예측시간도 CAE solving 시간보다 많이 짧은) 방법이다.. 정도로 이해 되기도 하는데, '효율성' 이외에도 PINN 이 지배방정식을 컴퓨터로 직접 solving 하는 것보다 더 우수할 수 있는 장점이 있다면 어떤것 들이 있을지요..? 왠지 PINN이 지배방정식이 성립하거나 성립하지 않는 분야를 모두 가지고 있는 일반 제조업체에서 딥러닝을 적용하는 경우보다는 차세대 solver 를 연구하는 CAE software 회사에 더 중요한 방법론인것 같은 느낌도 들어서.. 드리는 질문입니다.꼭 미분방정식이 아니더라도 해당 물리현상의 거시적인 현상을 설명할 수 있는 모종의 수식 혹은 미분방정식은 아니지만 현상적으로 검증된 실험식이 존재한다면 (세부적으로 들어가자면 오차는 존재하지만 거시적인 경향을 따라가는), Loss function 에 PIMM 을 적용해 볼 수 있을지.. 에 대한 질문도 드립니다. 예를 들어 3차원 이미지를 input 받아서 3차원 이미지를 3D convolution layer 로 prediction 하는 경우 (3차원의 pixel level prediction) input 좌표 x,y,z 에 따라서 output 이미지의 좌표 x,y,z 에서의 특성치 u가 모종의 좌표에 따른 함수 관계로 trend 를 따라간다는 것이 이미 증명이 되어 있는 경우라면, u = f(x,y,z) 와 같은 함수를 loss function 에 반영해 놓고, 수집한 데이터에 와 모델이 예측한 값에 대한 MSE 를 더한 loss function 을 minimize 하는 방향으로 학습을 시키는 것도 의미를 가질 수 있는 PINN 활용 방안이 될 수 있는지.. 궁금합니다.
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
아나콘다를 사용하지 않고 파이토치 사용하는 방법
회사에서는 라이선스 문제로 아나콘다를 설치하여 사용하지 못하고 있습니다. 그래서 이전 강의부터 계속 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) 도 활용해보세요~
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
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이 필요한지 알기 위해서는 직접 계산을 다 해봤어야 하는 것인데.. 이것도 위의 경우와 마찬가지로 직접 구하는 방법 뿐인지 알고 싶습니다!감사합니다!
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
사전 학습 모델에서의 layer 변경에 대한 질문
안녕하세요 강사님, 강의 잘 보고 있습니다.다름이 아니라, pretrained model에서 강의에서와 같이(1) model의 feature extraction 부분에서 Conv2d의 kernel_size를 줄이고 (2) model의 fully connected layer에서 출력 크기를 10으로 줄인 부분에서 의문이 있어서 글을 남기게 되었습니다.(2)의 경우는 사실 fully connected layer가 복잡한 구조..?를 가지지는 않는다고 생각하여 다시 학습하는 데 별로 문제가 없다고 생각합니다.하지만, (1)의 경우, 모델의 초반에서 아예 kernel size를 변경했고, 모델 프리징 강의에서 언급하신 바와 같이 그렇게 바꾸게 되면 임의의 랜덤 값으로 가중치가 초기화된다고 말씀하셨는데..! 그렇다면 Imagenet 모델로 사전 학습한 것이 의미가 있는건지 살짝 의문이 듭니다ㅠㅠ사전 학습 모델의 목적이 그대로 웨이트를 사용한다는 것보다 모델의 구조를 가져온다는 것이라면 납득이 되지만, 사전 학습에서의 가중치가 transfer learning 될 때 어떻게 사용되고 변하는지를 잘 몰라서 이런 궁금증이 생긴 것 같습니다..항상 좋은 강의 감사합니다!!
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
안녕하세요? PINNs 입문공학자 입니다.
안녕하세요? 저는 열수력해석 알고리즘을 개발 중인 Thermal Engineer 입니다. 다중배관에 대한 수력학적 해석 알고리즘을 다루는데, 현재는 배관 내부의 유동해석을 regression 기법을 활용한 근사해를 구하는 방법을 활용중입니다.현재 알고리즘은 1 phase 해석은 어느 정도 수행하지만, 2 phase(non-slip condition) 해석에서 많은 난제가 있었습니다.(음함수 발생 등) 그래서 해당 문제를 머신러닝 기법을 활요하면 좋지 않을까 해서 PINNs에 관심을 갖게 되었습니다. 서론이 길었네요.. 나비에 스톡스 equation에 대한 예제를 pytorch로 구현해서 해를 구하는 방법은 해보신적 있으신지 궁금합니다. 제가 풀려는 문제의 핵심 방정식은 나비에 스톡스 equation에 종속되어 있거든요! 잘아시겠지만, PINNs이 정착해서 가장 각광받을 분야는 열/유체 분야가 될 것 같은데, 이에 대해서는 어떻게 생각하시는 지 궁금합니다^^ 감사합니다. 다른 강의들도 쭉 ~ 따라가며 강사님처럼 해당 분야 speciality를 갖고 싶네요 ^^
-
해결됨머신러닝 모델을 활용한 Android, iOS 앱 개발
공지
강좌 운영이나 강의 내용에 관해 궁금한 점이 있으면 자유롭게 나누어주세요.교수자, 수강생 누구나 글쓰기와 댓글 쓰기가 가능합니다.
-
해결됨머신러닝, 딥러닝 입문 : 알고리즘 이해하기
공지
강좌 운영이나 강의 내용에 관해 궁금한 점이 있으면 자유롭게 나누어주세요.교수자, 수강생 누구나 글쓰기와 댓글 쓰기가 가능합니다.
-
해결됨딥러닝 차세대 혁신기술 - 물리 정보 신경망 입문과 Pytorch 실습
2. 미분방정식에서 n이 뭐죠 ?
t - 시간x - x축상의 위치n ?
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
7강 폴더 만들
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 폴더 만드는 부분에서 directory_create('x/x')를 하게 되면 x에 어떤 이름을 넣어도 다 이미 만들어졌다고만 뜨고 실제 드라이브 들어가면 아무것도 폴더가 생성이 안되었는데, 왜 그런건지 잘 모르겠어요. 그리고 현재 디렉토리 위치 설정하는 것도 이런 오류가 발생하는데, 구글 드라이브 마운트 할 때는 잘 됐었는데 이런 오류가 발생하네요..! cd/~ 의 코드를 실행하면 현재 디렉토리를 cd/~에서 ~에 해당하는 디렉토리로 이동해주는게 아닌가요? 아래 사진은 현재 드라이브 디렉토리 경로입니다!
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
test data 의 loss 계산식 문의
10_ADVANCE-EXAMPLE-MILTI-LABEL-CLASSIFICATION 과 11_MILTI-LABEL-CLASSIFICATION-DROPOUT-BATCHNORMALIZATION 강의자료에서 맨 밑부분의 테스트셋 기반 Evaluation 에서 test_loss 를 계산할 때 전체 데이터인 10000으로 나누셨는데, 왜 그러신건지 궁금해서 질문드립니다.train 과 validation 의 loss 계산은 train_batches 와 val_batches 개수(for문 도는 횟수) 만큼만 나누셨는데 test loss 를 계산할 때는 minibatch 가 아닌 전체 데이터로 나누셔서 상대적으로 test data 의 loss 값이 작아보여서요.test_loss = 0correct = 0wrong_samples, wrong_preds, actual_preds = list(), list(), list()model.eval()with torch.no_grad(): for x_minibatch, y_minibatch in test_batches: y_test_pred = model(x_minibatch.view(x_minibatch.size(0), -1)) test_loss += loss_func(y_test_pred, y_minibatch) pred = torch.argmax(y_test_pred, dim=1) correct += pred.eq(y_minibatch).sum().item() wrong_idx = pred.ne(y_minibatch).nonzero()[:, 0].numpy().tolist() for index in wrong_idx: wrong_samples.append(x_minibatch[index]) wrong_preds.append(pred[index]) actual_preds.append(y_minibatch[index]) test_loss /= len(test_batches.dataset)
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]
차원 출력 관련 문의
주피터 노트북 "06_1_DNN_PYTORCH" 자료에서 등록된 parameter 의 차원을 출력해보면 최초 출력되는 파라미터가 최초 등록한 nn.Linear(input_dim, 10) // (4, 10) 이면 (4, 10) 이 출력되어야 할 것 같은데 왜 (10, 4) 가 출력될까요? x = torch.ones(4) # input tensory = torch.zeros(3) # expected outputinput_dim = x.size(0)output_dim = y.size(0)model = nn.Sequential ( nn.Linear(input_dim, 10), nn.LeakyReLU(0.1), nn.Linear(10, 10), nn.LeakyReLU(0.1), nn.Linear(10, 10), nn.LeakyReLU(0.1), nn.Linear(10, output_dim) ) loss_function = nn.MSELoss()learning_rate = 0.01nb_epochs = 1000 optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)for epoch in range(nb_epochs + 1): y_pred = model(x) loss = loss_function(y_pred, y) optimizer.zero_grad() loss.backward() optimizer.step() print(loss)for param in model.parameters(): print (param) print(param.shape)
-
미해결실전 인공지능으로 이어지는 딥러닝 개념 잡기
다중레이어 경사하강법에서 질문
안녕하세요 강사님Loss 함수가 아닌 y_hat부터 미분 하는 이유가 뭔가요?W_11이 Loss의 결과에 미치는 영향을 알기 위해 Loss함수 부터 미분 해야 하지 않나요?? ㅠ
-
해결됨실전 인공지능으로 이어지는 딥러닝 개념 잡기
XOR파트에서 입력표현 방식
안녕하세요 강사님 오랜만에 다시 복습중입니다.XOR문제 6:30쯤에 입력을 행렬로 만들어서 사용 하는데요그 전까지는 입력을 열벡터로 표현 했었는데 다수의 입력을 표현 할때는 왜 행벡터로 표현이 되었는지 궁금합니다.