python

개발

flask websocket

1. 서버패키지 설치는 아래의 명령어로 한다.pip3 install Flask-SocketIO==5.1.2 python-engineio==4.3.2 python-socketio==5.6.0 eventlet서버 코드는 다음과 같이 작성한다.from flask import Flask from flask_socketio import SocketIO import datetime import eventlet app = Flask(__name__) socketio = SocketIO(app) socketio.init_app(app, cors_allowed_origins="*") @app.route('/') def hello(): return 'This is site' def send_count_in_interval..

개발

porcupine

1. Access Key 발급https://console.picovoice.ai/signup 에서 회원가입을 진행한다.AccessKey를 확인한다. 2. 커스텀 단어 등록How do I build? > Porcupine Wake Word 메뉴를 클릭한다.원하는 언어와 단어를 입력한후, 테스트를 진행해본다.Train 버튼을 누른후, 원하는 플랫폼의 파일을 다운받는다.Android, iOS, Web, Linux, macos, Windows, Raspberry Pi, NVIDIA Jetson 등 다양한 플랫폼을 제공하고 있다.Download 버튼을 클릭하면, 파일을 다운받을 수 있다. 3. 패키지 설치아래의 명령어를 입력하여 패키지를 설치한다.pip3 install pvporcupine==2.1.3 pvrec..

개발

flask https 설정

1. flask 예제 (http)from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'This is HTTP site' if __name__ == '__main__': app.run('0.0.0.0', 9999, debug=True) 2. 인증서 생성openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365 3. flask 예제 (https)from flask import Flask import eventlet import eventlet.wsgi app = Flask(__name__) @app.route('/') def h..

개발

SpeechRecognition

💡Speech Recognition 패키지에서 기본이 되는 google api와 한국어와 오프라인 모드를 지원하는 vosk, whisper를 중점적으로 stt 기본 코드를 활용 1. 개발환경 구성pip3 install SpeechRecognition # for MAC brew install portaudio pip3 install pyaudio # for Ubuntu sudo apt-get install python-pyaudio python3-pyaudio sudo apt-get install portaudio19-dev python-all-dev python3-all-dev sudo pip install pyaudio # for api python3 -m pip install vosk python3 ..

개발

정렬 알고리즘

선택 정렬 (Selection Sort)최소값을 선택하여 정렬하는 알고리즘def selection_sort(a): n = len(a) for i in range(0, n - 1): min_idx = i for j in range(i + 1, n): if a[j] = 0 and a[j] > key: a[j + 1] = a[j] j -= 1 a[j + 1] = key 버블 정렬 (B..

머신러닝

Tensorflow Reproducible Result

Reproducible Result? 코랩에서 tensorflow를 활용한 CNN 모델 학습을 진행하다가, 동일한 레이어 및 설정을 해도 결과마다 loss 및 accuracy가 다르게 나오는 경우를 보았다. 구글링을 해보니, random seed 및 gpu 연산에 따라서 결과가 다르게 나오는 것이 원인이었다. 레이어나 설정에 따라 loss 및 accuracy가 어떻게 변화되는지 확인하고 싶었고, 이에 따라 재현가능한 결과가 나오도록 설정하고 싶었다. 이에 따라 몇가지 설정을 적용해서, 동일한 레이어 및 설정에서 동일한 결과가 도출되는 것을 확인하였다. 필요한 설정 tensorflow의 utils에서 set_random_seed 메서드를 호출하여 시드값을 설정한다. tensorflow의 config에서 e..

딥러닝

DNN 코드 정리

간단 정리 이진분류다중분류회귀학습(loss)binary_crossentropycategorical_crossentropymse성능(metrics)accuracy, recallaccuracy, recallmae, r_square출력층 개수1개n개1개출력층 활성화함수sigmoidsoftmax사용하지 않음 라이브러리 불러오기 import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.utils import to_categorical from sklearn.model_selection import train_test_split from tensorflow.keras import models, layers, re..

개발

PythonAnywhere

PythonAnywhere? https://www.pythonanywhere.com/ flash, django 등 python 웹앱을 호스팅할 수 있는 서비스 무료계정의 경우에 2개의 console, 1개의 web 프로젝트가 사용이 가능하다 회원 가입 간단한 이메일 인증만으로 가입이 가능하다 Web 프로젝트 생성 Web > Add a new web app 선택 Next > Flask > Python 3.10 > app 이름 설정 파일 업로드 Files > mysite 폴더 하위에 웹앱에 맞게 폴더 및 파일 업로드 무료 계정의 경우에는 512MB 제한이 있음 Bash console를 통해서 Git 저장소를 clone해서 파일을 다운받을 수도 있음 Consoles Consoles > Bash을 클릭해서, 필..

머신러닝

Classification 코드 정리

라이브러리 불러오기 import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from datetime import datetime from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier, AdaBoostCl..

머신러닝

Regression 코드 정리

라이브러리 불러오기 import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_diabetes from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import train_test_split from datetime import datetime from sklearn.linear_model import LinearRegression from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble im..

머신러닝

One Hot Encoding

개념 범주형 변수를 변환할때 사용하는 인코딩 방법으로, 0 또는 1의 값을 가진 하나 이상의 새로운 특성으로 변환한다. 혈액형에 따른 분류할 때, 0~3이 아니라 (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1)의 형태로 나누는 것을 의미한다. 숫자의 크고 작음에 따른 중요도를 없애기 위하여 사용된다. 다중공선성 문제가 있어서, n개의 변수보다는 n-1개의 변수를 만드는 것이 좋다. 혈액형의 변수를 4개가 아니라 3개로 처리하여, (1, 0, 0), (0, 1, 0), (0, 0, 1), (0, 0, 0)의 형태로 나타내는 것이다. 코드 라이브러리 불러오기 import numpy as np import pandas as pd import seaborn as..

머신러닝

numpy, pandas 코드 정리

라이브러리 및 데이터 불러오기 import numpy as np import pandas as pd Numpy 데이터 불러오기 items = np.array([[20, 12.34, True, "A"], [12, 34.1, False, "B"], [43, 55.3, True, "A"], [45, 64.2, False, "C"], [23, 65.1, False, "E"], [65, 22.3, True, "A"], [9, 44.1, True, "B"], [122, 67.1, False, "C"], [567, 34.2, False, "C"]], dtype=object) items 모양 출력 items.shape 모양 변경 new_items = items.reshape((1,36)) print("shape:", ..

'python' 태그의 글 목록
devskim