[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를..
[Android Studio] 인텐트(Intent) & 인텐트 필터(Intent Filter)란?
·
프레임워크/Android studio
1. 인텐트(Intent)란?Android 개발자 문서의 인텐트 및 인텐트 필터 페이지에는 아래와 같이 적혀져 있다.Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있습니다. 즉 Intent는 다른 액티비티 혹은 서비스를 시작하기 위해 보내는 메시지이거나, 안드로이드 시스템에서 발생하는 이벤트들을 앱에게 알리기 위한 브로드캐스트를 전달하기 위한 메시지라고 설명할 수 있다. 2. 인텐트 유형인텐트에는 두 가지 유형이 있다.명시적 인텐트앱 내의 특정 액티비티나 서비스 등 특정한 앱 구성 요소를 시작하는 데 사용하는 인텐트이다. 이를 위해서 앱의 패키지 이름 혹은 구성 요소의 클래스 이름을 제공한다. 따라서 새로운 액티비티를 시작하거나, 백그라운드에서 파일을 다운로드하기 ..
[AWS] 탄력적 IP 삭제
·
프로젝트/AWS
이번 schbus 프로젝트를 종료하면서 AWS의 EC2를 비롯한 여러 서비스를 종료시켰다. 그리고 1월에 대한 요금이 청구서를 확인했는데.. 프리티어임에도 5천원이 넘는 금액이 청구되었다. 프로젝트를 배포했을 때 1000원 미만의 금액이 청구되었던 것을 생각하면 프로젝트를 진행했을 때 보다 높은 금액이었기 때문에 요금에 대한 세부 정보를 확인했다. 탄력적 IP(Elastic IP) Elastic IP 즉 탄력적 IP에 $3.03가 청구되어 있었다. EC2 인스턴스를 종료했음에도 EC2에 연결되어 있던 탄력적 IP에 대한 요금이 왜 발생했는지 찾아보았다. 탄력적 IP는 아래의 모든 조건에 해당될 때 요금이 발생되지 않는다. 탄력적 IP가 EC2 인스턴스에 연결되어 있을 때 탄력적 IP와 연결된 인스턴스가 ..
[python] \b(백스페이스) 문자 제거하기
·
언어/python
파이썬에서 \b 문자를 제거해야되는 상황을 만났다. file_name = './root/redirect.py' cmd_reculsive = [sys.executable, '-u', file_name, '-r'] p = subprocess.Popen(cmd_reculsive, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=False) while p.poll() == None: out = p.stdout.readline().decode('utf-8').replace('\x08','') print(out, end='') socketio.send({"data":out},json=True) socketio.sleep(0) 위 코드는 '\..