본문 바로가기

전체 글261

딥러닝 텐서플로우 ANN 손글씨 숫자 예측, y_test가 카테고리컬 데이터라면, 원핫인코딩으로 나온 결과를 argmax를 이용하여 복원 MNIST 손글씨 숫자 예측¶ In [58]: 다음과 같은 ANN 을 만든다¶이미지파일(28X28픽셀)이 입력으로 들어오면, 아웃풋으로는 0~9 까지의 10개 숫자로 분류하는 인공지능! 사진은 2차원 데이터이므로, 우리는 ANN의 입력에, 사진의 픽셀값을 flattening 하여 입력을 줄 것이다. 따라서 입력레이어는 784개, 히든1은 512, 히든2는 512, 아웃풋은 10개의 신경망 구축. In [58]: In [58]: In [59]: import numpy as np import matplotlib.pyplot as plt import pandas as pd from PIL import Image %matplotlib inline In [60]: import tensorflow as tf fro.. 2022. 12. 29.
딥러닝 텐서플로우 모델을 저장하는방법, 모델중 네트워크와 웨이트를 따로 저장하고 불러오는 방법 Saving the architecture # ANN == 아티피셜 뉴럴 네트워크 # 전체 네트워크(build_model())와 웨이트(선==w==가중치)를 통으로 저장하고 불러오기 # 폴더구조로 저장. model.save('fashion_mnist_model') # 저장된 인공지능을 불러오는 코드. model2 = tf.keras.models.load_model('fashion_mnist_model') model2.evaluate(X_test, y_test) # 모델을, 파일 하나로 저장하는 방법 model.save('fashion_mnist_model.h5') # 파일을 불러오기 model3 = tf.keras.models.load_model('fashion_mnist_model.h5') model3.. 2022. 12. 29.
딥러닝 텐서플로우 이미지 10개로 분류 Saving architecture & Saving network weights, Dropout, validation_data, Flatten안쓰기 Image source: https://www.kaggle.com/ Stage 1: Installing dependencies¶ In [1]: # 코랩은 이미 깔려잇어 pass In [1]: Stage 2: Import dependencies for the project¶ In [2]: import numpy as np import tensorflow as tf from tensorflow.keras.datasets import fashion_mnist Stage 3: Dataset preprocessing¶ Loading the dataset¶ In [3]: (X_train,y_train),(X_test,y_test)= fashion_mnist.load_data() # 넘파이로 받아옴 // (X_tra.. 2022. 12. 29.
딥러닝 텐서플로우 Flatten()을 사용하지않는, validation_data 파라미터 split 과의 차이, Dropout이란 1. Flatten() 라이브러리 없이 이미지 평탄화 하는방법 예시) X_train.shape # 3차원 (60000, 28, 28) X_train = X_train.reshape(60000, 784) # 평탄화 // 2차원 마찬가지로 X_test도 reshape을 이용한다 . 모델링 예시) def build_model() : model = Sequential() model.add( Dense(128, 'relu', input_shape=(784, ) ) ) model.add( Dropout(0.2) ) # 학습할때 20프로의 선을 없애라는뜻 (이부분만) model.add( Dense(64, 'relu')) model.add( Dense(10, 'softmax')) model.compile('adam',.. 2022. 12. 29.
딥러닝 텐서플로우 softmax, overfitting, callbacks 지난 10개분류문제 예시글에 이은 추가내용 1. softmax로 나온결과를, 레이블 인코딩으로 바꾸는 방법 softmax는 텐서플로우의 모델을 만들때, 마지막 레이어, 즉 아웃풋 레이어의 수가 3개 이상일때 사용한다 만약 아웃풋의 노드가 10개라고 한다면 10개를 비교해서 최종값을 결정해야 하는데 소프트맥스는 거기에 최적화 되있기 때문이다. 소프트 맥스는 총합이 1이되는 즉 0.1, 0.2, 0.7... 형태로 나온다 그럼 여기서 가장큰 값 0.7이 최종값이 되는것이다 . 2. 에포크, 학습데이터/밸리데이션데이터와 오버피팅 에포크는 학습을 시킬 횟수를 의미한다 . 그렇다고 에포크가 너무 많아도 문제가 될수있다. 에포크를 많이하면 이미 알고있는 문제는 잘 맞추지만 새로운 데이터가 들어오면 오히려 못맞추게 되는 문제가 발생한다. 그것이 오버피팅이다... 2022. 12. 29.
딥러닝 텐서플로우 10개로 분류된 패션이미지 분류 예시, softmax, np.argmax(axis=1), overfitting, callbacks A Computer Vision Example¶10개로 분류된 패션 이미지를 분류하는 딥러닝 Start Coding¶ In [1]: # 버전확인 // 버전이 자주바뀌어 함수문제가 일어날수도 있기때무네 import tensorflow as tf print(tf.__version__) 2.9.2 Fashion MNIST 데이터는 tf.keras datasets API에 들어있다. In [2]: mnist = tf.keras.datasets.fashion_mnist # 텐서플로우 기본제공 데이터 In [3]: (X_train, y_train),(X_test, y_test) = mnist.load_data() # 트레인먼저 가져오고 테스트를 가져온다 . # 원래는 storage서버에서 jpg,png등으로 가져온.. 2022. 12. 29.
딥러닝에서 leaning rate, validation, EarlyStopping 을 사용하는 이유에 대해 지난 내용에 대한 추가설명 leaning rate 을 설정 하는 이유 leaning rate이 크게되면 보폭이 커져서 오차의 최소점을 넘어가는 오류를 범하게되고 (마지막차트) leaning rate이 작으면 오래걸리는 문제가 발생(시스템자원낭비) 하기때문에 (첫번째차트) 차트 중앙과 같이 적절한 leaning rate 을 설정 하는게 중요하다. validation(밸리데이션) 이란 무엇인가( 파라미터 validation_split=0.2 ) Epoch가 한번 끝날때 마다, 학습에 사용하지 않은 데이터로 시험을 보는 것을 말한다. 그럼 학습에 사용하지 않은 데이터는 어디서 얻을수 있느냐, 기존에 있던 X_trian, y_train 에서 validation_split=0.2 , 즉 학습할 데이터를 20퍼로 다시 나눠서 사용하는 방법이.. 2022. 12. 28.
딥러닝 텐서플로우 leaning rate를 옵티마이저에서 셋팅, 밸리데이션 데이터란 무엇이고 사용법,EarlyStopping 라이브러리 사용법 Auto MPG 데이터셋을 사용하여 1970년대 후반과 1980년대 초반의 자동차 연비를 예측하는 모델을 만듭니다. 이 정보에는 실린더 수, 배기량, 마력(horsepower), 공차 중량 같은 속성이 포함됩니다.¶ In [1]: import pandas as pd import numpy as np import matplotlib.pyplot as plt In [ ]: # 구글 드라이브 마운트 In [ ]: In [2]: from google.colab import drive drive.mount('/content/drive') Mounted at /content/drive In [ ]: # Working Directory 설정 In [3]: import os In [4]: os.chdir.. 2022. 12. 28.
딥러닝 regression 문제, epoch_history, loss(경사)를 눈으로 확인 (오차가 더 떨어질지 보는것) In [ ]: # 50 Startups csv 파일을 가지고, 딥러닝 이용해서 학습하고, 평가까지 해보세요. In [1]: import numpy as np import pandas as pd In [2]: import os In [ ]: In [3]: from google.colab import drive drive.mount('/content/drive') Mounted at /content/drive In [4]: pwd Out[4]: '/content' In [5]: os.chdir('/content/drive/MyDrive/Colab Notebooks/ml_plus') In [7]: pwd Out[7]: '/content/drive/MyDrive.. 2022. 12. 28.
딥러닝 텐서플로우 리그레션(regression) 문제 모델링 하는 방법 자동차 구매 가격 예측¶ PROBLEM STATEMENT¶ 다음과 같은 컬럼을 가지고 있는 데이터셋을 읽어서, 어떠한 고객이 있을때, 그 고객이 얼마정도의 차를 구매할 수 있을지를 예측하여, 그 사람에게 맞는 자동차를 보여주려 한다. Customer Name Customer e-mail Country Gender Age Annual Salary Credit Card Debt Net Worth (순자산) 예측하고자 하는 값 : Car Purchase Amount STEP #0: 라이브러리 임포트 및 코랩 환경 설정¶구글 드라이브 파일 읽기 참고 In [48]: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seab.. 2022. 12. 28.
딥러닝 텐서플로우 분류의문제 GridSearch (저번편에 빈공간에 이어서..) 결론 : 그리드 서치란 하이퍼파라미터의 범위를 설정해두면 최적의 모델을 알아서 찾아서 반환해주는 그런것이다. 용어 정리 epoch 한 번의 epoch는 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함. 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태 batch_size 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한꺼번에 집어넣을 수는 없습니다. 그래서 데이터를 나누어서 주게 되는데 이때 몇 번 나누어서 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고 합니다. 출처: https://www.slideshare.net/w0ong/ss-82372826 .. 2022. 12. 27.
딥러닝 ANN개념 정리 요약 https://vision-ai.tistory.com/entry/%EC%98%B5%ED%8B%B0%EB%A7%88%EC%9D%B4%EC%A0%80-Optimizer-%EC%A2%85%EB%A5%98 2022. 12. 27.