파이썬 딥러닝 (tensorflow) - 1

김찬울·2021년 9월 8일
0

월요일과 화요일 사정으로 인해 업로드를 못했다..

다시금 하자!

  • 출처 텐서플로우 홈페이지

텐서플로우는 구글에서 만든 파이썬 모듈이다. 해당 모듈은 딥러닝에 최적화된 모듈로 기존의 sklearn보다 많은 구성을 가진다. 특히 이번에 주로 쓸 것은 keras인데 텐서플로우에는 keras처럼 구글에서 모든 걸 만들진 않고 여러 좋은 라이브러리를 병합한 느낌이다.

지금까지 배운 신경망은 구현위주라 np로만 했지만 keras를 사용하면서 구조를 건너뛰고 결과를 볼 수 있다. 이래서 신경망이 들어가는 딥러닝부터는 블랙박스처럼 그 구조를 파악하기 힘들다.

import tensorflow as tf

tf라고 간단하게 부른다.

기존에 했던것처럼 mnist를 사용할건데 keras.dataset안에 다 들어있다.

일단 이미지 mnist같은 이미지 파일은 데이터 전처리가 많이 중요한데 특히 평활화와 minmax나 standard로 스케일링하는 것은 기본적이다. 서로에 대한 차이만 알면 되기에 스케일링으로 나타내도 괜찮다.

모델 생성

model = tf.keras.modelsSequential([
                    tf.keras.layers.Flatten(input_shape=(28, 28)),
                    tf.keras.layers.Dense(50, activation='sigmoid'),
                    tf.keras.layers.Dense(10, activation='softmax')          
])

해당 식처럼 모델을 만들 수 있다.

안에서 몇 줄이 있느냐에 따라 층이 정해지는 것인데 해당 모델은
은닉층이 하나다.

model.compile(optimizer=tf.keras.optimizers.SGD(0.1), 
loss='categorical_crossentropy', metrics=['accuracy'])

이렇게 컴파일을 해야 모델이 학습하는 방식, 측정방식, 비용함수등을 알 수 있다.

후에는 기존처럼

model.fit(x=train_imagess, y=train_oh_labels, validation_split=0.15, validation_data=(test_images, test_oh_labels),batch_size=100, epochs=17, verbose=1)
test_pred = model.predict(test_images)

이렇게 한다.
일단 fit에서는 처음보는게 많다 validation_split은 검증이고 _data는 예측까지 할 것인지다. verbose는 학습에 대한 출력이다.

이처럼 파이썬으로 만든 코드보다 간단하고 sklearn처럼 쉽다.

profile
코린코린이

0개의 댓글