월 14,740원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
영상 속 링크 오류 확인
영상 속 링크 두 가지가 접속이 안 되어서 (오류 메세지: "You've reached a dead end.") 아래 다른 링크들로 변경된 것이 맞는지 확인 부탁드립니다. (1) https://pytorch.org/docs/stable/torchvision/transforms.html -> https://pytorch.org/vision/stable/transforms.html (2) https://pytorch.org/docs/stable/torchvision/datasets.html -> https://pytorch.org/vision/stable/datasets.html 항상 좋은 강의 감사합니다 :)
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
fc1 질문드립니다
5 x 5 피처맵이 어디서 나온건가요...? 16은 전단계 output layer를 받는걸로 이해를 했는데 5 x 5가 어디서 어떤 원리로 나온건지 모르겠습니다 ... 좋은 강의 감사합니다
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
enumerate
enumerate(trainloader, 0)에서 0을 넣어주신 이유가 있나요? enumerate(trainloader)로 해도 똑같지 않나요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
torchvision transforms에서 왜 cuda를 붙였을 때 연산이 잘 안나오나요?
안녕하세요 gaussianblur 이미지 augmentation을 적용할 때, 이미지에 cuda에 붙였을 때와 안붙였을 때 수행시간 차이가 발생하는데, 이유가 있을까요? 아래 코드에서는 0.001s, 0.001s씩 걸리는데 import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms import time import albumentations as A import numpy as np sample_img = torch.randn((1, 3, 224, 224), dtype=torch.float32) sample_img2 = torch.randn((3, 224, 224), dtype=torch.float32).cuda() gaussian = transforms.GaussianBlur(5) since = time.time() gaussian_img = gaussian(sample_img) print(f'time: {time.time()-since:.3f}s') since = time.time() a_gaussian = A.GaussianBlur() gaussian_img2 = a_gaussian(image=sample_img2.permute(1, 2, 0).detach().cpu().numpy())['image'] print(f'time: {time.time()-since:.3f}s') 위 코드에서 sample_img에 cuda를 붙이면 오히려 시간이 0.4초로 늘어나게 되네요
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
argmax
삭제된 글입니다
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
배치사이즈 채널 너비 높이
파이토치는 채널수 * 너비 * 높이라고 말씀해주셨는데,,, ToTensor로 변환했을때만 채널수 * 너비 * 높이 로 표현하는 거고 그전까지는 일반적인 방법 (너비 높이 채널)로 표현하는건가요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
Loss와 Optimizer
안녕하세요, 호형선생님 코드를 보던 중 개념과 더불어 잘 이해가 되지 않는 부분이 있어서 질문 올립니다. 제가 판단한 개념은 Loss : Label과 Pred의 차이 (e.g) Cross Entroy, MSE... Optimizer : Loss값을 최소화 시키기 위한 방법 (e.g) SGD, Adam... Score : 해당 파라미터에서 Label과 Pred의 Performance 와 같습니다. 질문1) loss.backward() optimizer.step() 이 라인에서 optimizer.step()인데요 최적화는 고정된 방법이니까 static하게 굳어있는 것이여야 하지 않니요...? 선언시부터 학습률을 지정하고, step으로 다음으로 넘어가는 것을 지정해 주는것이 잘 이해가 되지 않아서요. 질문2) loss와 Performance Performance는 보통 Metric이라는 것으로 최종적으로 스코어를 나타내고 trainning을 통해서는 Loss를 최적화 시키는 쪽으로 학습을 진행하는 것으로 알고 있어요. 근데 Loss와 Metric을 동일하게 사용할 수는 없는건가요..? 어자피 두가지 개념의 목표는 같은 것 같은데 기초적인 질문이지만 혼자서는 답을 찾기어려워서요. 조언 부탁드립니다.
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
혹시 pytorch python에서 @ 연산자는 무엇을 의미하나요?
안녕하세요 오픈소스 코드를 보는데 q @ 라는 연산이 있는데, @가 무엇을 의미하는지 알 수 있나요? W = q @ torch.sign(torch.diag(torch.diag(r)))
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
t-sne 결과와 분류 결과 관계에 대해서 질문이 있습니다
안녕하세요 vector visualization 때 배웠던 t-sne을 제 데이터셋에 적용해봤는데, 그려진 그래프와 분류 결과의 관계에 대해서 궁금한 점이 있습니다 분류 모델을 통해 얻은 accuracy는 100%였습니다. 그런데 모델 결과에 대해서 t-sne로 표현했을 때는 아래와 같이 그려지면서 빨간색으로 표시된 부분(겹치는 부분)이 생겨났는데, 이는 2차원으로 줄여서 표현하면서 나타나는 어쩔 수 없는 현상인가요? 아니면 제가 과정에서 실수를 했을 가능성이 있나요? 감사합니다
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
왜 seed에 따라서 모델 결과값이 달라지는 것인가요?
안녕하세요. pytorch에 있는 imagenet.py 샘플 코드를 보고 있었는데, 궁금한 점이 있습니다 모델 훈련은 안하고, eval을 해서 샘플 이미지에 대해서 정확도를 계산해보려고 했습니다 제 생각에는 eval, no_grad이면 기본 가중치 값으로 이미지에 대해서 연산할 것 같은데, 파일을 실행할 때마다 달라지더라구요 그래서 --seed arg가 있어서 이를 실행했더니 아래 코드가 동작하는 것 같은데, 이때부터는 값이 고정되어서 나오는데 모델의 가중치 값이 고정되어 있는게 달라지는 것인가요? 아니면 어떤 변화 때문에 그런 것인지 혹시 아실까요? 감사합니다
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
안녕하세요. CAM 연산 때 사용하는 label에 대해서 질문이 있습니다
안녕하세요. 강의 잘 듣고 있습니다 CAM 연산하는 과정에서 의문점이 있어서요. 크게 상관은 없을 것 같은데, 정확하게 CAM 연산을 보려면 모델이 예측한 라벨에 대해서 CAM 연산을 수행하는 것이 맞죠? 코드는 정답 라벨을 가지고 해서, 크게 상관은 없겠지만 의도하신 것이 맞는지 궁금합니다 감사합니다 def cam(model, trainset, img_sample, img_size): model.eval() with torch.no_grad(): # requires_grad 비활성화 model.layer4[1].bn2.register_forward_hook(get_activation('final')) # feature extraction의 마지막 feature map 구하기 data, label = trainset[img_sample] # 이미지 한 장과 라벨 불러오기 data.unsqueeze_(0) # 4차원 3차원 [피쳐수 ,너비, 높이] -> [1,피쳐수 ,너비, 높이] _ = model(data.to(device)) act = activation['final'].squeeze() # 4차원 [1,피쳐수 ,너비, 높이] -> 3차원 [피쳐수 ,너비, 높이] w = model.fc.weight # classifer의 가중치 불러오기 for idx in range(act.size(0)): # CAM 연산 if idx == 0: tmp = act[idx] * w[label][idx] else: tmp += act[idx] * w[label][idx] # 모든 이미지 팍셀값을 0~255로 스케일하기 normalized_cam = tmp.cpu().numpy() normalized_cam = (normalized_cam - np.min(normalized_cam)) / (np.max(normalized_cam) - np.min(normalized_cam)) original_img = np.uint8((data[0][0] / 2 + 0.5) * 255) # 원본 이미지 사이즈로 리사이즈 cam_img = cv2.resize(np.uint8(normalized_cam * 255), dsize=(img_size, img_size)) return cam_img, original_img
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
traindata, testdata transform
6.2에서 데이터를 불러올 때, test data는 테스트하기위한 목적의 데이터로 알고 있는데, transform을 적용하면 안되지 않나요? model.eval()에서 자동으로 transform을 정지?시키나요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
MinMaxScaler 수치 원상복구 방법 문의
안녕하세요. RNN, LSTM, GRU 파트 집중적으로 공부하고 있습니다. 수치의 단위를 맞추기 위해 MinMaxScaler를 사용하여 0~1사이의 값으로 보이는 결과 그래프까지 확인 하였습니다. 다만, 주가예측도, 주택가격도 예측을 하려면 다시 원상복구를 해서 원래 단위로 바꿔서 그래프화를 하고 싶은데, 혹시 방법을 알 수 있을까요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
RNN, LSTM, GRU 알고리즘의 훈련 정확도, 테스트 정확도를 확인할 수 있는 코드
RNN, LSTM, GRU 알고리즘의 훈련 정확도, 테스트 정확도를 확인할 수 있는 코드는 어디에 어떻게 추가해야 할까요? 파이토치는 코랩에서 처음써봐서 잘 모르겠습니다.
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
pytorch 강의 중 RNN 결과에 대한 질문
Pytorch 강의 너무 잘듣고 있습니다. 감사합니다! pytorch강의에서 RNN 강의자료 가장 밑에 그래프를 보면, actual이 pred보다 5일이 더 많은데, 이부분에 대해서 pred값을 actual 보다 많게 바꿀 수 없을까요??? ㅠㅠㅠ
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
추가 질문
Sequential을 사용하여 추가 하는 방법말고 , 첫번째로 알려주신 내용으로 저번 질문에 층 추가를 해봤습니다. class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool1 = nn.MaxPool2d(2, 2) self.conv2 = nn.Conv2d(6, 16, 5) self.pool2 = nn.MaxPool2d(2, 2) self.conv3 = nn.Conv2d(16, 32, 3) self.pool3 = nn.MaxPool2d(2, 2) self.conv4 = nn.Conv2d(32, 64, 3) self.pool4 = nn.MaxPool2d(2, 2) self.fc1 = nn.Linear(64 * 3 * 3, 120) ##### 추가 부분 self.fc2 = nn.Linear(120, 64) ##### 추가 부분 self.fc3 = nn.Linear(64, 10) def forward(self, x): x = self.pool1(F.relu(self.conv1(x))) x = self.pool2(F.relu(self.conv2(x))) x = self.pool3(F.relu(self.conv3(x))) x = self.pool4(F.relu(self.conv4(x))) x = x.view(-1, 64 * 3 * 3) # 5x5 피쳐맵 16개를 일렬로 만든다. x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = F.relu(self.fc3(x)) x = self.fc4(x) return x net = Net().to(device) # 모델 선언 이런 오류가 발생되는데요.. 제가 어딜 잘못 했는지를 모르겠네요 ^^;;; --------------- RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (3 x 3). Kernel size can't be greater than actual input size --------------- loss_ = [] # 그래프를 그리기 위한 loss 저장용 리스트 n = len(trainloader) # 배치 개수 for epoch in range(10): # 10번 학습을 진행한다. running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data[0].to(device), data[1].to(device) # 배치 데이터 optimizer.zero_grad() outputs = net(inputs) # 예측값 산출 loss = criterion(outputs, labels) # 손실함수 계산 loss.backward() # 손실함수 기준으로 역전파 선언 optimizer.step() # 가중치 최적화 running_loss += loss.item() loss_.append(running_loss / n) print('[%d] loss: %.3f' %(epoch + 1, running_loss / len(trainloader))) print('Finished Training') net = Net().to(device) # 모델 선언
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
Transfer Learning 강의를 보고 문의합니다.
Transfer Learning 강의를 보고 문의합니다. CIFAR10으로만 이미지 테스트를 해보니, 재미가 없어서 ImageNet이미지를 다운받아 전의학습내용에 cifar10이미지가 아닌 ImageNet으로 학습을 해보고 싶은데요.. 이미지 로드를 어떻게 해야하는지 모르겠네요 ;; 혹시 팁좀 얻을 수 있을까요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
CNN 모델을 조금 수정하고 싶은데 어떻게 해야하나요?
유튜브 영상을 보고 잘 하시는거 같아 인프런에 가입하여 열공을 하고있습니다. 궁금한 점이있어 문의 합니다. CNN 모델에서 예제에서 2개의 CNN층과 1개의 FC 층을 추가하여 코드를 작성해보고 싶은데 어떻게 해야할까요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
질문
혹시 out, _ = self.rnn(x, h0) 이부분의 역할이 무엇일까요?
- 미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
np.where 결과에서 dtype이 int64
np.where 결과가 그냥 인덱스라고 생각했다가, 결과값 뒤에 [0]붙여 len()를 적용하기에 뭘까 생각했습니다. 튜플이라는 것을 무심코 들었네요. 궁금한점은 index 값이 들어가는데 튜플이 왜 필요할까? 그리고 dtype가 int64로 했을까? 인데스면 -값도 없는데 uint64로 하면 메모리도 줄이지 않을까 하는 생각이 들어서 질문 남깁니다.