728x90
반응형

전체 글 112

[pytorch] 이미지 분류를 위한 AlexNet 구현

AlexNet은 컴퓨터 비전 분야의 발전에 중요한 역할을 한 합성곱 신경망(CNN) 아키텍처입니다. 이는 Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton에 의해 개발되었으며, 2012년 ImageNet 대규모 시각 인식 챌린지(ILSVRC)에서 우승하였습니다. 이 대회는 딥러닝의 전환점을 표시하며, CNN이 이미지 분류 작업에서 강력한 성능을 보여준 것을 보여주었습니다. AlexNet 아키텍처는 총 여덟 개의 레이어로 구성되어 있으며, 다섯 개의 합성곱 레이어와 세 개의 완전 연결 레이어로 이루어져 있습니다. 입력 레이어: 입력 이미지를 받습니다. 일반적으로 픽셀 값의 행렬 형태로 제공됩니다. 합성곱 레이어 1: 첫 번째 합성곱 레이어는 입력 이미지에 학습된 필터를..

pytorch 2023.05.31

[코딩테스트] 섹션2 - List

리스트(List) 리스트(List)는 일반적으로 Set과 비교됩니다. Set에서는 (1, 2, 3), (3, 1, 2), (2, 3, 1)은 모두 동일한 집합을 나타내는 것으로 간주됩니다. 하지만 리스트에서는 [1, 2, 3]과 [3, 1, 2]는 서로 다른 요소의 순서를 가지므로 다른 리스트로 취급됩니다. 즉, 리스트에서는 요소의 순서가 중요하게 다뤄집니다. Array list: array를 기반으로 구현된 리스트입니다. 이는 연속적으로 메모리에 저장되어 있는 데이터를 활용하여 리스트를 구성합니다. Linked list: 메모리상에서 비연속적으로 저장되어 있는 노드들을 연결하여 리스트를 저장하는 방식입니다. List로 분류되는 자료구조는 Python에서 Array list로 구현할 수 있으며, Link..

코딩테스트 2023.05.21

[코딩테스트] 섹션1 - INTRO

1. 코딩테스트 꿀팁 자료구조란 데이터를 저장하고 관리하는 방식 자료구조의 장점 데이터를 체계적으로 저장 메모리를 효율적으로 사용 빠르고 안정적으로 데이터 처리 ex) 30의 숫자를 저장한다고 가정했을때 Array자료구조를 사용하면 데이터를 효율적으로 저장하고 관리할 수 있다. A = [1, 30, 50, 80] 자료구조의 종류 (선형, 비선형) 자료구조를 배워야 하는 이유 특정 알고리즘을 구현하기 위해서 꼭 사용해야 하는 자료구조가 있을 수 있다. 또한 어떤 자료구조를 선택했는지에 따라서 사용할 수 있는 알고리즘이 달라진다. 알고리즘이란 문제를 해결하는 방법이다. 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법이다. 자주 쓰이는 문제 해결 방법(알고리즘)은 패턴화 → BFS, DFS, Binar..

코딩테스트 2023.05.16

[pytorch] 이미지 분류를 위한 LeNet-5 구현

이미지 분류는 주어진 이미지를 다양한 클래스 또는 범주로 분류하는 것을 의미합니다. 이때, 분류의 목적은 이미지에 특정 대상이 존재하는지 여부를 판단하는 것입니다. 예를 들어, 고양이와 개를 분류하는 문제를 생각해 보면, 이미지 분류 모델은 입력된 이미지가 고양이인지 개인지를 판단합니다. 모델은 이미지에 대한 특징을 추출하고, 추출된 특징을 기반으로 해당 이미지가 고양이인지 개인지를 예측합니다. LeNet은 1990년대 후반 Yann LeCun 등이 개발한 초기 합성곱 신경망(CNN) 아키텍처로, 주로 필기체 숫자 인식에 사용되었으며 컴퓨터 비전 작업에서 심층 학습의 발전에 중요한 역할을 했습니다. 현대적인 아키텍처에 비해 레이어 수가 적지만, CNN의 발전을 이해하는 데 기초로 작용합니다. LeNet ..

pytorch 2023.05.15

[pytorch] 전이 학습 - 특성 추출 기법 (Feature Extraction)

전이 학습(transfer learning)이란? 하나의 문제를 해결하기 위해 학습된 모델의 지식을 다른 문제를 해결하는데 활용하는 기법입니다. 즉, 기존에 학습한 모델의 가중치와 편향값 등의 정보를 새로운 모델의 초기값으로 활용하여 학습을 진행하는 것을 의미합니다. 전이 학습은 대규모 데이터셋을 가지고 모델을 학습시키는데 필요한 시간과 비용을 줄일 수 있습니다. 또한, 새로운 데이터셋에 대한 모델의 정확도를 높일 수 있습니다. 이는 기존 모델에서 학습한 특성이 비슷한 문제에서도 유용하기 때문입니다. 전이 학습은 크게 두 가지 방법으로 나뉩니다. 특성 추출(Feature Extraction): 사전 학습된 모델을 사용하여 새로운 모델을 초기화하는 방법 → 전체 모델을 처음부터 학습시키는 것보다 효율적 미..

