텐서플로우 2.0 베타를 설치해보고 간단한 예제를 실행시켜 봅니다.
최초 작성 2019. 7. 14
다음 명령으로 Tensorflow 2.0 Beta 패키지를 설치합니다.
글 작성시점에서는 아직 정식 버전이 아닙니다.
pip install tensorflow==2.0.0-beta1
글 작성 시점과 최신 버전이 다를 수 있습니다.
최신 버전은 아래 링크에서 확인하세요.
https://www.tensorflow.org/beta/
다음처럼 명령 프롬프트 창에서 설치한 Tensorflow 버전을 확인합니다.
C:\Users\webnautes>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'2.0.0-beta1'
간단한 케라스(keras) 예제를 실행시켜 봅니다.
import tensorflow as tf
# MNIST 데이터 세트를 가져옵니다.
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 뉴럴 네트워크 모델을 생성합니다.
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
# 학습을 위한 optimizer와 loss function을 선택합니다.
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 학습 데이터 세트를 사용하여 모델을 학습시킵니다. 5번 반복합니다.
model.fit(x_train, y_train, epochs=5)
# 테스트 데이터 세트를 사용하여 모델을 평가합니다.
model.evaluate(x_test, y_test)
import tensorflow as tf
# MNIST 데이터 세트를 가져옵니다.
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 뉴럴 네트워크 모델을 생성합니다.
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
# 학습을 위한 optimizer와 loss function을 선택합니다.
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 학습 데이터 세트를 사용하여 모델을 학습시킵니다. 5번 반복합니다.
model.fit(x_train, y_train, epochs=5)
# 테스트 데이터 세트를 사용하여 모델을 평가합니다.
model.evaluate(x_test, y_test)
다음과 같은 결과가 출력됩니다.
# 다운로드된 MNIST 데이터는 다음 경로에 저장됩니다.
# C:\Users\사용자이름\.keras\datasets
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
8192/11490434 [..............................] - ETA: 1s
49152/11490434 [..............................] - ETA: 11s
114688/11490434 [..............................] - ETA: 10s
286720/11490434 [..............................] - ETA: 5s
1395072/11490434 [============================>.] - ETA: 0s
11419648/11490434 [============================>.] - ETA: 0s
11452416/11490434 [============================>.] - ETA: 0s
11493376/11490434 [==============================] - 18s 2us/step
# pip로 설치한 Tensorflow 패키지는 사용중인 CPU에 최적화 되어 있지 않기에
# 다음과 같은 메시지가 보입니다.
2019-07-14 16:38:57.771420: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
# 도태 예정(deprecated)인 API가 있다는 메시지입니다.
WARNING: Logging before flag parsing goes to stderr.
W0714 16:38:57.949635 4612 deprecation.py:323] From C:\Users\webnautes\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\ops\math_grad.py:1250: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
# 60,000개의 학습데이터 세트 샘플에 대해 5번 학습이 반복됩니다.
# 손실과 정확도를 출력합니다.
Train on 60000 samples
Epoch 1/5
32/60000 [..............................] - ETA: 3:38 - loss: 2.4668 - accuracy: 0.0625
768/60000 [..............................] - ETA: 12s - loss: 1.7727 - accuracy: 0.4609
1376/60000 [..............................] - ETA: 9s - loss: 1.4391 - accuracy: 0.5719
. . . . . . 생략 . . . . . .
59168/60000 [============================>.] - ETA: 0s - loss: 0.2967 - accuracy: 0.9137
59488/60000 [============================>.] - ETA: 0s - loss: 0.2962 - accuracy: 0.9138
59776/60000 [============================>.] - ETA: 0s - loss: 0.2955 - accuracy: 0.9141
60000/60000 [==============================] - 7s 117us/sample - loss: 0.2951 - accuracy: 0.9142
Epoch 2/5
32/60000 [..............................] - ETA: 21s - loss: 0.3017 - accuracy: 0.9375
416/60000 [..............................] - ETA: 9s - loss: 0.1537 - accuracy: 0.9495
832/60000 [..............................] - ETA: 8s - loss: 0.1245 - accuracy: 0.9627
. . . . . . 생략 . . . . . .
59616/60000 [============================>.] - ETA: 0s - loss: 0.1412 - accuracy: 0.9579
59936/60000 [============================>.] - ETA: 0s - loss: 0.1411 - accuracy: 0.9580
60000/60000 [==============================] - 9s 143us/sample - loss: 0.1411 - accuracy: 0.9580
. . . . . . 생략 . . . . . .
Epoch 5/5
32/60000 [..............................] - ETA: 22s - loss: 0.1479 - accuracy: 0.9375
384/60000 [..............................] - ETA: 10s - loss: 0.1167 - accuracy: 0.9688
800/60000 [..............................] - ETA: 8s - loss: 0.0890 - accuracy: 0.9775
. . . . . . 생략 . . . . . .
59136/60000 [============================>.] - ETA: 0s - loss: 0.0747 - accuracy: 0.9764
59488/60000 [============================>.] - ETA: 0s - loss: 0.0746 - accuracy: 0.9764
59872/60000 [============================>.] - ETA: 0s - loss: 0.0744 - accuracy: 0.9765
60000/60000 [==============================] - 9s 144us/sample - loss: 0.0744 - accuracy: 0.9765
# 10,000개의 테스트 세트 샘플에 대해 손실과 정확도를 계산합니다.
32/10000 [..............................] - ETA: 28s - loss: 0.0210 - accuracy: 1.0000
736/10000 [=>............................] - ETA: 1s - loss: 0.0598 - accuracy: 0.9851
1504/10000 [===>..........................] - ETA: 1s - loss: 0.0854 - accuracy: 0.9767
2048/10000 [=====>........................] - ETA: 0s - loss: 0.0929 - accuracy: 0.9736
2752/10000 [=======>......................] - ETA: 0s - loss: 0.0957 - accuracy: 0.9738
3392/10000 [=========>....................] - ETA: 0s - loss: 0.0900 - accuracy: 0.9752
4064/10000 [===========>..................] - ETA: 0s - loss: 0.0941 - accuracy: 0.9732
4576/10000 [============>.................] - ETA: 0s - loss: 0.0943 - accuracy: 0.9720
5120/10000 [==============>...............] - ETA: 0s - loss: 0.0905 - accuracy: 0.9729
5888/10000 [================>.............] - ETA: 0s - loss: 0.0832 - accuracy: 0.9750
6624/10000 [==================>...........] - ETA: 0s - loss: 0.0820 - accuracy: 0.9755
7424/10000 [=====================>........] - ETA: 0s - loss: 0.0758 - accuracy: 0.9771
8224/10000 [=======================>......] - ETA: 0s - loss: 0.0704 - accuracy: 0.9787
9024/10000 [==========================>...] - ETA: 0s - loss: 0.0669 - accuracy: 0.9798
9888/10000 [============================>.] - ETA: 0s - loss: 0.0671 - accuracy: 0.9797
10000/10000 [==============================] - 1s 91us/sample - loss: 0.0670 - accuracy: 0.9797
참고
Get started with TensorFlow 2.0 for beginners
'Deep Learning & Machine Learning > 강좌&예제 코드' 카테고리의 다른 글
TensorFlow와 OpenCV를 사용하여 웹캠에 비춘 손글씨 숫자 인식하기 (39) | 2019.10.01 |
---|---|
텐서플로우 2.0 강좌입니다. (4) | 2019.09.01 |
텐서플로우 기초 강좌 - 1. 간단한 수식 계산 (0) | 2019.02.04 |
Tensorflow 강좌 - Tensorboard 간단한 사용방법 (5) | 2019.01.22 |
Tensorflow 강좌 - 텍스트 분류( Text classification )를 위해 뉴럴 네트워크 학습 시키기 (0) | 2019.01.17 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!