Raspberry Pi TensorFlow

2019. 1. 10. 00:19Linux/Raspberry Pi

Raspberry Pi에 TensorFlow 설치


TensorFlow가 무엇인지는 다른 페이지에서 다루기로 하고, 일단 TensorFlow를 Raspberry Pi에 설치하기 위해서는

source를 다운로드해서 빌드를 해도되고, 이미 빌드해서 package server에 올려놓은 것을 pip나 docker로 내려받아도 된다.

굳이 source를 빌드할 필요가 없기 때문에 우리는 pip를 이용해서 TensorFlow package를 설치하기로 한다.


1. Python, pip package manager, 그리고 Virtualenv 설치하기.

$sudo apt-get update

$sudo apt-get install python3-dev python3-pip

$suso apt-get install libatlas-base-dev                #requried for numpy

$sudo pip3 install -U virtualenv                         #system-wide install


2. Virtual Environment 생성.

Python interpreter를 선택과 이를 가지고 있는 ./venv 디렉토리를 만듦으로써 새로운 virtual environment를 생성한다.

$virtualenv --system-site-packages -p python3 ./venv

$source ./venv/bin/activate

virtualenv가 활성화되면 아래와 같이 쉘 프롬프트 앞에 (venv)가 생긴다.

(venv) pi@raspberrypi:~$

(venv) pi@raspberrypi:~$ pip install --upgrade pip

(venv) pi@raspberrypi:~$ pip list # show packages installed within the virtual environment.


3. Tensorflow pip package 설치.

tensorflow, tenforflow-gpu, tf-nightly, tf-nightly-gpu 4가지 중 하나를 선택하면되는데, 여기서는 recommend하고 있는 첫번재 tensoflow를 설치한다.

(venv) pi@raspberrypi:~$ pip install --upgrade tensorflow

설치가 잘되었는지 확인하기

(venv) pi@raspberrypi:~$ python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

tf.Tensor(-937.0786, shape=(), dtype=float32)

위와 같이 출력이 된다면 정상적으로 설치가 된 것이다.


import tensorflow as tf
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(),
  tf
.keras.layers.Dense(512, activation=tf.nn.relu),
  tf
.keras.layers.Dropout(0.2),
  tf
.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model
.compile(optimizer='adam',
              loss
='sparse_categorical_crossentropy',
              metrics
=['accuracy'])

model
.fit(x_train, y_train, epochs=5)
model
.evaluate(x_test, y_test)
import tensorflow as tf
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(),
  tf
.keras.layers.Dense(512, activation=tf.nn.relu),
  tf
.keras.layers.Dropout(0.2),
  tf
.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model
.compile(optimizer='adam',
              loss
='sparse_categorical_crossentropy',
              metrics
=['accuracy'])

model
.fit(x_train, y_train, epochs=5)
model
.evaluate(x_test, y_test)
import tensorflow as tf
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(),
  tf
.keras.layers.Dense(512, activation=tf.nn.relu),
  tf
.keras.layers.Dropout(0.2),
  tf
.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model
.compile(optimizer='adam',
              loss
='sparse_categorical_crossentropy',
              metrics
=['accuracy'])

model
.fit(x_train, y_train, epochs=5)
model
.evaluate(x_test, y_test)



Ref 

- https://www.tensorflow.org/install/pip