반응형

Python/Tensorflow 10

[Tensorflow] 파이썬 keras 특정 layer freeze 방법

텐서플로우 케라스 layer weight freezing 파이썬의 텐서플로우 케라스에서 모델 내의 특정 layer의 가중치를 학습 시에 freeze하는 방법에 대하여 살펴보겠습니다. 먼저, 다음과 같이 Dense layer 3개로 구성된 간단한 모델 구조를 가정해보겠습니다. (각 layer의 이름은 fc1, fc2, fc3로 설정하였습니다.) from keras.models import Sequential from keras.layers import Dense model = Sequential() layer1 = Dense(3, activation='relu', name = 'fc1', input_shape = (4,)) layer2 = Dense(2, activation='relu', name = 'f..

Python/Tensorflow 2022.12.02

[Tensorflow] 텐서플로우 모델 구조 시각화 방법 : tf.keras.utils.plot_model

Visualize Tensorflow/Keras Model Structures 텐서플로우에서 구현된 모델의 구조를 plot_model 메소드를 통하여 쉽게 시각화할 수 있는 방법에 대하여 살펴보도록 하겠습니다. 먼저, 예시로 아래와 같이 간단한 CNN 구조의 모델이 있다고 가정해보도록 하겠습니다. from tensorflow.keras import models, layers # CNN 구조 모델 예시 model = models.Sequential() model.add(layers.Conv2D(5, 3, strides = 1, padding = 'same', activation = 'relu', input_shape = (28, 28, 1))) model.add(layers.MaxPooling2D(pool..

Python/Tensorflow 2022.11.12

[Tensorflow] TFDV 활용 파이썬 데이터 EDA 실습 예제

Python EDA by tensorflow_data_validation 오늘은 파이썬 텐서플로우에서 제공하는 TFDV 모듈을 활용하여 데이터에 대한 EDA 과정을 유용하게 진행하는 방법에 대하여 간략하게 정리해보겠습니다. 데이터셋 로드 이번 실습에서는 예시로 타이타닉 데이터셋에 대하여 EDA를 진행해보겠습니다. 아래의 코드로 해당 데이터프레임을 바로 불러올 수 있습니다. import seaborn as sns import pandas as pd df = sns.load_dataset('titanic') df TFDV 모듈 설치 이번 글에서는 tensorflow_data_validation(TFDV)를 활용하여 EDA를 진행하는 방법을 살펴볼 것이기에 해당 모듈이 설치되지 않았다면 설치가 필요합니다. 아..

Python/Tensorflow 2022.08.30

[Tensorflow] 파이썬 keras RNN/LSTM/GRU 구현 예제(IMDB 감성 분석)

텐서플로우 케라스 SimpleRNN, LSTM, GRU layer 쌓기 예시 파이썬의 텐서플로우 2.x 버전에서 keras 모듈을 활용하여 RNN 시리즈 모델들의 layer를 양방향, 다중층 등으로 쌓는 방법들을 다루어보도록 하겠습니다. (데이터셋은 tensorflow에서 제공하는 IMDB 감정 분류 데이터셋을 활용하였습니다.) 데이터셋 로드, 전처리 tensorflow의 데이터셋 모듈에서 제공하는 IMDB 데이터셋을 불러오고 RNN 모델 적용을 위한 간단한 전처리를 진행해보겠습니다. 해당 과정의 코드는 아래 링크의 텐서플로우 공식 사이트 글을 참조하였습니다. RNN을 사용한 텍스트 분류 | TensorFlow Core Google I/O는 끝입니다! TensorFlow 세션 확인하기 세션 보기 RNN을..

Python/Tensorflow 2022.06.17

[Tensorflow] 파이썬 keras CNN 구현 간단 예제(MNIST 이미지 분류)

텐서플로우 케라스로 CNN 모델 코드 구현하기 파이썬에서 Tensorflow 2.x 버전의 케라스 모듈을 활용하여 CNN 모델 구조를 구현하여 MNIST 이미지 분류를 진행하는 예제를 다루어보겠습니다. 데이터셋 로드 먼저, keras에서 자체적으로 제공하는 MNIST 데이터셋을 가져오고, shape를 확인해보겠습니다. import tensorflow as tf mnist = tf.keras.datasets.mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() # 0 ~ 255 사이 정수 -> 0 ~ 1 사이 실수로 변환 X_train, X_test = X_train / 255.0, X_test / 255.0 print("X_train shape ..

Python/Tensorflow 2022.06.17

[Tensorflow] 학습 과정 중 validation loss, accuracy 출력 방법

텐서플로우 epoch마다 validation loss, 정확도 표시하기 텐서플로우에서 모델 학습 과정 중 학습 데이터의 loss 및 정확도 뿐 아니라, 검증(테스트) 데이터에 대한 중간 결과를 각 epoch마다 확인할 수 있는 방법에 대해서 간략하게 살펴보도록 하겠습니다. 예를 들어, 분류 관련 task에서 x_train, y_train이 학습 데이터 셋과 라벨을 구성하고 있고, x_valid, y_valid가 검증 데이터 셋과 라벨을 담고 있는 변수라고 가정해보겠습니다. 참고 : x_test, y_test같은 테스트 데이터와 라벨을 validation set 대신 사용도 가능합니다. Train loss, accuracy만 표시한 경우 모델 학습 과정의 fit 단계에서 validation data를 설정..

Python/Tensorflow 2022.02.19

[Tensorflow] 과적합 방지 조기 종료 설정 : EarlyStopping

텐서플로우 콜백 함수 EarlyStopping 사용 방법, 원리 안녕하세요. 이번 시간에는 텐서플로우에서 학습 조기 종료 조건을 설정할 수 있는 callback 함수인 EarlyStopping의 사용 예시와 과적합 방지 원리에 대하여 간단하게 살펴보도록 하겠습니다. EarlyStopping 적용 방법 텐서플로우 내에서 EarlyStopping을 모델 학습 과정에 적용시키기 위해서는 우선, 조기 종료 callback 함수의 판정 기준을 아래 코드 처럼 선언해줍시다. callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=3) 여기서, monitor는 판정 기준의 지표를 결정하는 것이며, 과적합 방지가 목적이라면 'val_loss'를..

