[머신러닝] 01. 머신러닝이란?
·
AI
이 글은 스탠퍼드 대학교의 CS229 강의 자료를 바탕으로 작성되었습니다.머신러닝이란?Field of study that gives computers the ability to learn without being explicitly programmed. (Arthur Samuel 1959)컴퓨터가 명시적으로 프로그래밍되지 않고 학습할 수 있는 능력을 제공하는 학문 분야를 의미한다. 인공지능 > 머신러닝 > 딥러닝인공지능의 범주 안에 머신러닝이 포함되고 그 안에 딥러닝이 포함된다. 이 글에서는 머신러닝에 대해 설명한다.머신러닝의 종류지도학습: 훈련 데이터에 레이블이 포함됨비지도학습: 훈련데이터에 레이블이 없음 § 준지도학습: 일부 레이블이 있는 데이터를 사용강화학습: 주어진 환경(environment)에서..
Hailo Data Compiler 사용
·
AI
YOLOv8n 모델을 기준으로 작성된 글입니다.Dataflow 컴파일러 흐름Tensorflow 또는 ONNX 신경망 그래프를 Hailo와 호환되는 표현으로 변환.(har)전체 정밀도 신경망 모델을 8비트 모델로 양자화Hailo 장치에서 실행하기 위해 네트워크를 바이너리 파일(HEF)로 컴파일 parsing1(pt → onnx)yolo export model=./can_plastic.pt imgsz=640 format=onnx opset=11Hailo에서 opset ≤14만 지원 parsing2(onnx → har) hailomz parse --hw-arch hailo8 --ckpt ./small_best.onnx yolov8nyolov8n은 hailo model zoo에서 지원하기 때문에 hailomz..
Hailo 관련 SW 설치
·
AI
raspberryPi 5 Hailo-8Hailo는 모델을 Hailo 환경에 맞추어 컴파일하는 Model Build Environment 부분과 컴파일된 모델을 실행하는 Runtime Environment로 나뉜다. Model Build Environment는 양자화 시 많은 GPU 사용을 필요로 하기 때문에 workstation에서 진행해야 하며 Runtime Environment는 실제 모델이 구동되는 RPI5에 설치되어야 한다. Model Build Environment목적: 모델 컴파일위치: 워크스테이션(GPU 사용이 가능한 컴퓨터)Runtime Environment목적: 모델 추론위치: RaspberryPi 5Model Build 환경 설치(hailo sdk suite)도커 설치가 선행되어야 함..
[k3s] image가 사라지는 문제
·
MLOps
base image베이스 이미지는 레지스트리/이미지:태그로 구성된다. 예를 들어, " nvcr.io/nvidia/tensorflow:23.11-tf2-py3"와 같은 베이스 이미지가 있다면 아래와 같다.레지스트리: nvcr.io/nvidia 이미지: tensorflow 태그: 23.11-tf2-py3 이미지는 1bit라도 바뀌면 달라지는 다이제스트라는 고유한 해시값(SHA256)으로 구분된다. 즉 같은 이미지명, 태그명이더라도 다이제스트는 달라질 수 있다. 이미지 pull 정책컨테이너 생성 시 이미지 pull 정책은 3가지가 존재한다.IfNotPresent이미지가 로컬에 없는 경우만 pull한다. 즉 이미지의 이름, 태그명이 같으면 pull하지 않는다. 다이제스트를 질의하지 않으므로 이미지가 업데이트 된..
[YOLO] COCO 데이터 형식에서 YOLO 데이터 형식으로 바꾸기
·
AI
data ㄴ train -annotations.json -이미지’s… ㄴ valid -annotations.json -이미지’s…YOLO 형식으로 바꾸기 전 COCO 형식으로 된 데이터의 폴더 구조이다. 위 데이터를 아래와 같은 형식으로 바꾸려고 한다.datasets ㄴ images ㄴ train - 이미지's... ㄴ val - 이미지's... ㄴ labels ㄴ train - 라벨's... ㄴ val - 라벨's... 위와 같은 COCO 데이터 형식을 YOLO 데이터 형식으로 바꾸는 코드는 아래와 같다.import jsonimport osimport shutildef cocoToYolo(coco_json_path, output_label_dir): # COCO JSO..
[YOLOv8] custom training하여 바닥 Instance Segmentation하기
·
AI
데이터데이터 다운로드데이터 다운로드Download Dataset → Download dataset → Continue → Format을 COCO Segmentation으로 변경 → Continue 데이터 정보TRAIN SET: 930개VALID SET: 399개데이터 형식: COCOLABEL NAME: tehel 데이터 구조data ㄴ train -annotations.json -이미지’s… ㄴ valid -annotations.json -이미지’s… 데이터 전처리YOLOv8에서 COCO 데이터 형식을 지원한다고 들었으나,, 어떤 자료에서도 COCO형식 그대로 학습 하는걸 찾지 못했다. 따라서 COCO형식의 데이터를 YOLO형식의 데이터로 변환하여 학습했다. 데이터를 다운 받은 후 아래 파일을 실..
[docker] 컨테이너 상에서 gpu 사용량 확인 in jetson nano
·
프레임워크/docker
tegrastatsjetson nano에서 gpu 사용량을 확인하기 위해선 tegrastats 명령어를 사용하면 된다. 그러나 컨테이너 상에서 tegrastats 명령어를 사용하면 command not found 에러가 발생한다.이는 컨테이너 내부에서 /usr/bin/tegrastats:/usr/bin/tegrastats에 접근하지 못하기 때문이다. 따라서 컨테이너 실행 시 이 폴더를 마운트 해주면 tegrastats 명령어를 사용할 수 있다.sudo docker run -it -v $(pwd):/workspace -v /usr/bin/tegrastats:/usr/bin/tegrastats --name mlops-platform-env --privileged --run..
[docker] 컨테이너 내에서 flask 서버 구동 시 외부 접속하기
·
프레임워크/docker
docker 컨테이너 내에서 flask 서버를 구동시키고 내부망의 다른 컴퓨터에서 접속 시 자꾸 연결이 거부됐다. 해결 방법은 간단했다. 컨테이너 실행 시 flask 서버 포트를 매핑해주면 해결된다.나는 5000번 포트를 사용할거기 때문에 -p 5000:5000 옵션을 줬다.sudo docker run -it --name mlops-platform-env -p 5000:5000 mlops-platform-env 또한 기본적으로 Flask 코드에서 host = '0.0.0.0'으로 해줘야 외부에서 접속이 가능하다.if __name__ == "__main__": host = '0.0.0.0' port = "5000" app.run(debug=True, host=host, port=port)
JWT Refresh Token을 이용한 로그인 (with Node.js, React Native) - 2. 클라이언트
·
프레임워크/react-native
서버 구현 JWT Refresh Token을 이용한 로그인 (with Node.js, React Native) - 1. 서버 진행중인 프로젝트에 로그인 기능을 구현하기 위해 JWT를 사용하여 refresh token/ access token을 구현했다. 글이 길어져 서버 구현 / 클라이언트 구현으로 나누어 작성한다. 또한 JWT의 개념적인 내용보 tae-jun.tistory.com 지난 서버 구현에 이어 React Native로 로그인 과정을 구현에 대한 글을 작성한다. 모든 구현 내용을 블로그에 담을 순 없어서 화면 구성에 대한 내용은 제외하고 로그인 로직에 중점을 맞추어 글을 작성했다. 1. 라이브러리 설치 # 내부 저장소 사용 npm install @react-native-async-storage/..
JWT Refresh Token을 이용한 로그인 (with Node.js, React Native) - 1. 서버
·
프레임워크/nodejs
클라이언트 구현 JWT Refresh Token을 이용한 로그인 (with Node.js, React Native) - 2. 클라이언트 서버 구현 JWT Refresh Token을 이용한 로그인 (with Node.js, React Native) - 1. 서버 진행중인 프로젝트에 로그인 기능을 구현하기 위해 JWT를 사용하여 refresh token/ access token을 구현했다. 글이 길어져 서버 tae-jun.tistory.com 진행중인 프로젝트에 로그인 기능을 구현하기 위해 JWT를 사용하여 refresh token/ access token을 구현했다. 글이 길어져 서버 구현 / 클라이언트 구현으로 나누어 작성한다. 또한 JWT의 개념적인 내용보다 구현에 중심을 두어 글을 작성했다. JWT를..