728x90
반응형
SMALL
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를 사용할 것을 권장하고 있다.
|
Model / Layer
케라스의 모델 (model)은 신경망 자체이며, 모든 모델의 기본 단위는 층 (layer)으로 나타낸다.
Keras 모델은 다양한 층 (layer)으로 이루어지는데, 이러한 층을 구성하는 방식에는 크게 Sequential API, Functional API, Subclassing API 등으로 정의할 수 있다. 초급 개발자 또는 간단한 모델은 일반적으로 Sequential API , 전문가 또는 복잡한 모델은 Functional API 기반의 모델이 주로 사용된다.
Keras Sequential Model
모델 구축 | model = Sequential() model.add(Flatten(input_shape=(1,)) model.add(Dense(2, activation=‘sigmoid’) model.add(Dense(1, activation=‘sigmoid’) model.add(Dense(2, activation=‘sigmoid’, input_shape=(1,)) |
컴파일 | 손실함수 종류는 정답이 실수 ‘mse’, 정답이 0 또는 1 인 이항분류 ‘binary_crossentropy’ 다중 분류시 one-hot encoding한 후에 넣어주는 경우 ‘categorical_crossentropy’ 다중 분류시 one-hot encoding하지 않고 정수로 넣어주는 경우 ‘sparse_ categorical_crossentropy’ |
학습 | model.fit(x_train, t_train, epochs=10, batch_size=100, verbose=0, validation_split=0.2) |
평가 / 예측 / 저장 / 로드 | model.evaluate(x_test, t_test) model.predict(x_input_data) model.save(“model_name.h5”) model = tensorflow.keras.models.load_model(“model_name.h5”) |
Keras Functional Model
모델 구축 | in_ = Input(shape=(1,) x = Dense(2, activation=‘sigmoid’)(in_) out_ = Dense(1, activation=‘sigmoid’)(x) model = Model(inputs=in_, outputs=out_) |
컴파일 | 손실함수 종류는 정답이 실수 ‘mse’, 정답이 0 또는 1 인 이항분류 ‘binary_crossentropy’ 다중 분류시 one-hot encoding한 후에 넣어주는 경우 ‘categorical_crossentropy’ 다중 분류시 one-hot encoding하지 않고 정수로 넣어주는 경우 ‘sparse_ categorical_crossentropy’ |
학습 | model.fit(x_train, t_train, epochs=10, batch_size=100, verbose=0, validation_split=0.2) |
평가 / 예측 / 저장 / 로드 | model.evaluate(x_test, t_test) model.predict(x_input_data) model.save(“model_name.h5”) model = tensorflow.keras.models.load_model(“model_name.h5”) |
import tensorflow as tf
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Flatten, Dense, Input
from tensorflow.keras.optimizers import SGD
import numpy as np
x_data = np.array([1,2,3,4,5,6])
t_data = np.array([3,4,5,6,7,8])
input_ = Input(shape=(1,))
output_ = Dense(1, activation='linear')(input_)
model = Model(inputs=input_, outputs=output_)
model.compile(optimizer=SGD(), loss='mse')
model.summary()
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) [(None, 1)] 0
dense_1 (Dense) (None, 1) 2
=================================================================
Total params: 2
Trainable params: 2
Non-trainable params: 0
_________________________________________________________________
test_input_data = np.array([-3.1, 3.0, 3.5, 15.0, 20.1])
label_data = test_input_data + 2.0
result = model.predict(test_input_data)
print(result)
print(label_data.reshape(5,1))
[[ 3.5924914]
[ -3.4766045]
[ -4.056039 ]
[-17.383022 ]
[-23.293251 ]]
[[-1.1]
[ 5. ]
[ 5.5]
[17. ]
[22.1]]
728x90
반응형
LIST
'AI-driven Methodology > Artificial Intelligence' 카테고리의 다른 글
[AI] 분류 (Classification) (0) | 2022.07.23 |
---|---|
[AI] 다변수 선형 회귀 (0) | 2022.07.17 |
[AI] Feed Forward ∙ One Hot Encoding ∙ Softmax (0) | 2022.07.17 |
[AI] 로지스틱 회귀 (Logistic Regression) (0) | 2022.07.10 |
[AI] 수치 해석 (0) | 2022.07.10 |