본문 바로가기

분류 전체보기

(54)
Deep Learning : Fine Tuning을 하기 위한 코드와 설명 Fine Tuning 설명 # fine tuning은 트랜스퍼러닝을 한 상태에서 수행하는 방법이다. # 1. 베이스 모델의 전체 레이어를 학습 가능토록 먼저 바꿔준다. base_model.trainable = True # 2. 베이스 모델의 전체 레이어 수를 확인한다. len(base_model.layers) # 3. 몇번째 레이어까지 학습이 안되게할지 결정해야 한다. end_layer = 100 # 4. 베이스 모델의 첫번째 레이어부터 우리가 정한 레이어까지는 학습이 안되도록 설정해준다. for layer in base_model.layers[ 0 : end_layer+1 ]: layer.trainable = False base_model.summary() out 일부분 : Total params: 2..
Deep Learning : Transfer Leaning을 하기위한 코드와 설명 / 에포크 시마다, 기록을 남길 수 있는, CSVLogger 사용방법(작성중) Transfer Leaning 설명 딥러닝 관점에서, 이미지 분류 문제는 전이 학습(Transfer Learning) 으로 접근할 수 있다. 사실, 최상위 랭크를 기록하는 몇몇 이미지 분류 결과들은 전이학습을 이용해 만들어낸 결과들이기도하다. 기존의 만들어진 모델을 사용하여 새로운 모델을 만들시 학습을 빠르게 하며, 예측을 더 높이는 방법입니다. 학습하기 Topic : Downloading the Dogs vs Cats dataset [ 파일설치 ] In : !wget --no-check-certificate \ https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip \ -O ./cats_and_dogs_filtered.zip O..
백엔드 맛보기(진행중) PC : Window / Mac / Linux MOBILE : Android / Ios - 각각의 API에 맞게 개발을 따로따로 한다. Google / Naver / Microsoft 도 마찬가지로 API가 다르다. ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ 백엔드개발 : API서버를 관리한다. API를 설계하다. 외람적으로 Yutube API 설정하는 법 Google API 콘솔에 액세스하고 API 키를 요청하며 애플리케이션을 등록하려면 Google 계정으로 로그인한다. API 요청을 제출할 수 있도록 Google에 애플리케이션을 등록합니다. 애플리케이션을 등록한 ..
Deep Learning : 파일을, training 과 test 디렉토리로 나눠서 저장하는 방법(디렉토리를 따로 만들어서 학습데이터 저장: mkdir, listdir) - 파일을, training 과 test 디렉토리로 나눠서 저장하는 방법 training set은 이름 그대로 이 데이터는 모델을 학습시키기 위해서만 사용한다. 이렇게 학습이 완료되었다면 그 시점에서 test set을 도입하는데, 이 데이터는 모델의 입장에서 지금껏 한 번도 본 적이 없는 데이터이다. 이 데이터를 통해 모델이 예측한 값을 평가함으로써 공정한 평가가 가능하다는 것이다. test set은 비밀 데이터처럼 숨겨두었다가 학습이 끝난 다음에, 모델을 테스트하기 위해서만 사용한다. - 실무에서 CNN을 학습시킬때 학습할 데이터를 따로 복사해서 저장한다음 학습시킨다고 한다. 1. os.mkdir 사용하여 사진을 저장할 디렉토리를 만든다. 2. tmp에 cats-v-dogs폴더를 만들고 그 안에 tra..
Deep Learning : ImageDataGenerator 를 이용해서 데이터 증강 하는방법 ImageDataGenerator 클래스란? 이미지를 학습시킬 때 학습데이터의 양이 적을 경우, 학습데이터를 조금씩 변형시켜서 학습데이터의 양을 늘리는 방식중에 하나이다. rescale = 1./255 : 값을 0과 1 사이로 변경 rotation_range = 30 : 무작위 회전각도 30도 이내 shear_range = 0.2 : 층밀리기 강도 20% zoom_range = 0.2 : 무작위 줌 범위 20% horizontal_flip = True : 무작위로 가로로 뒤짚는다. ImageDataGenerator - 이미지 변형 train_generator = train_datagen.flow( x=x_train, y=y_train, batch_size=32, shuffle=True ) train_da..
Deep Learning : 파이썬으로 압축파일 푸는 방법 / JPG나 PNG같은 이미지 파일을, 학습데이터로 만드는 방법(Tensorflow의 ImageDataGenerator) * 파이썬으로 압축파일 푸는 방법 In : import zipfile JPG나 PNG같은 이미지 파일을, 학습데이터로 만드는 방법(Tensorflow의 ImageDataGenerator) - 사진이 저장된 폴더 경로 만들기 In : zip_ref = zipfile.ZipFile('/tmp/horse-or-human.zip') - 각 폴더에 저장되어 있는 사진파일이름들 출력하기 In : zip_ref.extractall('/tmp/horse-or-human') zip_ref = zipfile.ZipFile('/tmp/horse-or-human.zip') zip_ref.extractall('/tmp/validation-horse-or-human') zip_ref.close() train_horse_dir =..
Deep Learning : 구글 코랩에서, 인터넷에 있는 파일을 다운로드 하는 방법 * 구글 코랩에서, 인터넷에 있는 파일을 다운로드 하는 방법 !wget : 다운로드 하는 코드 In : !wget --no-check-certificate \ https://storage.googleapis.com/laurencemoroney-blog.appspot.com/horse-or-human.zip -O /tmp/horse-or-human.zip out : --2022-06-15 00:52:12-- https://storage.googleapis.com/laurencemoroney-blog.appspot.com/horse-or-human.zip Resolving storage.googleapis.com (storage.googleapis.com)... 74.125.141.128, 173.194.2..
Deep Learning : 텐서플로우의 모델을 저장하고 불러오는 방법(진행중) 사용 중인 API에 따라 TensorFlow 모델을 저장하는 다양한 방법이 있다. 이 가이드에서는 TensorFlow에서 모델을 빌드하고 훈련하기 위해 고수준 API인 tf.keras를 사용한다. 내장 함수 model.save() 사용 내장 함수 model.save_weights() 사용 save() 메소드 사용 이제 save() 메서드를 호출하고 파일 경로를 인수로 전달하여 모델 을 저장할 수 있다. 이렇게 하면, 모델 아키텍처 모델 무게 모델 옵티마이저 상태(중단한 부분에서 재개하기 위해) 얻을 수 있다. # saving and loading the .h5 model # save model model.save_weights('gfgModelWeights.h5') print('Model Saved!')..
Deep Learning : 에포크시마다 테스트를 하는, 벨리데이션 데이터를 처리하는 방법 중, validation_data 파라미터 사용법 Validation set의 목적 Validation set(검정 데이터)은 training set으로 만들어진 모델의 성능을 측정하기 위해 사용된다. 일반적으로 어떤 모델이 가장 데이터에 적합한지 찾아내기 위해서 다양한 파라미터와 모델을 사용해보게 되며, 그 중 validation set으로 가장 성능이 좋았던 모델을 선택한다. 이것에 대한 개념은 간단하게 소개하겠다. 예시를 가정하면, 전체 데이터의 갯수가 10000개라고 했을 때, Epoch : 전체 데이터 갯수 10000개를 모두 훈련시켰으면 Epoch = 1이 된다. Batch_size : 전체 데이터 10000개를 한 번에 훈련시키기에는 과부하가 걸릴 것을 감안해서 100개씩 끊어서 데이터를 입력시킨다고 가정하면 그 때 Batch size 값이..
Deep Learning : 분류의 문제에서 loss 셋팅하는 방법 # 중요!! 학습데이터의 로스는 의미가없다 벨류게이션의 로스가 더 중요하다. 사용 예 1. model = build_model() early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10) epoch_history = model.fit(X_train, y_train, epochs=100000, validation_split=0.2, callbacks= [early_stop]) 사용 예 2. model.compile('adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) 에러난 상황 이유 : 예측값은 레이블인코딩이 안되어있기 때문에 오류가 난다.
Deep Learning : 여러 클래스로 분류할때, 아웃풋노드에서 사용하는액티베이션함수 소프트맥스 소프트맥스 함수는 출력층에서 사용되는 함수이다. 이 외에도 항등 함수, 시그모이드 함수가 존재한다. 항등 함수의 경우 입력값이 그대로 출력되는 함수로 회귀 모델을 만들 때 사용한다. 소프트맥스 함수는 다중 클래스 분류 모델을 만들 때 사용한다. 결과를 확률로 해석할 수 있게 변환해주는 함수로 높은 확률을 가지는 class로 분류한다. 이는 결과값을 정규화시키는 것으로도 생각할 수 있다. 데이터의 실제값이 setosa라면, setosa의 원-핫 벡터는 [0 1 0]이다. 이 경우, 예측값과 실제값의 오차가 0이 되는 경우는 소프트맥스 함수의 결과가 [0 1 0]이 되는 것이다. 이 두 벡터 [0.26 0.70 0.04] [0 1 0] 의 오차를 계산하기 위해서 소프트맥스 회귀는 손실함수로 cross-ent..
Deep Learning : Flatten 라이브러리 사용하는 이유 model.add(tf.keras.layers.Flatten()) #Flatten은 데이터를 평평하게 일렬로 정렬한 형태의 데이터를 위한 가공이다. tf.keras.layers.Flatten은 입력의 형태를 1차원으로 변환한다. 입력의 형태가 (None, 28, 28)일 때, (None, 784)로 변환된다. 이미지의 가로 세로를 전부 일렬로 만드는 작업이 flatten 이다. 모델을 만들어 보자. model = tf.keras.models.Sequential() model.add(tf.keras.layers.Flatten()) #Flatten은 데이터를 평평하게 일렬로 정렬한 형태의 데이터를 위한 가공이다. model.add(tf.keras.layers.Dense(128,'relu')) 28 * 28 ..
Deep Learning : EarlyStopping 라이브러리 사용법 OverFitting 되는 모델의 경우, epoch이 커질 수록 Loss가 줄다가 다시 늘게 되는 아래와 같은 경우가 생긴다. 150번정도에 EarlyStopping이 되면 overfitting이 되지 않을 수 있는데 더 이상 개선의 여지가 없을 때 학습을 종료시키는 콜백함수이다 콜백함수란? 어떤 함수를 수행 시 그 함수에서 내가 지정한 함수를 호출하는 것. 여기서는 fit() 함수에서 EarlyStopping() 콜백함수가 학습 과정 중 매번 호출된다. from tensorflow.python.keras.callbacks import EarlyStopping early_stopping = EarlyStopping() hist = model.fit(x_train,y_train,epochs=1000,bat..
Deep Learning : validation data란 무엇이고, code에서 사용하는 방법 / 파라미터 validation_split validation set을 사용하는 이유는 간단합니다. 바로 "모델의 성능을 평가하기 위해서" 입니다. training을 한 후에 만들어진 모형이 잘 예측을 하는지 그 성능을 평가하기 위해서 사용합니다. training set의 일부를 모델의 성능을 평가하기 위해서 희생하는 것입니다. 하지만 이 희생을 감수하지 못할만큼 data set의 크기가 작다면 cross-validation이라는 방법을 쓰기도 합니다. cross-validation은 training set을 k-fold 방식을 통해 쪼개서 모든 데이터를 training과 validation 과정에 사용할 수 있게 합니다. 그러면 모델의 성능을 평가하면 뭐가 좋을까요? 첫 번째는 test accuracy를 가늠해볼 수 있다는 것입니다. machi..
Deep Learning : learning rate를 옵티마이저에서 셋팅하는 코드 / 실습문제 풀기 # 옵티마이저의 learning rate설정하는방법 model.compile(tf.keras.optimizers.RMSprop(learning_rate=0.001), loss= 'mse',metrics= ['mse','mae']) return model 실습 Auto MPG 데이터셋을 사용하여 1970년대 후반과 1980년대 초반의 자동차 연비를 예측하는 모델을 만듭니다. 이 정보에는 실린더 수, 배기량, 마력(horsepower), 공차 중량 같은 속성이 포함됩니다. X = df.iloc[:,1:-1] y = df['mpg'] from sklearn.preprocessing import OneHotEncoder from sklearn.compose import ColumnTransformer ct = ..
Deep Learning : 텐서플로우로, 분류의 문제 모델링 하는 방법 확률적 경사 하강법 - SGD(Stochastic Gradient Descent) 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)을 이용. 매개변수의 기울기를 구해, 기울어진 방향으로 매개변수 값을 갱신하는 일을 계속 반복한다. W 금융상품 갱신 여부 예측하는 ANN Churn_Modelling.csv 파일을 보면, 고객 정보와 해당 고객이 금융상품을 갱신했는지 안했는지의 여부에 대한 데이터가 있다. 이 데이터를 가지고 갱신여부를 예측하는 딥러닝을 구성하시오. # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns %matplotlib i..
Deep Learning : 텐서플로우에서 학습시 epoch와 batch_size에 대한설명 - epoch : 한번 학습을 완료한 상태 - batch : 나눠진 데이터 셋 우선, 아래의 세가지 모듈이 필요하다. import numpy as np import pandas as pd import os csv 파일이 들어있는 폴더로 경로를 정해준다. 예시 : os.chdir('/content/drive/MyDrive/Colab Notebooks/deeplearning') - epoch One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE (한 번의 epoch는 인공 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함...
Deep Learning with Neural Networks Gredient Descent NON Linear 논 리니어 리니어 : 선 분류가능한 그래프 Deep Learing 데이터를 전달하는 방식을 신경세포에서 유래됨 뉴런에서 비롯되었다. 전달시킬 때, 전달->전달로 처리됨 분류하고싶으면 로지스틱, KNN, SVM, D.T (다들 알고리즘으로 동작한다.) **** 외워야함 리그레션 : 예를들어 집 가격을 예측한다. 딥러닝,즉 뉴런은 뉴런 여러개 = 딥러닝 뉴런 : 가운데 딱잘라서 식이 두개다 왼쪽식은 입력x 화살표or선(숫자) ***인공뉴런 데이터는 숫자, 선(화살표)도 숫자이다. 입력받은 숫자들이 왼쪽에, 오른쪽엔 엑티베이션함수, 출력값이 나온다. 선은 랜덤 숫자이다. y값은 0과1사이로 나온다. 이런 동그란 뉴런이 여러개 있는 것이 딥러닝이다. 아래형태의 ..
Streamlit : 아마존 다운로드 및 설치 가이드 https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Instances:instanceState=running https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Instances:instanceState=running ap-northeast-2.console.aws.amazon.com 퍼블릭 IP주소를 꼭 기억해야한다. 아마존 aws를 사용한다. 기존 정보는 그대로 두고, 아키텍쳐에 64비트 확인한다. 인스턴스유형도 그대로 둔다. keypair 키페어(로그인) 아이디를 지정한다. puTTY Configuration을 실행시켜..
Streamlit : 소스코드 버전 관리를 위한, Git 과 Github.com 사용법 / Streamlit 설치방법 Github.com 가입 https://desktop.github.com/ GitHub Desktop Simple collaboration from your desktop desktop.github.com 깃허브 데스크탑으로 열기 로컬에 생성하기 git 설치 git-scm.com 에서 Download for Windows File 생성, add, commit, push 커밋 푸시 Git hub 로그인 성공! 주기적인 패치설정 최종확인