전체 글 206

YOLOv5 custom dataset으로 학습시키기 A to Z | 🍚 한식 분류기 만들기

CareSpoon: 한식 분류기 만들기 A to Z YOLOv5 custom dataset으로 학습시키기 현재 졸업 프로젝트에서 음식 이미지에서 음식을 인식해서 섭취한 영양 성분을 분석하고 영양 상태를 관리해주는 를 개발하고 있다. 나는 음식 이미지에서 음식 메뉴를 추론하는 AI 모델링과 AI 모델 서버 파트를 맡았다. 아래 사진과 같이 우리 팀 노션 페이지에서 모든 태스크 및 일정을 관리하면서 개발중이다. 지금은 FastAPI로 AI 모델 api까지 개발 완료했고, EC2로 배포중이다. 직접 데이터를 구축하고, GPU를 사용하기 위해 개발환경을 세팅하고, 리눅스 환경에서 모델을 학습시킨 것이 처음이라 CUDA, cuDNN 등 개발환경 셋업부터 쉽지 않았다. 그래서 프로젝트 과정을 최대한 자세하게, 처음..

2023-04-29~05-01 코딩테스트, 데보션 영, <미움받을 용기>

04-29 (토) 코딩테스트, 데보션 테크 세미나, 아이데이션 글로벌 인턴십 코딩테스트가 있어서 아침부터 학교 공도(공학도서관)에 가서 코테를 봤다. 시험 끝난 주말 아침이라 그런지 공도에 아~무도 없었다. 코테가 6시간이라서 끝나고 나니 저녁 시간이 되었다. 밖에서 혼밥하고 다시 공도 와서 데보션 테크 세미나 내용 정리했다. 2시간 좀 넘는 분량인데 영어로 진행된 세미나라서 금요일부터 내용 정리 시작했는데도 이날 시간이 좀 걸렸다. 챗지피티 API 사용하는 방법이랑 프롬프트 엔지니어링에 관한 내용이었다. 올해 3월부터 ‘데보션 영’이라는 SKT 기술 블로그 ‘데보션’의 대학생 기자단 대외활동을 하고 있는데, 생각보다 미션이 많아서 할 일이 많긴 하지만 유익한 활동도 많아서 그만큼 배우는 것도 많다. 무..

글쓰기 2023.05.02

2023-04-13~28 시험기간, <미움받을 용기>, 고등학교

시험기간 플러스 다른 일들로 바빠서 오랜만에 글 쓰니깐 어색하다. 옛날 일들을 회상하면서 쓰려니깐 경험한 직후에 쓰는 것보다 여운도 덜 하고, 기억도 희미해지고, 이런 거까지 써야 하나 싶은 생각도 들어서 많이 적지 못했다. 좋은 순간들 다 사라지기 전에 꼭 기록으로 남겨서 오래 간직해야겠다. 힘든 일을 해내는 가장 쉬운 방법은 관성으로 하게 하는 것이다. 다시 오늘부터 글쓰기 스타트!1. 중간고사시험 기간인데다가 졸프 중간 발표, 인턴십 지원, 동아리, 데보션으로 할 일이 많아서 학교-스터디카페-집 반복이었다. 이번 시험기간에는 쉬지 않고 뭔가를 계속 했는데, 생각이 많았는지 제대로 집중한 시간이 적어서 효율이 좋지 못했다. 항상 나를 다스리는 일이 가장 어렵다. 그래서 요즘은 내가 로봇같이 감정의 동..

글쓰기 2023.05.01

[백준/파이썬] 2579 계단 오르기 - 다이나믹 프로그래밍

➰ 2579번 계단 오르기 💡 구현 아이디어 이 문제는 다이나믹 프로그래밍으로 풀이했는데, 먼저 다이나믹 프로그래밍에 대해 알아보겠다. 1. 다이나믹 프로그래밍이란 다이나믹 프로그래밍은 메모리를 잘 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이다. 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. 2. 다이나믹 프로그래밍 구현 방법 다이나믹 프로그래밍 구현 방법은 크게 두 가지가 있다. 1) Top-Down, 하향식 방식 큰 문제를 해결하기 위해 작은 문제를 호출하는 방법으로 재귀 함수를 이용하여 코드를 작성한다. 한 번 계산한 결과를 메모리 공간에 메모하는 기법이다. 메모이제이션(Memoization) 방식이라고도 하며 재귀함수를 이용한다. 정확히 말..

