Keras Tuner를 사용하여 Keras 모델의 레이어, 학습률, 배치 크기 등에 대한 최적의 하이퍼파라미터를 찾는 예제 코드입니다. 2022. 02. 20 최초작성 아래 링크들을 참고하여 Red Wine Quality 데이터셋(https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009)을 위해 작성한 Keras classification 코드를 최적하는 코드를 작성해보았습니다. Model을 구성하는 Dense 레이어의 units, Dropou의 rate, 학습률, 배치 크기 등의 하이퍼파라미터에 대한 최적값을 찾게됩니다. https://www.tensorflow.org/tutorials/keras/keras_tuner?hl=ko https://w..
메모리에 한번에 올리기 힘든 데이터셋에 표준화(standardization)를 적용하기 위해 평균 및 표준 편차를 계산하기 위해 사용한 방법입니다. 2021. 12. 12 최초작성 1. JDK가 필요합니다. 안드로이드 스튜디오를 사용중이라면 이미 OpenJDK가 설치되어 있으므로 바로 4번을 확인해보세요. 아래 링크에서 11 GA 윈도우 버전을 다운로드합니다. https://jdk.java.net/archive/ 2. 압축을 풀은 후, jdk-11 폴더를 C:\에 복사합니다. 3. 윈도우 키 + R을 누른 후, sysdm.cpl를 실행하여 시스템 환경 변수 path에 아래 경로를 추가합니다. C:\jdk-11\bin 4. 명령 프롬프트에서 java 실행 가능 여부를 확인합니다. C:\Users\webna..
Tensorflow 학습 코드를 두개 동시에 실행하는 경우 model.fit에서 다음과 같은 에러가 나서 나중에 실행한 코드는 중단됩니다. tensorflow.python.framework.errors_impl.InternalError: Attempting to perform BLAS operation using StreamExecutor without BLAS support 2021. 12. 1 최초작성 다음 링크에서 가져온 다음 코드를 추가하면 Tensorflow 학습 코드 두개를 동시에 실행해도 에러가 나지 않습니다. 하지만 GPU 메모리 크기에 따라 실행에 문제가 생길 수 있습니다. https://github.com/tensorflow/tensorflow/issues/11812 import ten..
텐서플로우 콜백함수 ModelCheckpoint, ReduceLROnPlateau, EarlyStopping를 다루고 있습니다. 2021. 11. 17 최초작성 ModelCheckpoint 모델 또는 가중치를 저장할 때 사용되는 콜백함수입니다. www.tensorflow.org/api_docs/python/tf/keras/callbacks/ModelCheckpoint 인자 설명 filepath 모델 파일을 저장할 경로를 입력합니다. 충돌이 나지 않도록 하기 위해 다른 콜백 함수에서 여기에서 지정한 경로를 사용하면 안됩니다. monitor 콜백함수에서 모델을 저장할때 기준이 되는 값을 지정합니다. loss, val_loss, accuracy, val_accuracy등을 지정할 수 있습니다. 보통 Model..
구글에서 검색해봐도 해결방법이 보이지 않았던 에러입니다. 원인이 여러가지 일 수 있겠지만 Keras의 LSTM 레이어에 activation='relu'를 추가해놓았다면 제거해주면 해결됩니다. WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.
Keras에서 사용하는 Data Augmentation을 이미지로 출력하여 확인해봅니다. 2021. 06. 29 최초작성 rotation_range=60 0~ 60도 사이의 임의의 각도로 이미지를 회전시킵니다. fill_mode를 nearest로 선택했기 때문에 가장자리에 있는 픽셀로 채우게 됩니다. width_shift_range=0.4 이미지 너비의 40% 이내로 이미지를 좌우로 이동시킵니다. height_shift_range=0.4 이미지 높이의 40% 이내로 이미지를 위아래로 이동시킵니다. shear_range=60 반시계방향으로 60도 범위내로 이미지를 찌끄러트립니다. zoom_range=0.4 1-0.4배에서 1+0.4배 사이로 이미지 크기를 축소/확대합니다. horizontal_flip=Tr..
손글씨 숫자 분류를 하는 신경망을 만드는 케라스 예제를 다루고 있습니다.
Tensorflow와 OpenCV를 사용하여 웹캠에 비춘 손글씨 숫자를 인식시켜보았습니다. 최초 작성 2019. 10. 1 관련 최근 포스트 [Machine Learning & Deep Learning/Tensorflow 강좌] - Keras와 OpenCV를 사용하여 손글씨 숫자 인식하기 CNN을 사용하여 인식 정확도가 좋아졌습니다. 01.py 손글씨 숫자를 인식을 위해 뉴럴 네트워크를 학습시키는 코드입니다. 실행결과 가중치를 파일로 저장합니다. import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0,..
본 포스팅에서는 케라스(tf.keras)를 사용하여 텍스트로 작성된 리뷰를 긍정적 또는 부정적 영화 리뷰로 분류합니다. 클래스가 두 개인 바이너리 분류(binary classification) 입니다. 본 포스팅은 다음 텐서플로우 문서를 참고하여 작성하였습니다. Text classification with movie reviewshttps://www.tensorflow.org/tutorials/keras/basic_text_classification 텐서플로우 1.12를 기준으로 설명합니다. import tensorflow as tf print(tf.__version__) 1.12.0 최초작성 2019. 1. 17 IMDB 데이터셋 다운로드Internet Movie Database(https://www...
MNIST에 포함되어 있는 손글씨 이미지와 이미지가 의미한 숫자를 기록해 놓은 라벨을 출력해보는 방법을 설명합니다. 예전에 보았던 텐서플로우 초보자 가이드(?)에선 28 X 28 사이즈의 이미지를 크기 784(=28x28)인 일차원 배열로 변환한 MNIST 데이터를 가져오는 것으로 시작했었습니다. 지금은 keras 모듈을 사용하여 가져올 수 있어서 MNIST 데이터의 구조가 좀 달라진듯합니다. 문서 상으로 언급되는 MNIST 데이터 구조를 봐서는 이해가 잘안되서.. 위에서 언급한 두 가지 방법으로 MNIST 데이터를 가져와서 화면에 출력해보았습니다. 우선 예전에 사용했던 방법으로 tensorflow.examples.tutorials.mnist를 사용하여 작성된 코드입니다. import numpy as n..