pytorch 2023.05.09

[Git] git branch 생성

1. 로컬 저장소에서 새로운 브랜치를 생성하기 전에 해당 로컬 저장소 디렉토리로 이동 2. 로컬 저장소에서 새로운 브랜치를 생성 git branch # $ git branch home 은 새로 생성할 브랜치의 이름입니다. 저는 브랜치명을 home으로 설정해주었습니다. 3. 새로운 브랜치로 이동 git checkout # git checkout home 4. 변경 사항 커밋 git add . git commit -m "Commit message" 5. 변경 사항을 원격 저장소에 업로드 git push -u origin 6. 원격 저장소의 변경사항을 로컬 저장소에 불러오기 git pull origin [브랜치명] git pull 명령어는 원격 저장소의 최신 변경 내용을 로컬 저장소로 가져오는 명령어입니다. ..

information 2023.05.01

[Git] 로컬 저장소(repository) 생성 후 원격 저장소(Github)와 연결

Git 을 설치하는 방법은 여기! [Git] Git 설치(Window10), username / useremail 등록 Git은 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나로, 소스 코드와 같은 파일의 변경 이력을 관리하는 도구입니다. Linus Torvalds가 개발한 Git은 많은 개발자들에게 널리 사용되고 resultofeffort.tistory.com 1. 로컬 저장소(repository) 만들기 본인이 원하는 경로에 작업할 디렉토리를 생성해 줍니다. 저는 C드라이브안에 "song_git"이라는 디렉토리를 생성했습니다. git Bash를 실행한 후 생성한 디렉토리로 이동해 줍니다. (cd 는 현재 작업 디렉토리를 변경하는 명령어입니다...

information 2023.05.01

[Git] Git 설치(Window10), username / useremail 등록

Git은 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나로, 소스 코드와 같은 파일의 변경 이력을 관리하는 도구입니다. Linus Torvalds가 개발한 Git은 많은 개발자들에게 널리 사용되고 있습니다. Git을 사용하는 이유 변경 이력 관리 Git은 파일의 변경 이력을 추적하여 관리할 수 있습니다. 이전 버전과의 차이점을 확인하거나, 원하는 이전 버전으로 되돌릴 수 있습니다. 이를 통해 코드 변경 이력을 추적하고, 버그 수정과 같은 작업을 보다 쉽게 수행할 수 있습니다. 협업 Git은 여러 개발자가 함께 작업하는 프로젝트에서 유용합니다. 다른 개발자의 작업을 병합(Merge)하거나, 변경 내용을 리뷰하는 등의 작업을 수행할 수 있습니다. 이..

information 2023.04.30

[pytorch] Convolutional Neural Network (CNN) 로 FashionMNIST 구현해보기

fashion_mnist 데이터셋을 사용하여 합성곱 신경망을 직접 구현해 보겠습니다. fashion_mnist 데이터셋은 토치비전에 내장된 예제 데이터로 운동화, 셔츠, 샌들 같은 작은 이미지의 모음이며, 기본 MNIST 데이터셋처럼 열 가지로 분류될 수 있는 28x28 픽셀의 이미지 7만 개로 구성되어 있다. 데이터셋을 자세히 살펴보면 훈련 데이터는 0-255 사이의 값을 갖는 28x28 크기의 넘파이 배열이고, 레이블(정답) 데이터는 0-9 사이 정수 값을 갖는 배열입니다. 이전 포스팅에서는 Deep Neural Network (DNN)로 FashionMNIST를 구현해 보았는데요! https://resultofeffort.tistory.com/95 [pytorch] Deep Neural Networ..

pytorch 2023.04.28

[코테] Linked list - Node

Linked List는 데이터를 일렬로 연결하는 방법 중 하나로, 데이터의 순서가 메모리에 불연속적으로 위치하는 자료구조입니다. Linked List는 각각의 노드(Node)가 데이터와 포인터(Pointer)를 가지고 있는데 데이터는 저장하고자 하는 값을, 포인터는 다음 노드의 주소값을 가리킵니다. 기본적으로 Linked List는 head라는 포인터가 맨 앞 노드를 가리키며, 맨 마지막 노드의 포인터는 NULL 값을 가집니다. 새로운 노드를 추가하려면, 새로운 노드를 생성하고, 이전 노드의 포인터를 새로운 노드로 변경한 후, 새로운 노드의 포인터를 다음 노드로 변경해야 합니다. Linked List는 배열(Array)과 비교했을 때, 삽입/삭제 연산이 용이하고, 메모리를 효율적으로 사용할 수 있으나, ..

카테고리 없음 2023.04.28
728x90
반응형