Study/Python

· Study/Python
객체를 다루다보면, 특정 객체를 복사해서 사용하는 경우가 종종 있다.보통 이 과정에서는 단순하게 아래처럼 사용하고는 한다.num = 150num2 = numprint(num2) # 150 DFS와 백트래킹 관련 알고리즘 문제를 풀던 중 입력된 field(이중 list)를 복사해두어서 백트래킹 과정에서 사용했었다.이 과정에서 단순하게 복사를 해서 사용했고, 의도대로 백트래킹 로직이 돌지 않았다는 것을 확인했다.그리고 원인 파악에서 복사한 이중 list에 대한 원본이 계속 수정되고 있다는 것을 알게 되었다. 이 과정에서 Python의 얕은 복사와 깊은 복사에 대해 알게 되었고, 이를 정리하고자 한다. 얕은 복사(Shallow Copy)새 객체를 생성하지만 원본에 포함된 객체에 대한 참조를 유지하는 방식..
· Study/Python
이전에 탐지할 객체가 담긴 이미지를 라벨링하고, 학습을 진행했었다. 이제 학습 결과를 바탕으로 모델을 추출하고, 실제 detection까지 진행해보자 모델 추출(Export) 학습을 시작했을때 결과물들이 저장될 경로인 model_dir을 실행인자로 넣어주었다. 학습이 진행됨에 따라 해당 경로에 ckpt라는 파일이 점차 쌓이는데, 이를 체크포인트(checkpoint)라고 한다. 체크포인트는 Tensorflow를 통해 학습된 모델의 구조를 제외한 변수(가중치)만을 담고있는 파일이다. 그렇기 때문에 체크포인트를 바탕으로 재학습이 가능하고, 파일 크기가 크다는 특징이 있다. 이러한 체크포인트는 크기가 커 공유하거나 Tensorflow Serving과 같은 다른 환경으로 배포하기가 힘들다. 즉, 체크포인트를 모델..
· Study/Python
이제 API로 인식시킬 데이터셋을 학습시켜보자 학습까지의 과정 데이터 수집 > 데이터 라벨링 > 단일 csv 파일 생성 > TFRecord 생성 > Label map 생성 > pre-trained model 다운로드 & config 설정 > 이미지 학습 데이터 수집 학습에 사용할 이미지를 수집하는 단계로 적당한 크기의 객체가 들어있는 이미지를 수집한다. 데이터 라벨링 학습에 사용하기 위해 수집한 이미지 데이터를 라벨링하는 작업이 필요하다. LableImg라는 오픈소스 툴을 이용해 작업을 진행한다. # labelImg 설치 pip install labelImg # labelImg 실행 labelImg labelImg 설치 후 실행, 'Open Dir' 로 이미지가 저장된 폴더 선택하면 폴더 내의 모든 이미..
· Study/Python
Tensorflow를 이용해 Object Detection 모델을 학습(train)하고 사용하는 것을 쉽게 도와주는 오픈소스 프레임워크 (이하 TF ObDe API) API 설치 해당 API를 사용하기 위해 Tensorflow를 먼저 설치해줘야 한다. 포스팅에서는 Windows 10에 설치했다. 공식 가이드 : 공식 git, Readthedocs 설치 환경 - Windows 10 Pro - Anaconda 22.9.0(python 3.9) - tensorflow 2.10 - protoc 22.0 - Visual Studio 2022 1. python 가상환경 제작 # 가상환경 생성 conda create -n [가상환경 이름] python==[python 버전] # 가상환경 목록 보기 conda env ..
· Study/Python
이번에는 지난번 인사 명령에 이어 명령어를 더 추가하고 Embed에 대해서 알아보도록 하겠다. 새로 만들 명령은 주사위로, 예전 게시판 웹사이트를 보면 댓글로 많이 들어가 있었던 기능이다. @bot.command(aliases=['주사위']) async def roll(ctx, number:int): await ctx.send(f'주사위를 굴려 {random.randint(1,int(number))}이(가) 나왔습니다 (1~{number})') 3줄 남짓의 짧은 코드다. 이번 명령어는 단순히 명령어 하나만 입력받는 것이 아니라 매개변수를 하나 더 받는다 이와 같이 매개변수를 입력받고자 할때는 ctx 뒤에 매개변수 명을 써주자 @bot.command() async def repeat(ctx, *, txt)..
· Study/Python
게임하느라 디스코드를 쓰는 중에 '봇'을 사용하는 친구가 있었다. 명령어를 써서 노래도 틀고, 디스코드 서버 관리도 하는걸 보니 꽤 재미있어 보였다. 마침 파이썬도 배우는 참이라 삘받아서 만들어 보았다. 디스코드 봇을 만드는 언어는 여러종류가 있는데 가장 많이 쓰는 언어로는 크게 2가지가 있다고 한다. Node.js와 파이썬, 이 두가지인데 필자는 Node.js를 아직 다뤄본적이 없으므로 파이썬으로 만들기로 했다. 먼저 디스코드 개발자 페이지로 로그인해서 봇을 만들어줘야 한다. (discord.com/developers/) 로그인해서 들어간 후, Applications에서 New Application Application의 이름을 만들고 생성하면 My Application에 새롭게 추가가 된다 Gener..
Omoknooni
'Study/Python' 카테고리의 글 목록