on
[tensorflow] neural network 구성하기, 간단한 신경망 만들기
[tensorflow] neural network 구성하기, 간단한 신경망 만들기
728x90
1. Keras 란?
케라스는 유저가 손쉽게 딥러닝을 구현할 수 있도록 도와주는 상위레벨의 인터페이스 입니다.
케라스 모듈의 Sequential 클래스는 neural network의 각 층을 순서대로 쌓을 수 있도록 합니다.
keras.layers 모듈의 dense 클래스는 하나의 뉴런층을 구현합니다.
2. 신경망 구성하기
import tensorflow as tf
from tensorflow import keras
import numpy as np
model = keras.Sequential([keras.layers.Dense(units = 1 , input_shape = [1])])
여기서 unit 은 뉴런 또는 출력 노드의 개수를 의미함.
input_shape 는 입력 데이터의 형태를 결정.
https://wikidocs.net/32105
3. Neural network 컴파일 하기
model.compile(loss = 'mean_squared_error', optimizer = 'sgd')
뉴럴 네트워크 모델을 컴파일 하는 과정에서는 손실함수와 옵티마이저를 결정합니다.
손실함수는 네트워크의 예측이 얼마나 잘 맞는지 측정하는 역할을 하며
옵티마이저는 더 개선된 예측값을 출력하도록 최적화하는 알고리즘입니다.
손실함수와 옵티마이저에 대해서는 따로 정리를 해보겠습니다.
4. Neural Network 훈련하기.
epochs -> 주어진 데이터의 훈련 단위.
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)
model.fit(xs, ys, epochs=500) # 500번 훈련
fit 하게되면 모델을 훈련하면서 손실값을 반환해줍니다.
훈련이 될수록 손실값이 줄어드는 것을 확인할 수 있어요.
5. Neural Network 예측하기.
Sequantial 클래스의 predict() 메서드를 사용하면 특정 입력에 대해 neural network가 예측하는 값을 알 수 있습니다.
pred = model.predict([5.0])
print(pred)
[[8.995342]]
from http://eungu25.tistory.com/79 by ccl(A) rewrite - 2021-12-17 11:26:52