Python/Tensorflow 2022.02.18

[Tensorflow] 텐서플로우 GPU 확인, 특정 GPU 사용 방법

텐서플로우 GPU 사용 가능 여부 체크, 원하는 GPU 지정 하기 안녕하세요. 이번 글에서는 tensorflow 2 버전에서 gpu가 연결되었는지를 점검하고, 원하는 gpu를 사용할 수 있도록 하는 방법에 대해서 간단히 설명해보도록 하겠습니다. Tensorflow gpu 연결 확인 방법 아래의 코드를 작성해서 손쉽게 gpu 사용 가능 여부를 확인할 수 있습니다. from tensorflow.python.client import device_lib device_lib.list_local_devices() 만일, CPU만 연결된 경우는 아래와 같이 메시지가 출력됩니다. 반면, GPU가 1개 이상 연결된 경우는 아래쪽에 GPU:0, GPU:1, ... 식으로 번호가 할당된 디바이스가 추가로 탐색됩니다. 텐서플..

Python/Tensorflow 2022.02.07

[Tensorflow] 텐서플로우 버전 확인, 업그레이드, 다운그레이드 방법

텐서플로우 버전(version) 확인 및 변경 텐서플로우(Tensorflow)를 사용하시다 보면 버전 호환성 문제로 버전을 업그레이드 혹은 다운그레이드해야 하는 경우가 가끔씩 발생합니다. 이번 시간에는 해당 모듈의 버전(version)을 간단하게 확인하는 방법과 업그레이드, 다운그레이드하는 변경 방법에 대해서 살펴보도록 하겠습니다. 텐서플로우 버전 확인(Tensorflow version check) Tensorflow 모듈의 버전 확인 방법은 모듈을 import한 뒤, __version__ 속성 값을 조회하여 쉽게 확인이 가능합니다. import tensorflow as tf print(tf.__version__) # 2.5.0 저는 2.5.0 버전의 텐서플로우를 사용 중이었습니다. version 확인 ..

Python/Tensorflow 2022.01.21

[Tensorflow] 텐서플로우 원핫 인코딩 함수 : tf.one_hot()

텐서플로우 원핫 벡터 생성 함수 tf.one_hot() 사용법 안녕하세요. 이번 글에서는 파이썬 tensorflow에서 원핫 인코딩을 바로 진행할 수 있게 해주는 tf.one_hot 함수의 사용법에 대해서 간단히 다루어보도록 하겠습니다. 이 글은 텐서플로우 공식 문서의 tf.one_hot 함수 설명 글을 바탕으로 작성되었습니다. 원핫 인코딩(One-hot Encoding)이란? 원핫 인코딩은 딥러닝 과정에서 loss 함수 계산을 용이하게 해주어 학습의 효율을 증가시킬 수 있고, 범주형 변수를 머신러닝에 사용가능하게 만들어주는 방법입니다. 10장의 강아지, 고양이, 여우, 호랑이 사진들의 목록이 있다고 할 때, 이를 단일 벡터로 만든 경우와, 원핫 인코딩으로 표현한 결과는 아래 그림처럼 요약이 가능합니다...

Python/Tensorflow 2022.01.14
반응형