728x90
- Import & 환경설정
import tensorflow as tf
from tensorflow.keras import utils
import gc
# 연산방식 설정
# GPU 또는 CPU multi training 가능하게 설정
from tensorflow.compat.v1 import ConfigProto
# Configproto의 session을 default session으로 설정
from tensorflow.compat.vq impofg InteractiveSession
config = ConfigProto()
# gpu memory 0.1씩 할당
config.gpu_option.per_process_gpu_memory_fraction = 0.1
session = InteractiveSession(config = config)
- Model 생성
dnn 가장 기본구조 틀만 넣었습니다. 보통 module화 하여 사용하기 때문에 사용자 함수로 input값 설정 후 여러가지 형태로 실험해보고, 가장성능이 좋은 상태로 만들기 때문에 이 구조를 기본으로 변형할 예정입니다.
# output_bias 값으로 초기값 생성
if output_bias is not None:
output_bias = tf.keras.initializers.Constant(output_bias)
inputs = tf.keras.Input(shape = input_dim,))
# input 진행
x = tf.keras.layers.Dense(32)(inputs)
# batch 정규화
x = tf.keras.layers.BatchNormalization()(x)
# activation function
x = tf.nn.relu(x)
# layer 반복 쌓기
# layer 반복은 여러번 실험으로 다양한 시도를 해봐야 함.
x = tf.keras.layers.Dense(16)
# batch 정규화
x = tf.keras.layers.BatchNormalization()(x)
# Dropout 설정
x = tf.nn.dropout(x, rate = 0.5)
# 활성화 함수
x = tf.nn.relu(x)
output = tf.keras.layers.Dense(label_num, activation = 'softmax', bias_initializer = output_bias)(x)
model = tf.keras.Model(inputs = inputs, outputs = output)
# optimizer 설정
optim = tf.keras.optimizers.Adam(learning_rate = 0.01)
# model compile
model.compile(optimizer = optim, lass = tf.keras.CategoricalCrossentropy(), mertics = 'accuracy')
# model 요약
model.summary
728x90
'Deep Learning > tensorflow' 카테고리의 다른 글
[tensorflow] model save, load (0) | 2022.11.29 |
---|---|
[Deep Learning] learning rate decay, learning rate scheduler (0) | 2022.11.16 |