분류 전체보기
-
pytorch-8 앙상블딥러닝/pytorch 2023. 7. 11. 20:34
1. 앙상블 앙상블은 여러개의 개별 모델을 결합하여 과적합을 감소시키고 성능을 촉진하는 방법이다. 2. bagging 배깅 앙상블은 bootstrap aggregating의 약자로 bootstrap의 집합을 의미한다. input data를 여러개의 bootstrap으로 쪼개서 개별 학습한 뒤 결합하여 최종 모델을 구축하는 방법이다. import torch import torch.nn as nn import torch.optim as optim import torchvision.datasets as datasets import torchvision.transforms as transforms from torch.utils.data import DataLoader from sklearn.metrics imp..
-
pytorch-7 전이학습과 파인튜닝딥러닝/pytorch 2023. 7. 11. 20:18
1. backbone network 백본은 detection, segmentation 등의 인공지능 모델에서 입력데이터로부터 특징 추출을 수행하는 부분이다. 백본은 모델의 사전학습된 가중치를 가지며 백본 네트워크의 성능에 따라 학습속도와 정확도에 영향을 미친다. 2. transfer learning 전이 학습은 미리 학습된 모델을 사용하여 새로운 작업에 사용하는 것을 의미한다. 하나의 모델의 데이터를 구하고 학습을 진행하는데 많은 자원과 환경낭비를 초래할 수 있다. 따라서 많은 사람들이 인공지능 모델의 공개에 찬성하고 있으며 전이학습은 미리 학습된 모델들을 백본으로 사용하여 작업의 목적에 맞게 변경하여 사용하는 것이다. import torch import torch.nn as nn import torch..
-
pytorch-6 과적합 방지 방법딥러닝/pytorch 2023. 7. 10. 20:28
1. drop out 드롭아웃은 과대적합을 방지하기 위한 방법이다. 은닉층의 유닛의 일부분을 동작하지 않게 함으로써 랜덤 하게 일부 노드들을 사용하지 않는다. 드롭아웃을 진행하면 노드를 제거하기 때문에 특정 데이터에 대해서 과적합되는것을 막을 수 있다. 또한 일반적으로 미니배치로 학습하게 되면 학습할 때마다 조금씩 다른 가중치로 학습하기 때문에 앙상블 효과를 얻을 수 있다. import torch import torch.nn as nn import torch.optim as optim import torchvision.datasets as datasets import torchvision.transforms as transforms class DropoutNet(nn.Module) : def __init..
-
pytorch-5 CNN딥러닝/pytorch 2023. 7. 9. 21:22
1. CNN import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision.datasets import MNIST from torchvision import transforms import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable import os os.environ["KMP_DUPLICATE_LIB_OK"] = "True" device = torch.device("cuda" if torch.cuda.is_available() else "cpu") cl..
-
pytorch-4 stride conv, dilated conv, 가중치 행렬 시각화딥러닝/pytorch 2023. 7. 9. 15:18
1. stride conv import torch import os from torch import nn import matplotlib.pyplot as plt os.environ["KMP_DUPLICATE_LIB_OK"] = "True" input_data = torch.randn(1, 1, 28, 28) conv = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3, stride=2, padding=1) output = conv(input_data) print(output.shape) plt.subplot(1, 2, 1) plt.imshow(input_data.squeeze(), cmap="gray") plt.title("input") plt.sub..
-
pytorch-3 ANN, RBM딥러닝/pytorch 2023. 7. 9. 14:53
1. ann import torch import torch.nn as nn class ANN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(ANN, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_size, output_size) def forward(self, x): out_by_input_hidden = self.fc1(x) out_by_relu = self.relu(out_by_input_hidden) out_by_hidden_output = self.fc2(..
-
딥러닝- CNN딥러닝 2023. 7. 7. 16:28
1. CNN(Convolutional Neural Network) 합성곱 신경망은 데이터의 특징점을 추출하여 패턴을 파악하는 신경망이다. cnn은 이미지 처리를 위해서 탄생한 신경망으로 이미지 처리를 위해서 일반적인 이미지 입력값인 2차원 데이터를 1차원 데이터로 펼치면 픽셀 간의 관계성이 사라지고 픽셀의 고유한 값만 남기기 때문에 이미지의 패턴과 구조가 사라진다. 예를 들어 필기체 인식을 위해 16*16 사이즈의 이미지를 학습하기 위해서는 256개의 입력 유닛, 100개의 은닉 유닛, 26개의 출력 유닛으로 구성되며 3개의 층에서 필요한 가중치와 바이어스는 모두 28326개이다. 또한 기존의 이미지에서 1픽셀만 이동하거나 1도만 회전되어도 새로운 학습 데이터로 처리해야 한다. 즉 이미지 문제를 ann으..
-
이미지 처리-10 json으로 영상 데이터 이미지 추출이미지 처리 2023. 7. 4. 17:26
1. 동영상 프레임 단위로 쪼개기 import cv2 import os video_data_path = 'video_sample_data\\video\\C041_A30_SY32_P07_S06_02DAS.mp4' cap = cv2.VideoCapture(video_data_path) img_count = 0 folder_name = video_data_path.split("\\")[-1] folder_name = folder_name.replace(".mp4", "") os.makedirs(f"./AI_hub_frame_dataset/{folder_name}", exist_ok=True) while True: ret, frame = cap.read() if not ret: break if img_count..