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

케라스22

전이 학습 (Transfer Learning) 전이 학습 (Transfer Learning) 전이 학습은 신경망을 처음부터 훈련하는 대신 미리 로드된 가중치 세트로 훈련을 시작한다. 일반적으로 미리 훈련된 신경망의 최상위 레이어를 제거하고 새로운 최상위 레이어로 다시 훈련한다. 이전 신경망의 레이어는 훈련으로 인해 가중치가 변경되지 않도록 잠긴다. 새로 추가된 레이어만 학습된다. 대규모 이미지 데이터 세트에 대한 신경망을 훈련하려면 많은 컴퓨팅 성능이 필요할 수 있다. Google, Facebook, Microsoft 및 기타 기술 기업들은 다양한 애플리케이션을 위한 고품질 신경망을 훈련하기 위해 GPU 어레이를 활용하고 있다. 이러한 가중치를 신경망으로 전송하면 상당한 노력과 계산 시간을 절약할 수 있다. 사전 학습된 모델이 구현하려는 애플리케이션.. 2024. 2. 13.
[Deep Learning] 1D CNN 1D CNN 1D CNN은 1차원 데이터를 처리하는 CNN의 한 종류이다. 컴퓨터 비전 작업에서 CNN에 대한 입력은 일반적으로 각 픽셀이 행렬의 값으로 표시되는 2차원 이미지이다. 이와 대조적으로 숫자 데이터는 일반적으로 1차원 값 시퀀스로 표시된다. 일반적으로 CNN은 이미지 처리에서 주로 쓰이며 2D convolution을 사용하지만, 수치나 텍스트 처리에서는 filter가 위아래 한 방향으로만 이동하는 1D Convolution을 사용한다. 1D CNN은 입력 데이터 위에 작은 창을 슬라이딩하고 창과 학습 가능한 필터 세트 사이의 내적을 계산하는 컨볼루션 작업을 입력 데이터에 적용한다. 이 작업의 결과는 피처 맵이며, 이는 비선형 활성화 함수와 풀링 레이어를 통해 전달되어 출력의 차원을 줄인다. .. 2023. 9. 27.
[Keras] ImageDataGenerator class weight ImageDataGenerator class weight 딥러닝시 이미지 데이터의 불균형 문제를 해결하기 위해 class에 따른 가중치를 다르게 부여할 수 있다. from sklearn.utils import compute_class_weight import numpy as np train_classes = train_generator.classes class_weights = compute_class_weight( class_weight = "balanced", classes = np.unique(train_classes), y = train_classes ) class_weights = dict(zip(np.unique(train_classes), class_weights)) model.fit_gen.. 2023. 9. 8.
ImageDataGenerator 훈련 및 검증 데이터 분할 ImageDataGenerator 훈련 및 검증 데이터 분할 ImageDataGenerator를 사용할 때 훈련 데이터를 훈련 및 검증으로 분할한다. Keras에는 기계 학습 프로젝트에서 모든 종류의 일반적인 작업을 수행하는 데 필요한 많은 필수 유틸리티 기능 및 클래스가 번들로 제공된다. 일반적으로 사용되는 클래스 중 하나는 ImageDataGenerator이다. 문서에 설명된 대로 실시간 데이터 증대를 통해 텐서 이미지 데이터 배치를 생성한다. 데이터는 일괄적으로 반복된다. 지금까지는 훈련 이미지 폴더와 검증 이미지 폴더를 별도로 유지해도 괜찮다. 예를 들어, flow_from_directory 함수와 함께 사용할 이미지에 대해 두 개의 별도 폴더 구조를 생성하여 훈련 및 검증 데이터 세트를 직접 구.. 2023. 9. 6.
[시각 지능] 합성곱 오토인코더 (Convolutional Autoencoder) 합성곱 오토인코더 (Convolutional Autoencoder) 합성곱 오토인코더 (Convolutional Autoencoder)는 오토인코더 (Autoencoder)의 일종으로, 이미지와 같은 고차원 데이터를 저차원으로 압축하고 복원하는 데 사용된다. 합성곱 오토인코더는 합성곱 계층 (convolutional layer)과 풀링 계층 (pooling layer)을 사용하여 입력 데이터의 공간적 정보를 보존하면서 압축한다. 이러한 합성곱 오토인코더는 이미지 처리 분야에서 많이 사용되며, 이미지 노이즈 제거, 이미지 생성 등에 활용된다. 라이브러리 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensor.. 2023. 5. 3.
[Keras] tflite 변환 tflite 변환 케라스 모델은 딥러닝 모델을 개발하기 위한 고수준 라이브러리인 케라스를 이용하여 만든 모델이다. tensorflow의 tf.keras 모듈을 통해 케라스 모델을 바로 만들거나 SavedModel, HDF5 포맷으로 저장된 모델을 케라스 모델로 불러와서 tensorflow lite 모델로 변환할 수 있다 h5 파일을 pb 파일로 변환 from tensorflow import keras model = keras.models.load_model('model.h5', compile = False) export_path = './pb' model.save(export_path, save_format = "tf") pb 파일을 tflite 파일로 변환 saved_model_dir = './pb' .. 2022. 11. 24.
[Keras] 배치 정규화 (Batch Normalization) 배치 정규화 (Batch Normalization) 배치 정규화 (batch normalization, BN)는 층으로 들어가는 입력값이 한쪽으로 쏠리거나 너무 퍼지거나 너무 좁아지지 않게 해주는 인공신경망 기법이다. 여러 입력값을 모은 배치에 대해, 각 층의 입력값의 평균과 표준편차를 다시 맞추어 주어, 입력값이 쏠리는 것을 막는다. BN은 주어진 데이터 세트의 평균 (shifting)과 분산 (scaling)을 특정 값으로 조정하는 것이다. 이것은 주어진 모델을 훈련하는 데 사용된 이전 입력 데이터에 따라 선택된다. 데이터 평균을 0, 표준편차를 1로 분포시킨다. 높은 학습율을 사용하여 빠른 속도로 학습하면서 overfitting을 줄이는 효과가 있다고 알려져 있다. tf.keras.layers.Ba.. 2022. 7. 31.
[Keras] Functional 모델 Functional model Keras에서 Functional API는 tf. keras보다 더 유연한 모델을 만드는 방법이다. 다중 출력 모델, 방향성 비순환 그래프 또는 공유 레이어가 있는 모델과 같은 복잡한 모델을 정의하는 방법이다. Functional API는 비선형 topology, 공유 계층, 심지어 다수의 입력 또는 출력을 가진 모델을 처리할 수 있다. from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import netron from tensorflow.keras.layers import Input from tensorflow.keras import Model _input = In.. 2022. 7. 30.
[AI] Basic Architecture TensorFlow TensorFlow는 텐서 (Tensor)를 흘려 보내면서 (Flow) 딥러닝 알고리즘을 수행하는 프레임워크이다. ① 사용자 친화적 (Keras as High Level API) ② 코드 가독성과 직관성을 높이는 Eager Execution 적용 Keras Keras 창시자 프랑소와 숄레 (François Chollet)가 TF 2.0 개발에 참여하였고, TF 2.0 에서 공식적이고 유일한 High-Level API로써 Keras가 선정되었다. 또한, 프랑소와 숄레는 앞으로 native Keras 보다는 tf.keras를 사용할 것을 권장하고 있다. 사용자 친근성 (User Friendliness) : 직관적인 API를 이용하면 ANN, CNN, RNN 또는 이를 조합한 딥러닝 모델을.. 2022. 7. 17.
[Deep Learning] 딥러닝 프레임워크 비교 딥러닝 프레임워크 비교 장점 단점 텐서플로우 (TensorFlow) 텐서보드 (TensorBoard)를 통해서 파라미터 변화 양상이나 DNN의 구조를 알 수 있다. 메모리를 효율적으로 사용하지 못한다. 케라스 (Keras) 배우기 쉽고 모델을 구축하기 쉽다. 오류가 발생할 경우 케라스 자체의 문제인지 백엔드 (back-end)의 문제인지 알 수 없다. 토치 (Torch) 간단하고 직관적인 학습과 속도 대비 빠른 최적화가 가능하다. 텐서플로우에 비해 사용자층이 얕고, 예제 및 자료를 구하기 힘들다. 텐서플로우 (TensorFlow) 텐서플로는 구글이 개발한 오픈소스 소프트웨어 라이브러리이며 머신러닝과 딥러닝을 쉽게 사용할 수 있도록 다양한 기능을 제공한다. 텐서플로는 데이터 플로우 그래프 (Data Flo.. 2022. 5. 19.
728x90
반응형
LIST