본문 바로가기
728x90
반응형
SMALL

전체 글1632

[Keras] 학습 학습 keras model들은 입력 데이터와 label로 구성된 Numpy 배열 위에서 이루어진다. model을 학습기키기 위해서는 일반적으로 fit함수를 사용한다. (https://keras.io/api/models/sequential/) 여기서 리턴 값으로 학습 이력 (History) 정보를 return한다. 여기에는 loss, acc, val_loss, val_acc 값과 매 epoch 마다 각기 다른 값들이 저장되어 있다. ◦ loss : 훈련 손실값 ◦ acc : 훈련 정확도 ◦ val_loss : 검증 손실값 ◦ val_acc : 검증 정확도 # For a single-input model with 2 classes (binary classification): model = Sequential.. 2021. 12. 20.
[Scikit-Learn] train_test_split 모듈을 활용하여 학습과 테스트 세트 분리 train_test_split 모듈 scikit-learn의 model_selection 패키지 안에 train_test_split 모듈을 활용하여 손쉽게 학습 데이터 셋 (train set)과 테스트 셋 (test set)을 분리할 수 있다. train / test 은 train / validation 으로 볼 수 있다. ML 모델에 train 데이터를 100% 학습시킨 후 test 데이터에 모델을 적용했을 때 성능이 잘 안 나오는 경우가 있다. 이것을 보통 과적합 (overfitting)되었다라고 한다. 즉, 모델이 가진 학습 데이터에 overfitting되도록 학습하면 이를 조금이라도 벗어난 케이스에 대해서는 예측율이 현저히 떨어진다. 그렇기 때문에 overfitting을 방지하는 것은 전체적인 모.. 2021. 12. 20.
[Keras] 컴파일 (Compile) 컴파일 (Compile) 모델을 학습시키기 이전에, compile 메소드를 통해서 학습 방식에 대한 환경설정을 해야 한다. 다음의 세 개의 인자를 입력으로 받는다. 최적화 (optimizer) rmsprp나 adagrad와 같은 기존의 정규화기에 대한 문자열 식별자 또는 Optimizer 클래스의 인스턴스를 사용할 수 있다. 오차역전파로 node의 weight와 bias을 계속 업데이트하여 만들어진 model을 통해 더 나은 결과를 얻는다. 데이터의 양이 늘어나거나 hidden layer의 개수가 늘어날수록 계산이 복잡해지고 시간이 오래 걸린다. 따라서 이 시간을 줄이기 위한 방법이 경사하강법 (Gradient Descent)이다. gradient descent이란 loss function 그래프에서 학.. 2021. 12. 20.
[Keras] Sequential 모델 Sequential 모델 # Keras expects this data format (n_samples, height, width, channels) sequential model은 layer를 선형으로 연결하여 구성한다. layer 인스턴스를 생성자에게 넘겨줌으로써 sequential model을 구성할 수 있다. from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential([ Dense(32, input_shape=(784,)), Activation('relu'), Dense(10), Activation('softmax'), ]) 다른 방법으로 .add() 메소드를 통해서 쉽게 layer.. 2021. 12. 20.
케라스 (Keras) 케라스 (Keras) keras의 핵심적인 데이터 구조는 model이다. keras에서 제공하는 sequence model로 원하는 레이어를 쉽게 순차적으로 쌓을 수 있다. 케라스 모델링 순서 1. 데이터 set 생성하기 원본 데이터를 불러오거나 데이터를 생성하여 데이터로부터 훈련, 검증, 시험 set을 만든다. 때 DL model의 학습 및 평가를 할 수 있도록 포맷 변환 2. model 구성하기 sequence model을 생성한 뒤 필요한 layer를 추가하며 구성 좀 더 복잡한 model이 필요할 때는 keras 함수 API를 이용 3. 모델 학습과정 설정 학습하기 전, 학습에 대한 설정을 수행한다. 손실 함수 및 최적화 방법을 정의하며 compile() 함수를 사용 4. model 학습시키기 훈.. 2021. 12. 20.
사이킷런 (Scikit-Learn) 사이킷런 (Scikit-Learn) scikit-learn이란 python을 대표하는 머신 러닝 라이브러리이다. scikit-learn은 오픈 소스로 공개되어 있으며, 개인, 비즈니스 관계없이 누구나 무료로 사용가능하다. scikit-learn은 현재도 활용하여 개발이 이루어지고 있으며, 인터넷에서 정보를 찾기 쉽다. 샘플 데이터 셋이 부속되어 있으므로, 설치하여 바로 기계 학습을 시험해 볼 수 있다. 설치 pip install -U scikit-learn Classification 개체가 속한 범주 식별한다. Regression (회귀) 개체와 연결된 연속 값 속성을 예측한다. Clustering (군집화) 유사한 개체를 세트로 자동 그룹화한다. Dimensionality Reduction (차원 축소.. 2021. 12. 20.
16. Tkinter 고급 위젯 Tkinter 위젯 위젯은 객체를 생성하여 필요한 속성들을 지정하여 사용한다. 위젯은 부모 컨테이너와 연관하여 어떤 상대적 위치에 놓이게 되는데, Geometry Manager를 사용하여 각 위젯의 위치를 정하게 된다. MyFrame 클래스는 Frame으로부터 상속된 파생클래스이고, 생성자에서 Label 하나를 추가하고 있다. Label은 좌표 (0,0)에 위치 (place)하게 되고, 레이블 안에는 이미지를 넣고 있다. 이미지는 tkinter의 PhotoImage 클래스를 사용하고 있는데, 이 클래스는 .gif 파일 (혹은 PGM) 만을 읽을 수 있다. 다른 이미지 포맷을 사용하기 위해서는 외부 모듈을 사용해야 한다. PhotoImage()에 이미지 파일을 적고 리턴된 객체를 레이블에 지정하면 되는데,.. 2021. 12. 15.
15. GUI툴킷 Tkinter Tkinter tkinter module은 Tcl / Tk 툴킷을 python에서 사용하기 위한 인터페이스 module이다. Tcl은 python과 같은 script 언어이고 Tk는 Tcl을 위한 GUI 툴 킷이다. from tkinter import * root = Tk() label = Label(root, text='Hello World') label.pack() root.mainloop() - Label(root, text='Hello World') : Label 클래스의 첫번째 인수로 root를 사용했는데, 이것의 의미는 root창에 포함되는 콤포넌트로 생성하겠다는 의미이다. - label.pack() : label 객체를 창에 표시하는 역할을 한다. - root.mainloop() : root.. 2021. 12. 15.
14. 데이터베이스 (Database) 데이터베이스 (Database) 기존의 파일시스템에서는 중복된 정보를 효율적으로 처리하는 것이 관점 연구 분야였다. 이 중복을 피하여 정보를 일원화하여 처리를 효율적으로 수행하기 위해서 서로 관련성을 가지며 중복이 없는 데이터의 집합을 유지하는 것을 데이터베이스 (database)라고 한다. SQLite SQLite는 데이터베이스 관리 시스템 (DBMS; Database Management System)이다. DBMS는 여러 사용자 또는 응용 프로그램이 데이터를 저장하거나 조회할 수 있게 도와주는 시스템 또는 소프트웨어이다. 대표적인 DBMS로는 MySQL, PostgreSQL, Oracle, MS-SQL 등이 있다. SQLite는 Oracle이나 PostgreSQL과 같은 큰 규모의 DBMS와 달리 서.. 2021. 12. 15.
13. 네트워크 네트워크 프로그래밍 두 컴퓨터간의 데이터를 주고 받을 수 있도록 프로그래밍을 하는 것을 네트워크 프로그래밍이라 한다. 인터넷 망을 통한 디바이스와 컴퓨터간의 데이터를 주고 받는 것도 역시 네트워크 프로그래밍이라 한다. 두 컴퓨터간에 데이터를 주고 받을려면 물리적 연결이 필요한데 이러한 연결을 도울수 있는 것을 소켓 (socket)이라 한다. 컴퓨터가 서로 연결이 되면 데이터를 주고 받을 수 있다. 여기서 Server는 연결을 대기하는 컴퓨터이며 Client는 연결을 시도하는 컴퓨터를 뜻 한다. Server는 여러 Client를 연결 받아서 관리 할 수도 있다. 모든 데이터 송수신 작업이 끝나면 소켓을 닫으면 두개의 컴퓨터 연결을 사라진다. 소켓 (socket) # server.py 작성 from sock.. 2021. 12. 15.
728x90
반응형
LIST