목록전체 글 (105)
imhamburger 님의 블로그
자바는 파일 확장명인 .java인 파일을 생성하고 자바 언어로 코드를 작성한 후 이렇게 만든 자바 소스 파일을 javac 명령어로 컴파일해야 한다. 컴파일이 성공하면 확장명이 .class인 바이트 코드 파일이 생성된다. 컴파일 명령어javac .java 참고javac -d bin src/.java 자바 소스 파일(App.java)을 컴파일하여 .class 파일을 특정 디렉터리(bin)에 저장하는 명령어이다. 컴파일이 가능하다면 당연히 디컴파일도 가능하다.디컴파일 다운로드 디컴파일 패키지?를 다운로드한 후 아래 명령어로 실행하면 된다. 디컴파일 실행하기java -jar jd-gui-1.6.6.jar 자바 기초익히기 1. String Copypublic class StringCopy { public ..
다시 팀프로젝트 기간이 돌아왔다. 이번에도 3일간 과제를 수행하면 된다! 팀구성은 5인 1조인데 우리의 팀 이름은 "3Kcal" 으로 정했다. 딱히 팀 이름에 그럴싸한 아이디어가 떠오르지 않아...약간 막지은 느낌이 있다..ㅋ 팀프로젝트 주제임의의 ML 및 DL 모델에 대한 서비스를 관리 제어 하는 내부 관리 프로그램streamlit 을 통해 관리 화면을 html css js 없이 python 만으로 생성관리화면은 예측 결과에 대한 검토 및 잘못된 예측에 대한 코맨트, 라벨 기록 가능그 외 관리 화면에서 위 검토된 코맨트, 라벨을 기반으로 서비스 예측 정확성 통계 도출 모델 선정우리가 선택한 ML은 글을 읽어 감정을 예측하는 모델이다. (여기) 이 모델을 선택한 이유는... 개인적인 생각으로는! 이전에 ..
지난글에서는 "ml-worker" 모듈을 자동적으로 실행해줄 cron 세팅하였는데, 이번에는 cron이 아닌 Airflow를 이용해 스케줄러 작업을 해보고자 한다.그리고 하는김에 CeleryExecutor를 곁들인......(사실 이것이 메인) 에어플로우에는 3개의 Executor가 있다.종류특징SequentialExecutor모든 태스크를 한 번에 하나씩 순차적으로 실행LocalExecutor여러 개의 태스크를 병렬로 실행할 수 있지만, 같은 호스트 내에서만 가능CeleryExecutor여러 대의 컴퓨터에서 병렬로 태스크를 실행할 수 있으므로 가장 큰 확장성을 제공 Celery가 뭔데? Celery를 쉽게 설명하자면, Celery는 컴퓨터에게 어떤 "일"(작업)을 나중에 따로 처리하도록 시킬 수 있게..
사용자가 이미지를 업로드하면 hotdog인지 not hotdog 인지 판별해주는 API 기능을 만들고, 사용자가 보는 프론트쪽이랑 API 기능을 연결할 것이다. (판별해주는 딥러닝 모델은 이미 만들어져있는 것을 사용할 것이다.) 그러면 우리가 만들어줘야할 건 2가지이다.판별해 결과를 출력해주는 API 기능사용자 웹페이지 (매우 간단하게..!)사전 준비사항핫도그를 판별해주는 모델 (여기)핫도그를 판별해주는 모델은 이미지를 업로드하면 다음과 같이 출력된다.#예시 { "label": "not hot dog", "score": 0.7514119744300842 "label": "hot dog", "score": 0.2524546346134245 } 즉, 업로드한 이미지가 not hot dog 점수가 높다면 그것..
1. 순열(Permutation) 순열은 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산이다. [1, 2, 3] 이라는 숫자들을 가지고 순열을 구현해보자.그림으로 나타내면 다음과 같다. 경우의 수는 총 6개이다.[1, 2, 3][1, 3, 2][2, 1, 3][2, 3, 1][3, 1, 2][3, 2, 1] 그리고 숫자들을 각각 i, j, k 라고할 때,i, j, k[1, 2, 3][1, 3, 2][2, 1, 3][2, 3, 1][3, 1, 2][3, 2, 1]잘 살펴보면 규칙이 있다.i 에 나왔던 수는 j 에 나오지 않는다.i 와 j 에 나왔던 수는 k 에 나오지 않는다. 1-1 반복문 사용 규칙을 이용해 반복문으로 구현해보자.for i in range(1, 4): for j in rang..
사건의 발단은... 딥러닝 구현을 위해 Tensorflow를 설치하였는데... 에러가 났다.나는 pdm 가상환경에서 설치를 하였는데, 어떤 환경이든 상관은 없는 것 같고 조금 연식이 있는 컴퓨터를 사용하고 있다면 에러가 날 수도 있다. (근데 나는 20년도에 샀눈디... 어쨋든...) 에러메세지 1: No candidate is found for `tensorflow` that matches the environment or hashes에러메세지 2: ValueError: Unable to create tensor, you should probably activate padding with 'padding=True' to have batched tensors with the same length.에러메..
지난글에서 사진을 업로드하는 기능을 만들고 업로드된 사진이 DB에 적재되는 것까지 구현하였다. 이번에 할 Task는 다음과 같다. 1. "ml-worker"라는 모듈 이어서 만들기2. "ml-worker" 모듈을 자동적으로 실행해줄 cron 세팅하기3. Docker 이미지로 만들어 실행해보기 (잘 되는지)4. 숫자이미지를 넣으면 예측해주는 기능을 진짜 딥러닝 모델 입히기5. 다시 Docker 이미지로 만들어 로컬이 아닌 AWS 에서 실행해보기6. AWS에서 도커를 실행하였을 때, 라인알람 문제 해결하기 1. "ml-worker"라는 모듈 이어서 만들기 나는 for문을 이용해 NULL이었던 prediction_result / prediction_model / prediction_time 을 채워주었었다...
MNIST 딥러닝을 시작하기 전에 사전 작업으로 파일을 업로드하면 해당 파일을 업로드할 때마다 DB에 저장시키는 기능을 구현하였다.이전에는 텍스트만 입력하면 입력한 텍스트를 DB에 저장시키는 기능을 구현하였었다. (이전글) 1. 업로드 API 구현하기 이번엔 조금 업그레이드하여 파일을 업로드할 수 있는 기능을 구현해보자!아래 코드는 FastAPI 공식문서를 참조하여 작성하였다. FastAPI에서는 다양한 기능을 간단하게 구현할 수 있어 편리하다.from typing import Annotatedimport osfrom fastapi import FastAPI, File, UploadFilefrom datetime import datetimeimport pymysql.cursorsapp = FastAPI..
아래와 같은 배포된 웹사이트가 있고,음식 이름을 입력 후 "저장" 버튼을 누르면 입력값이 MariaDB에 저장이 되게끔 만들고자 한다. 1. 기능 구현하기 웹사이트 화면 나는 웹사이트(프론트앤드)에서 입력받은 값을 FastAPI(백앤드)에서 받을 것이다.내가 만든 main.py 은 다음과 같다.from typing import Unionfrom fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewarefrom datetime import datetimeimport pandas as pdimport pymysql.cursorsimport csvapp = FastAPI()origins = [ "http://localhost:88..
NGINX 설정 파일은 기본적으로 /etc/nginx 디렉터리에 위치한다. 메인 설정 파일:/etc/nginx/nginx.conf 해당 디렉토리 안에 conf 파일은 NGINX의 메인 설정 파일이며, 이 파일에서 전역 설정과 기본 서버 블록 설정 등을 정의할 수 있다. 개별 서버 설정 파일:/etc/nginx/conf.d/이 디렉터리 안에 추가적인 설정 파일을 둘 수 있다. 일반적으로 새로운 사이트나 서비스에 대한 설정 파일은 이곳에 생성한다. 예를 들어, .conf 같은 개별 설정 파일을 여기에 두면 NGINX가 자동으로 로드한다. 나는 개별 서버 설정파일을 만들었다. nginx가 로드밸런싱하기 위해서는 upstream 블록이 필요하다.서버 요청을 분산시키지 않을 경우에는 upstream 블록이 필..