[Python] contextmanager와 with 관계
·
Python
보통 파이썬에서 파일을 열어 읽고 쓰고 수정하는 일들을 할 때 with문법을 사용한다with문법을 사용하지 않고도 파일을 열람할 수 있지만, 왜 with를 굳이 사용할까?with?with는 파일 열람의 기능만 하는 것이 아닌 문법 안에서 예외가 일어났을 때 파일에 의한 리소스누출을 막아주는 역할을 해준다f = open("a.txt", "r")data = f.read()f.close()이 코드는 with를 사용하지 않고 a.txt를 읽는 목적으로 파일을 연다data에 파일 내용을 저장하고 열었던 파일을 다시 닫는다 with는?with open("a.txt", "r") as f: data = f.read()위의 코드와 똑같은 내용이다 하지만 with를 사용할 때 open객체 안에 있는 enter, ex..
제10회 전국 고등학교 동아리 경연대회 뒷풀이
·
뒷풀이
제 10회 전국 고등학교 동아리 경연대회가 11월 15일 진행되었다.개인적으로 배운 점이 많았던 대회지만, 배운 만큼 성적이 아쉬운 대회라고 여겨질 것 같다. 우리 팀 Spoti.py는 YOLO & Mediapipe기반 졸음운전 방지 서비스를 개발하였다멘토링본선 대회 전에 멘토링을 선택하여 진행할 수 있었다.우리팀 주제 특성상 라즈베리파이같은 마이크로컴퓨터를 연계하여 진행하는 프로젝트여서멘토링이 반필수적이었다고 할 수 있다. 처음 멘토링에는 라즈베리파이가 우리 프로젝트와 어울리지 않는다고 하셨다. 1학기 캡스톤이랑 굉장히 비슷하게 흘러갔던 프로젝트였던 것 같다.처음부터 기둥축이 되는 라즈베리파이가 부적절하다고 하니,, 두번 째 멘토링까지는 크게 다를 것 없이 진행되었지만, 이 이후부터 미친이슈가 여러 개..
[Python] 함수 어노테이션?
·
Python
def function(x: int) -> int: ... GPT에게 코드를 작업시킬때나 인터넷에 떠돌아다니는 함수 코드들을 보면 함수에 이상한 자료형을 표시해놓는다. 뭔가 있어보이는데,, 생긴거만 보면 코드에 직접적인 영향을 줄 수 있을만한 요소라고 생각할 수 있다. 함수 어노테이션반환 타입 힌트 ( return type hint ) 라고도 말한다. 말 그대로 함수가 어떤 자료형을 반환하는지 힌트만 주는 문법이다. 코드에 직접적인 영향을 주지 않고, 오직 개발자가 보고 해석하기 편하게 참고용으로만 적는 거라고 한다. 파이썬 기본 자료형 말고도 라이브러리를 통해 더 많은 자료형 표현이 가능하다고 한다 typing 라이브러리from typing import List, Dict, Optional .....
[AI] 텍스트데이터 증강기법은 어떤게 있을까?
·
AI
AI모델 학습에는 질 좋은 데이터가 아주 많아야 한다보통 데이터셋을 찾아보면 만족하기 힘든 양과 질의 데이터셋이 널려있지만 그걸 해결하기 위해데이터 증강이라는 기법을 사용한다 데이터 증강이라고 하면기존 데이터를 가지고 여러 효과를 걸어 데이터를 더 많아보이게 하는 기법이라고 할 수 있다데이터가 적으면 과적합이 일어나고 일반화능력이 저하되어 도메인이 편향되는 효과가 자주 나타나 정확도가 떨어진다 증강 방법은 크게 5가지 있다랜덤 스왑문장에서 단어를 골라 N번 위치를 변경하는 기법기존증강 후저는 데이터 증강을 공부하고 있습니다.공부하고 데이터 저는 증강 있습니다. 단어 순서가 바뀌면서 문장에 대한 일반화가 쉽게 진행된다그러나 너무 많이 섞으면 문장의 의미가 깨지기 쉬우니 적당히 섞어야 한다랜덤 삽입문장의 랜..
[AI] ML/DL 모델에서 과적합은 어떻게 방지될까?
·
AI
머신러닝 / 딥러닝 모델 학습을 진행하다보면 과적합과 같은 성능 문제에 직면하게 된다.과적합은 모델이 학습한 데이터 외에는 정확도가 현저히 낮아지는 문제이다. 대표적인 이미지처리 딥러닝 모델 중 YOLO는 학습 진행 시box, class와 같은 요소에 loss값을 표시해준다. loss값은 '낮으면 좋은 수치'로만 알고 있지만, DCC 대회 예선 중 loss값이 과적합이라고 판단하는중요한 요소 중 하나라고 소개되어 대충 알고 넘어가면 안될 것 같아 다시 한 번 공부해본다.loss?모델이 학습을 진행할 때, 그 모델이 얼마나 학습을 잘 진행했는지 알려주는 수치다모델이 원본데이터 ( 정답이 없는 데이터 )를 가지고 학습한 후에 메타데이터 ( 정답 있는 데이터 )와 비교해보는데,이때 메타데이터와 모델이 그린 박..
[AI] OOM
·
AI
2학기 캡스톤 기능을 어떻게 구현할지 맛만보다가OutOfMemoryError가 떴다처음에는 C드라이브가 꽉 차서 문제가 생긴 듯 했지만모델을 불러올 땐 GPU 용량을 사용하기 때문에 크게 문제될건 없었다 그러면 GPU용량 때문인가? 해서일단 내 vRAM부터 알아보기로 했다공유 메모리는 무시하고 전용 gpu 메모리를 VRAM이라고 한다. VRAM이 실제로 사용하는 GPU 메모리임사진에는 VRAM이 0.3기가 남아있는데, 난 여기다가 그냥 '되겟지 ~~'하면서 모델을 불러온것이었다조금 알아보니 3B모델은 최소 VRAM이 6~8GB는 되어야 불러와진다고 한다.. 지금은 1.5B 모델을 불러와 사용하고 있지만, 3B에 비해 한국어가 너무 딸렸던 것 같다중국에서 만들어서 그런지 글자 사이사이에 중국어가 끼어있고,..
[Python] uv
·
Python
파이썬에는 가상환경을 설정할 수 있는 방법들이 있다.대표적으로 알려진 건 Venv, Conda 두개지만venv는 너무 가벼워서 충돌이 많이 나고,Conda는 너무 무거워서 들고다니기 어렵지만 안정적이기 때문에 보통 Conda를 선호하지만uv라는 가상환경 툴이 나왔다.uvRust 기반 가상환경 설정 툴이다. 패키지를 설치하는 기본 명령어인 pip보다 5배는 빠른 패키지 설치와 의존성 설정이 간편해진다.특히 C계열 의존성 처리를 아주 잘 해주는 툴이다. Rust 기반이라서 속도가 빠른 게 당연하다고 볼 수 있고, 기초 설치와 사용법 마저도 간단하다.알아서 lockfile도 생성해주기 때문에 poetry와 같은 재사용 가능한 환경도 구축 가능하다. 하지만 torch, tensorflow와 같은 무거운 패키지들..
[Network] Reverse Proxy
·
Network
캡스톤 프로젝트 마무리 단계, 배포 중에'Mixed Content' 라는 오류가 떴다. 클라이언트를 HTTPS로 배포해놓은 상태에서 서버를 HTTP로 구성해놓으니 이 오류가 뜬 것 같다.Proxy?클라이언트와 서버 사이에 있는 도우미라고 생각하면 편할 것 같다.IP 우회 저 사진에서 프록시가 클라이언트 - 인터넷 사이에 끼는지, 인터넷 - 서버 사이에 끼는지에 따라프록시의 이름과 역할이 바뀐다.Forward Proxy이게 흔히 아는 VPN 역할하는 프록시클라이언트 - 인터넷 사이에 껴서 활동한다. 클라이언트 IP로 서버에 요청을 보내면 프록시가 중간에 자기 IP로 바꿔 요청을 보낸다.이로 인해 검열우회와 익명성이 생긴다. Tor 브라우저가 가장 큰 예시다. Proxy 기능 이외에도 암호와와 같은 다른 기..
1학기 캡스톤 뒷풀이
·
뒷풀이
25년도 경북소프트웨어마이스터고등학교 2학년 1학기 캡스톤 회고(뒷풀이) 끄적여보겠습니다.개발한 양에 비해 적은 성과가 찾아와서 개인적으로는 아쉽지만, 그럼에도 만족스러운 캡스톤이었던 것 같습니다.기획안 발표아이디어 내는게 가장 힘들었던 것 같았다.의성군내 문제로 3팀이 주제를 좁게 가져갈 수 있었지만, 나와 팀원들 전부 굳이? 라는 마인드로 가산점을 준다는 혜택에도자유주제로 이어감 교육 금융 의료... 카테고리 여러 개 나왔는데금융으로 카테고리를 줄였고, '사회초년생을 위한 재정관리 서비스'라는 슬로건을 가진 'Fresh Money' 프로젝트를 시작했다.기능명세서??처음 들었을 때 '이게뭐지???' 싶었다.물어보니 "팀 프로젝트 크게 할 때 어떤 기능 있는지 엑셀에다가 쓰는거" 로 이해해서 생각나는거..