Algorithm 2023.01.25

[백준/파이썬] 10799 쇠막대기 (자료 구조) - 스택 사용하기

➰ 10799번 쇠막대기 💡 구현 아이디어 이 문제의 포인트는 닫는 괄호가 레이저인지 쇠막대기의 끝인지를 구분하는 것이다. ( ) 이렇게 나오면 레이저이고, ) ) 이처럼 닫는 괄호가 연속해서 나올 때 이때 두 번째 괄호는 쇠막대기의 끝이 된다. 조각은 1) 레이저에 의해 생기는 경우와 2) 쇠막대기의 끝이어서 생기는 경우 두 가지 경우로 생긴다. 1) 레이저에 의해 조각이 생기는 경우 앞에서 나온 (레이저가 아닌) 여는 괄호 '('의 수 만큼 더해준다. 이때 레이저가 아닌 여는 괄호들은 stack에 하나씩 추가해준다. 따라서 레이저가 나오면 스택의 길이(len(stack))만큼 더해준다. 2) 쇠막대기의 끝이어서 조각이 생기는 경우 닫는 괄호가 쇠막대기의 끝이라면, +1만 해주면 된다. 이때 stack..

Algorithm 2022.10.08

[백준/파이썬] 4889 안정적인 문자열 (자료 구조) - 스택, 덱 사용하기

➰ 4889번 안정적인 문자열 ▪ 문제 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 여기서 안정적인 문자열을 만들기 위한 최소 연산의 수를 구하려고 한다. 안정적인 문자열의 정의란 다음과 같다. 빈 문자열은 안정적이다. S가 안정적이라면, {S}도 안정적인 문자열이다. S와 T가 안정적이라면, ST(두 문자열의 연결)도 안정적이다. {}, {}{}, {{}{}}는 안정적인 문자열이지만, }{, {{}{, {}{는 안정적인 문자열이 아니다. 문자열에 행할 수 있는 연산은 여는 괄호를 닫는 괄호로 바꾸거나, 닫는 괄호를 여는 괄호로 바꾸는 것 2가지이다. ▪ 입력 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어..

Algorithm 2022.10.07

💻[Python] 파이썬에서 자료구조 덱(deque) 사용하기

파이썬 공식문서에서 자료구조 덱(deque) 사용법과 관련 함수들을 확인할 수 있다. class collections.deque([iterable]) 1. 덱(deque)이란? Double Ended Queue이다. stack과 queue를 합쳐 놓은 자료구조이다. 자료의 양 끝에서 삽입/삭제 연산이 이루어진다. 덱의 모든 연산의 시간 복잡도는 O(1)이다. 2. 파이썬에서 덱 사용하기 파이썬에서 list를 사용하는 것과 비슷한데, deque이 시간 복잡도 측면에서 훨씬 유리하다. list의 크기가 작을 때는 상관 없겠지만, 리스트의 크기가 아주 커진다면 리스트의 삽입과 삭제 연산은 아주 복잡해진다. list의 삭제 연산의 시간 복잡도는 O(n)이고, deque의 삭제 연산의 시간 복잡도는 O(1)이다...

Algorithm 2022.10.07

[백준/파이썬] 9375 패션왕 신해빈 (자료 구조) - 딕셔너리

➰ 9375번 패션왕 신해빈 ▪ 문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? ▪ 입력 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다. 모든 문자열은 1이상 20이하의 알파벳 소문자로 이루..

Algorithm 2022.09.28

[백준/파이썬] 10816 숫자 카드 2 (자료 구조) - Counter 라이브러리

➰ 10816번 숫자 카드 2 ▪ 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. ▪ 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,0..

Algorithm 2022.09.28

[백준/파이썬] 2108 통계학 - 수학, 구현, 정렬

➰ 2108번 통계학 ▪ 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. ▪ 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. ▪ 출력 첫째 줄에는 산..

Algorithm 2022.09.25
반응형