분류 전체보기 (124) 썸네일형 리스트형 BFS BFS(Breadth First Search) 알고리즘은 '너비 우선 탐색'이라는 의미를 가진다. 이는 가까운 노드부터 탐색하는 알고리즘이다. BFS는 스택 자료구조를 사용하는 DFS와 달리 큐 자료구조를 이용한다. 이를 이용하면 먼저 들어온 것이 먼저 나가게 되어, 가까운 노트부터 탐색을 진행하게 된다. BFS의 동작 과정은 다음과 같다. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다. 2번 과정을 더 이상 수행할 수 없을 때까지 반복한다. (즉, 큐가 빌때 까지) bfs 구현 예시 from collections import deque def bfs(graph, current_node, v.. DFS DFS(Depth First Search)는 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. DFS는 스택 자료구조를 이용하며 동작 과정은 다음과 같다. 탐색 시작 노드를 스택에 삽입하고 방문처리를한다. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접노드가 없으면 스택에서 최상단 노드를 꺼낸다. 2번 과정을 더 이상 수행할 수 없을 때까지 반복한다. DFS는 스택을 사용하는 알고리즘이기 때문에 재귀 함수를 이용했을 때 간결하게 구현할 수 있다. def dfs(graph, current_node, visited): # 현재 노드를 방문 처리 visited[current_node] = True.. 재귀 함수 재귀 함수(Recursive funtion)은 자기 자신을 다시 호출하는 함수를 의미한다. 재귀 함수를 사용할 때는 종료 조건을 꼭 명시해야 한다. 그렇지 않으면 재귀의 깊이를 초과했다는 RecursionError가 발생한다. 종료 조건을 명시하는 예시는 다음과 같다. 자신을 호출하기 전에 종료 조건을 명시해야한다. def recursive_function(i): # 10번째 출력했을 때 종료되도록 종료 조건 명시 if i == 5: return print(f"{i}번째 재귀 함수에서 {i + 1}번째 재귀 함수 호출") recursive_function(i + 1) ######################################## print(f"{i}번째 재귀 함수 종료") recursive_f.. 스택/큐 스택 스택(Stack) 자료구조는 박스 쌓기에 비유할 수 있다. 박스는 아래에서부터 위로 차곡차곡 쌓으며, 아래에 있는 박스를 치우기 위해서는 위에 있는 박스를 먼저 내려야한다. 이러한 구조를 선입후출(First In Last Out) 또는 후입선출(Last In First Out) 구조라고 한다. 파이썬에서 스택을 이용할 때에는 별도의 라이브러리를 사용할 필요 없다. 기본 리스트에서 append()와 pop() 메서드를 이용하면 스택 자료구조와 동일하게 동작한다. 큐 큐(Queue)는 놀이공원 대기 줄에 비유할 수 있다. 먼저 온 사람이 먼저 들어가게 된다. 이러한 구조를 선입선출(First In First Out) 구조라고 한다. 파이썬에서는 collections 모듈의 deque 클래스를 사용하면 .. 11 모델 배포 (5) 데모 애플리케이션 데모 애플리케이션이란 기술이나 제품의 동작 및 기능을 보여주는 작은 규모의 응용 프로그램을 의미한다. 주로 웹 기반 인터페이스의 형태로 제공되는데, 예를 들어 자연어 처리 모델의 데모 애플리케이션은 사용자가 입력 문장을 제공하면 모델이 문장을 이해하고 응답을 생성하는 등의 기능을 제공할 수 있다. 데모 애플리케이션은 모델의 성능 평가 및 피드백 수집에도 중요한 역할을 한다. 사용자는 모델을 직접 사용하면서 발생하는 문제점이나 개선 사항을 제공할 수 있으며, 이는 모델의 품질 향상과 개선에 도움을 준다. 스트림릿(Streamlit) 스트림릿을 사용해 데모 애플리케이션을 구현해 본다. 스트림릿은 넘파이, 판다스, 이미지 라이브러리 등 다른 파이썬 패키지들과 호환되며 인터랙티브한 웹 애플리케이션을 만들 수 있.. 11 모델 배포 (4) 도커(Docker), VSCode 실습 1. 도커란? 도커(Docker)는 컨테이너 기반의 가상화 플랫폼으로 애플리케이션을 구축, 배포, 실행하기 위한 오픈소스 플랫폼이다. 도커는 애플리케이션과 해당 종속성(라이브러리, 프레임워크, 환경 설정 등)을 격리된 환경으로 패키징하여 실행 가능한 단위인 컨테이너(Container)를 생성한다. 도커의 핵심 개념과 기능 컨테이너 도커의 핵심 요소로, 격리된 실행 환경을 제공한다. 컨테이너는 애플리케이션과 그에 필요한 종속성을 포함하며, 호스트 시스템과는 독립적으로 실행된다. 이미지 컨테이너 실행에 필요한 파일과 설정을 포함하는 읽기 전용 템플릿이다. 이미지는 컨테이너를 만들기 위한 기반이 되며, 도커 파일(Dockerfile)에 정의된 내용을 바탕으로 생성된다. 이미지는 여러 개의 컨테이너를 생성할 때.. 파이토치 GPU 설치 Windows 윈도우 환경에서 GPU 가속을 사용하려면 CUDA(Compute Unified Device Architecture)가 필요하다. CUDA란 NVIDIA에서 제공하는 소프트웨어로 GPGPU(General-Purpose computing on Graphics Processing Units) 기술을 지원하는 프로그램이다. CUDA를 지원하는 그래픽 카드의 사양은 다음 경로에서 확인할 수 있다. GPU Compute Capability: https://developer.nvidia.com/cuda-gpus#compute CUDA 환경을 구성할 수 있틑 시스템이라면 현재 사용하고 있는 GPU의 드라이버를 최신 버전으로 업데이트한다. NVIDIA 그래픽 카드 드라이버는 다음 경로에서 업데이트할 수 있다. NVIDI.. 11 모델 배포 (3) 모델 서빙 모델 서빙(Model Serving)은 훈련된 머신러닝 모델을 실제 운영 환경에서 사용할 수 있도록 프로세스 또는 시스템을 구축하는 것을 의미한다. 이는 클라이언트의 요청에 따라 서버에서 모델을 호출하고, 예측 결과를 반환하는 인터페이스를 구축하는 과정을 포함한다. 클라이언트 : 서버에 서비스를 요청하는 주체. 서비스를 요청하는 PC, 스마트폰, 웹브라우저 등 서버 : 클라이언트에게 요청을 받고 요청에 따라 서비스를 제공하는 컴퓨터 시스템 인터페이스 : 사용자와 서비스 사이의 상호작용을 가능하게 하는 방법을 의미. UI/UX, API, 데이터 형식 등 서비스에 접근하고 상호작용할 수 있는 모든 요소를 포함 1. 모델 서빙 웹 프레임워크 모델 서빙 웹 프레임워크는 머신러닝 모델을 웹 서비스로 제공하고 관리.. 이전 1 2 3 4 5 6 ··· 16 다음