Generator (제너레이터)제너레이터는 일련의 값을 생성하는 이터레이터의 일종으로, 함수처럼 정의되지만 값을 반환할 때 return 대신 yield 키워드를 사용합니다.제너레이터는 지연 평가(Lazy Evaluation)를 통해 필요한 시점에 값을 생성합니다.지연 평가: 필요한 시점에 값을 생성하여 메모리 효율성을 높입니다.상태 유지: 마지막 실행 지점에서 멈추고 상태를 기억하여 다음 호출 시 그 지점부터 재개합니다.메모리 효율성: 한 번에 하나의 값만 생성하므로 메모리 사용을 최소화합니다.코드 간결화: 복잡한 이터레이터 코드를 간단히 작성할 수 있습니다.def my_generator(): yield 1 yield 2 yield 3 yield 4for item in my_gene..
Arithmetic Operation (산술 연산)컴퓨터에서 덧셈 및 뺄셈을 할때? 피연산자 3개로 구성됩니다.Source 2개 및 destination 1개로 구성됩니다.모든 산술 연산에는 아래 예시와 같은 형식이 있습니다Design Principe 1. 정규성을 위한 단순성 (Simplicity favors regularity)연산의 규칙성을 통해 구현이 더욱 간단해집니다.단순성으로 더 낮은 비용으로 더 높은 성능을 제공한다는 특징이 있습니다.Register Operands (피연산자 등록)산술 명령어는 레지스터 피연산자를 사용합니다RISC-V (RV32I) has a 32 x 32-bit register files: x0 ~ x31효율적인 Register의 사용은? → 연산 결과의 성능 상승으로 이..
OpenCV DNN으로 YOLO Inference 구현시 유의 사항YOLO 모델 구현시 알아두어야 할 점은, OpenCV YOLO Inference Code는 기존 OpenCV inference 코드와는 다릅니다.또한 Darknet 구성 환경 및 YOLO Architecture에 따라 사용자가 직접 Object Detection 정보를 추출해야 합니다.Pretrained된 inference 모델 로딩 방법Weight 모델 파일과 config 파일은 Darknet 사이트에 Download가 가능합니다.cv2.dnn.readNetFromDarknet(config 파일, weight 모델 파일)으로 pretrained된 inference 모델을 로딩합니다.readNetFromDarket(config 파일, w..
Object-Oriented programming (OOP - 객체지향 프로그래밍)객체지향 프로그래밍은 객체(Object)를 중심으로 프로그램을 구성하는 프로그래밍 패러다임입니다.객체는 데이터와 이를 처리하는 메서드(method)를 포함하는 하나의 단위입니다.OOP의 주요 개념은 추상화, 캡슐화, 상속, 다형성입니다.주요 개념Abstraction (추상화)추상화는 중요한 정보만을 표현하고 불필요한 세부 사항을 숨기는 것입니다.class Animal: def __init__(self, name): self.name = name def speak(self): passclass Dog(Animal): def speak(self): return "Woof!"..
YOLO (You Only Look Once) YOLO(You Only Look Once)은 실시간 객체 탐지 시스템으로, 이미지나 비디오에서 여러 객체를 동시에 탐지하고 분류하는 딥러닝 기반의 알고리즘입니다. YOLO: Real-Time Object DetectionYOLO: Real-Time Object Detection You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev. Comparison to Other Detectors YOLOv3 is ..
Function (함수)함수는 재사용 가능한 코드 블록으로, 코드의 가독성과 유지보수성을 높여줍니다. 함수를 사용하면 코드의 중복을 줄이고, 모듈화된 코드를 작성할 수 있으며, 복잡한 시스템을 구성하는 기본 단위를 제공합니다. 함수 정의: def 키워드를 사용하여 함수를 정의합니다.함수 호출: 함수 이름과 괄호를 사용하여 함수를 호출합니다. 함수 정의함수는 def 키워드를 사용하여 정의합니다. 함수 이름 뒤에 괄호를 쓰고, 괄호 안에는 함수가 받을 수 있는 매개변수(인수)를 정의할 수 있습니다. 함수의 본문은 들여쓰기로 구분됩니다.기본 형태def 함수이름(매개변수1, 매개변수2, ...): # 함수 본문 return 반환값 Exampledef greet(name): return f"Hel..
변수변수는 데이터를 저장하는 메모리 공간을 명명한 것입니다. 변수를 통해 데이터를 저장하고, 저장된 데이터를 참조하거나 변경할 수 있습니다.Python에서는 변수를 선언할 때 타입을 명시하지 않으며, 변수에 값을 할당할 때 자동으로 타입이 결정됩니다.예시코드: 변수 선언과 초기화x = 10 # 정수형 변수name = "Alice" # 문자열 변수is_active = True # 불린형 변수 변수 이름 규칙변수 이름은 문자, 숫자, 밑줄(_)로 구성될 수 있습니다.변수 이름은 숫자로 시작할 수 없습니다.변수 이름은 대소문자를 구분합니다 (예: age와 Age는 다른 변수).예약어는 변수 이름으로 사용할 수 없습니다 (예: if, while, class 등).자료형자료형은 변수가 저장하는 데이터의 종류..
Describing a Single Set of Data (단일 데이터 세트)단일 데이터 세트(describing a single set of data)는 하나의 데이터 세트에 대한 특성이나 특질을 설명하고 분석하는 과정을 의미합니다.이를 통해 데이터의 중심 경향, 분산, 형태 및 분포 등을 파악할 수 있습니다.예를 들어보면, 모금 활동 단체의 부사장이 회원들이 친구를 얼마나 가지고 있는지에 대한 설명을 요청했습니다.from collections import Counterfrom linear_algebra import sum_of_squares, dotimport mathfrom operator import addnum_friends = [100,49,41,40,25,21,21,19,19,18,18,16..
RISC-VRISC-V는 오픈 소스 명령어 집합 구조(ISA, Instruction Set Architecture)입니다.RISC-V는 Reduced Instruction Set Computer (RISC) 원칙에 기반을 두고 있으며, 주로 다음과 같은 특징을 갖고 있습니다: 오픈 소스 및 무료: RISC-V의 가장 큰 특징은 오픈 소스이자 무료로 사용할 수 있다는 점입니다. 이는 누구나 RISC-V 명령어 집합을 사용하여 자유롭게 하드웨어를 설계하고 구현할 수 있다는 것을 의미합니다.모듈식 설계: RISC-V는 기본 명령어 집합과 여러 확장 명령어 집합으로 구성된 모듈식 설계를 채택하고 있습니다. 이는 사용자가 특정 응용 프로그램에 필요한 명령어만을 선택하여 사용할 수 있게 하여 설계의 유연성을 높입니..
Data Preprocessing (데이터 전처리) 개요데이터 전처리란?데이터 전처리는 원시 데이터를 분석 및 모델링에 적합하게 변환하는 과정을 의미합니다.이는 데이터의 정제, 변환, 통합 등을 포함하며, 데이터 품질을 높여 신뢰성 있는 분석을 가능하게 합니다. 데이터 전처리의 중요성 및 필요성데이터 전처리는 다음과 같은 이유로 매우 중요합니다.데이터 품질 향상: 정확하고 일관된 데이터를 확보하여 분석의 기초를 튼튼히 합니다.모델 성능 최적화: 적절히 전처리된 데이터는 모델의 성능을 향상시키고, 예측 정확도를 높입니다.분석의 신뢰성 향상: 깨끗한 데이터를 사용함으로써 분석 결과의 신뢰성을 높입니다.데이터 활용의 효율성 향상: 데이터 전처리를 통해 분석 작업이 더 효율적으로 수행될 수 있습니다. 데이터 전..