전체 글

전체 글

    [논문리뷰] U-Net : Convolutional Networks for Biomedical Image Segmentation

    [논문리뷰] U-Net : Convolutional Networks for Biomedical Image Segmentation

    대표적인 Semantic segmentation 모델인 U-Net에 대해 알아보자! 원문 링크 : https://arxiv.org/abs/1505.04597 U-Net: Convolutional Networks for Biomedical Image Segmentation There is large consent that successful training of deep networks requires many thousand annotated training samples. In this paper, we present a network and training strategy that relies on the strong use of data augmentation to use the available ..

    [Pytorch] Dataset 정의

    파이토치에서는 DataLoader 클래스를 통해 데이터를 편리하게 불러올 수 있다. (ex : 특정 batch size만큼씩 데이터 불러오기, shuffle, 미리 정의한 순서대로 데이터 불러오기 등) 이를 위해서는 Dataset 클래스로 데이터를 사전 정의해야 한다. import torch from torch.utils.data import Dataset 테스트를 위해 간단한 tensor 데이터를 정의하였다. x = [[0,0,0], [0,0,1], [0,1,0], [1,0,0], [0,1,1], [1,1,0], [1,0,1], [1,1,1]] y = [0, 1, 2, 3, 4, 5, 6, 7] x = torch.Tensor(x).float() y = torch.Tensor(y).long() 이제 Da..

    [Python] tqdm 이용해 모델 train 시 progress bar 표시하기

    tqdm module을 이용하면 iteration 진행 상황을 progress bar로 나타낼 수 있다. 간단한 예제는 다음과 같다. from tqdm import tqdm from time import sleep for i in tqdm(range(100)): sleep(0.1) 100%|██████████| 100/100 [00:10

    [Pytorch] ImageFolder로 쉽게 Image Dataset 만들기

    [Pytorch] ImageFolder로 쉽게 Image Dataset 만들기

    이미지를 Input으로 하는 네트워크를 구축하고자 할 때 유용하게 사용할 수 있는 torchvision의 Image Folder 클래스를 소개한다. ImageFolder를 이용하면 이미지들이 각 class에 해당하는 폴더에 각각 나누어져 있을 때 이를 dataset 형태로 쉽게 불러올 수 있다. 예시를 위해 kaggle에서 제공하는 Medical MNIST 데이터를 살펴보겠다. Medical MNIST는 다음과 같은 2차원 medical 이미지들이 총 6개의 class로 나뉘어져 있는 형태이다. 각 class의 이미지들은 위와 같이 class 이름으로 된 폴더에 나뉘어져 있다. 이를 ImageFolder를 이용해 데이터셋 형태로 만들어 보자. 우선 ImageFolder의 파라미터를 살펴보면 다음과 같다...

    [인공지능] 지식표현과 추론 Part 1

    [인공지능] 지식표현과 추론 Part 1

    * 인공지능 강의 정리용 1. 지식 표현 데이터 피라미드 : 데이터 → 정보 → 지식 → 지혜 순 데이터 : 특정 분야에서 관측된 가공되지 않은 것, 오류나 잡음 포함 가능 정보 : 데이터를 가공하여 어떤 목적이나 의미를 갖도록 한 것 지식 : 정보를 취합하고 분석하여 얻은 대상에 대해 사람이 이해한 것 지혜 : 경험과 학습을 통해서 얻은 지식보다 높은 수준의 통찰 cf) white noise : 잡음 없을 시 깨끗한 데이터 인식 어려울 수 있음. 지식 경험이나 교육을 통해 얻어진 전문적인 이해와 체계화된 문제 해결 능력 특정 주제나 분야에 대한 이론적/실제적 이해. 현재 알려진 사실과 정보 모음 절차적 지식 : 문제 해결의 절차 기술 선언적 지식 : 어떤 대상의 성질, 특성이나 관계 서술 컴퓨터를 통한..

    [자료구조] C언어로 쉽게 풀어쓴 자료구조 : 6장 연결 리스트 Ⅰ

    [자료구조] C언어로 쉽게 풀어쓴 자료구조 : 6장 연결 리스트 Ⅰ

    리스트 추상 데이터 타입 리스트는 항목들이 차례대로 저장되는 데이터 타입으로 즉 각 항목 간 순서의 개념이 존재한다. 리스트를 추상 데이터 타입으로 정의하면 다음과 같다. 객체 : n개의 element형으로 구성된 순서 있는 모임 연산 : insert(list, pos, item) ::= pos 위치에 요소를 추가 insert_last(list, item) ::= 맨 끝에 요소를 추가 insert_first(list, item) ::= 맨 앞에 요소를 추가 delete(list, pos) ::= pos 위치의 요소를 제거 clear(list) ::= 리스트의 모든 요소를 제거 get_entry(list, pos) ::= pos 위치의 요소를 반환 get_length(list) ::= list의 길이를 구..

    [자료구조] C언어로 쉽게 풀어쓴 자료구조 : 3장 연습문제

    제 네이버 블로그에서 그대로 가져왔습니다 ⇒ https://blog.naver.com/racoo_oon/222435357391 내용은 동일하고 시간복잡도 문제는 제외하였습니다. 1. int a[10][20]에서 배열이 차지하는 메모리 공간의 크기는 얼마인가? int형은 4바이트라고 하자. : 800바이트 ​ 2. float a[100]으로 선언된 배열의 시작 주소를 1000번지라고 할 때 배열의 10번째 요소의 주소는 몇 번지인가? : base + 9 * sizeof(int) = 1036번지 ​ 3. 다음 배열 중에서 크기가 가장 큰 배열은? : double array2[10]; (크기 8*10) ​ 4. 크기가 10인 배열 two[]를 선언하고 2의 제곱 값들을 저장 (2^0부터 2^9까지), 전체 요..

    [자료구조] C언어로 쉽게 풀어쓴 자료구조 : 3장 배열, 구조체, 포인터

    이전에 제가 네이버 블로그에 쓴 글을 가져와 일부 내용을 추가하였습니다. ⇒ https://blog.naver.com/racoo_oon/222434455079 구조체 C언어의 경우 한 배열에는 같은 자료형의 데이터들만 저장할 수 있다. 다양한 타입의 데이터를 묶기 위해서는 구조체가 필요하다. C언어에서는 struct 키워드를 이용해 표기하고 형식은 다음과 같다. struct student { char name[10]; int age; double gpa; }; 책에 있는 예시를 그대로 들고 왔다. 구조체에 저장되는 항목은 문자열인 이름, 정수형인 나이, 실수형인 학점이다. struct 뒤의 student는 구조체들을 서로 구분해주는 구조체 태그라고 한다. 위의 코드는 형식만 지정해 준 것이고 실제로 구조..