반응형

 

 

텐서플로우 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

https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynb










반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts