Keras 모델을 저장한 .h5 파일을 Tensorflow Lite용 모델 .tflite로 변환하는 코드입니다. 2022. 10. 23 최초작성 import tensorflow as tf import efficientnet.keras as efn import sys if len(sys.argv) != 2: print(f"Usage : {sys.argv[0]} h5_file") exit(0) file_name = sys.argv[1] model = tf.keras.models.load_model(file_name) converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() open( file_na..
multiclass classification에서 클래스별로 ROC curve를 그리는 예제 코드입니다. 2022. 3. 14 최초작성 # https://stackoverflow.com/questions/45332410/roc-for-multiclass-classification # https://moons08.github.io/datascience/classification_score_roc_auc/ from sklearn.datasets import load_iris from sklearn.metrics import accuracy_score, auc, roc_auc_score, roc_curve from sklearn.preprocessing import label_binarize from skle..
다중클래스의 혼동행렬(confusion matrix)을 구하여 클래스별 민감도(sensitivity)와 특이도(specificity)를 구하는 예제코드입니다. 2022. 03. 12 최초작성 from sklearn.metrics import multilabel_confusion_matrix y_true = [0, 1, 2, 0, 1] y_pred = [0, 1, 2, 2, 0] ret = multilabel_confusion_matrix(y_true, y_pred, labels=[0, 1, 2]) tn0, fp0, fn0, tp0 = ret[0].ravel() tn1, fp1, fn1, tp1 = ret[1].ravel() tn2, fp2, fn2, tp2 = ret[2].ravel() sensitivi..
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 dataset을 크기 10인 batch로 나눈 다음 각 batch에 대해 크기 3 window를 적용한 예제입니다. 2021. 12. 11 최초작성 import tensorflow as tf import numpy as np ds= tf.data.Dataset.range(120) size = len(ds) print('size', size) print('\n\n') num_of_samples = len(ds) window_size = 3 stride_size = 1 for i,sample in enumerate(ds.batch(10)): print(sample.numpy()) print() dataset = tf.data.Dataset.from_tensor_slices(sample) ..
Tensorflow Dataset의 일부만 사용하는 예제입니다. 2021. 12. 6 - 최초작성 2021. 12. 8 - 최종작성 import tensorflow_datasets as tfds # tensorflow dataset 'minst'의 train과 test를 각각 전체를 사용합니다. ds = tfds.load('mnist', split=['train', 'test']) print(len(ds[0]), len(ds[1])) # tensorflow dataset 'minst'의 train과 test를 각각 10%씩 사용합니다. ds = tfds.load('mnist', split=['train[:10%]', 'test[:10%]']) print(len(ds[0]), len(ds[1])) # te..
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..
모델에 데이터를 공급하는 방식 중 하나인 tf.data.Dataset.from_generator를 살펴봅니다. 데이터가 너무 커서 메모리에 모두 로드할 수 없는 경우 데이터를 한번에 모두 읽어오는 대신에 디스크에서 데이터를 배치(batch) 단위로 로드하도록 할 수 있습니다. 2021. 11. 19 최초작성 tf.data.Dataset.from_generator 우선 모델이 필요로 하는 데이터를 생성하는 generator 함수가 필요합니다. 이 함수는 return 문 대신에 yield 문을 사용합니다. 여기에서 데이터셋은 28 x 28 크기의 이미지와 10개의 클래스 중 하나임을 나타내는 정수 쌍으로 구성된 1000개의 데이터라고 가정합니다. generator 함수에서 다음처럼 가상의 데이터를 생성하여 ..
텐서플로우 콜백함수 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..