일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- programmers
- Segmentation
- 딥러닝
- 알고리즘
- cnn
- object detection
- Python
- 옵티마이저
- 논문
- 논문리뷰
- pytorch
- 파이썬
- Paper Review
- Convolution
- Semantic Segmentation
- 인공지능
- ViT
- 코드구현
- Self-supervised
- Computer Vision
- 코딩테스트
- transformer
- 논문구현
- 파이토치
- optimizer
- 논문 리뷰
- opencv
- Ai
- 프로그래머스
- 머신러닝
- Today
- Total
목록분류 전체보기 (116)
Attention please
제 블로그에서 데이터를 시각화하기 위해서 다루는 언어는 python이며, 사용하는 패키지는 matplotlib입니다. 이번 글에서는 시각화를 하기 위한 가장 밑작업인 figure를 만들고 axes를 만들어 그래프를 그리는 것까지 설명하겠습니다. figure 먼저 matplotlib 패키지를 불러오겠습니다. import matplotlib.pyplot as plt 이제 그래프를 그려보겠습니다. matplotlib으로 그림을 그릴 때 특히 선그래프일 경우 x좌표와 y좌표를 따로 입력하여 그래프를 그립니다. 예를 들어 x = [1,2,4,3], y = [5,6,7,8] 로 설정한 후 그래프를 그리게 되면 좌표가 (1,5), (2,6), (4,7), (3,8) 네점으로 연결하여 그래프를 그립니다. 그럼 직접 저..
연결리스트 위에서 각 노드들을 생성하여 서로 연결하는 작업을 해보았습니다. 이렇게 각 노드가 데이터와 포인터를 가지고 한줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조를 연결리스트라 합니다. 이 연결리스트는 리스트를 구현하는 방법 중 하나입니다. 위에서 보이는 것처럼 연결리스트중 맨 앞에 있는 노드를 머리 노드라 하며, 맨 끝에 있는 노드를 꼬리 노드라 합니다. 위 사진에서 머리노드는 A, 꼬리노드는 B가 되겠습니다. 연결리스트 구현 연결리스트역시 클래스로 구현합니다. 이 클래스안에는 2가지 종류의 속성이 포함되어 있습니다. 리스트에 등록되어있는 노드의 개수를 의미하는 no와 머리노드를 가리키는 head입니다. 메소드는 초기화하는 __init__메소드와 연결리스트에 포함된 노드 개수를 리턴하는 ..
리스트 리스트란 순서가 있는 데이터를 나열한 자료구조를 의미합니다. a = [1,3,5] b = ['a', 'b', 'c'] 위 코드처럼 int, float, str등 여러 자료형의 데이터들을 순서에 맞게 나열한 후 변수에 저장시킬 수 있습니다. 노드 노드란 연결리스트를 구성하는 각각의 원소들을 의미합니다. 뒤에서 배울 연결리스트가 바로 이 노드들의 연결로 인해 구성됩니다. 노드는 DATA와 포인터를 가집니다. 포인터는 노드와 노드를 연결하는 방향이라고 생각하면 됩니다. 이와 같이 노드는 개개인의 데이터를 가지며 또 노드끼리 연결될 때 방향을 가지고 있습니다. 타입 힌트 잠시 타입 힌트에 대해 설명하겠습니다. 위의 노드는 클래스로 구성되는데 여러 클래스들을 구성하고 또 연결할 때 어떠한 자료형을 입력값으..
앞으로 데이터들을 가지고 연산을 하는 자료구조들을 파이썬으로 구현하고자 할 때 클래스를 사용하여 표현합니다. 이러한 자료구조들을 구현하기 위해 사용되는 클래스에 대해 알아보겠습니다. 클래스 클래스란? 객체를 만드는데 필요한 설계도라고 생각하면 됩니다. 객체 혹은 인스턴스라 불리는 이것은 설계도인 클래스를 가지고 구현해야할 대상입니다. 즉, 클래스에서 정의된 것을 실제 메모리에 구현 한 것입니다. 멤버변수(속성) 객체에 정보를 저장 메소드 연산수행 생성자 객체를 생성하는 특별한 메소드 self파라미터 생성된 객체를 참조한다. 저 위에 있는 것들로 클래스는 구현되고 사용됩니다. 간단하게 클래스 하나를 만들어보겠습니다. class test: # test:클래스이름 def __init__(self, input,..
알고리즘의 성능 평가에 대해 설명하기 전에 프로그램이 무엇이고 알고리즘이 무엇인지에 대해 알아보겠습니다. 프로그램이란 알고리즘과 자료구조를 더하여 만드는 것입니다. 예를 들어 요리를 한다고 한다면 자료들은 요리를 위한 재료들이며, 알고리즘은 그 재료들을 손질하는 방법인 레시피입니다. 즉 알고리즘이란 문제를 해결하기 위한 단계적인 절차입니다. 그렇다면 어떤 알고리즘이 효율적인지 어떻게 알 수 있을까요? 알고리즘의 성능을 평가하기 위한 지표가 있습니다. 첫 번째로는 수행시간을 나타내는 시간복잡도와 두 번째로는 알고리즘이 수행되는 동안 사용되는 메모리 공간의 크기를 나타내는 공간 복잡도가 있습니다. 그중에서 저는 시간 복잡도에 대해 알아보겠습니다. 일반적으로 시간 복잡도가 공간 복잡도보다 더 중요합니다. 시간..
이번에 구현할 논문은 "VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION" 입니다. 이번 논문을 구현하기 위해 사용한 프레임 워크는 Pytorch 입니다. The Dataset 논문에서 사용한 데이터셋은 저번 글에서 소개한 ImageNet dataset입니다. 하지만 너무 많은 양의 데이터와 분류때문에 학습시간이 오래 걸릴 것을 고려하여 저번과 동일하게 CIFAR-10 데이터셋을 사용하도록 하겠습니다. (imagenet 과 cifar-10 데이터셋에 대한 설명은 저번 글에 남겨놓았습니다.) Depth 이 논문에서 중요시하는 것은 모델의 깊이 입니다. 모델의 깊이가 깊어지면 깊어질 수록 성능이 좋아진다는 것입니다. 즉, 이미지의 대한 정..