樹莓派一站式TensorFlow 2.0 配置

一、安裝系統
1、下載Download ZIP文件。
Raspbian系統下載地址:https://www.raspberrypi.org/downloads/raspbian/

2、格式化TF卡(新卡可以不格式化處理): 
下載格式化工具:SD card formatter
將TF卡插入讀卡器並連接電腦,打開軟件,選擇需要格式化的卡,點擊Format,其他選項默認。

3、系統鏡像寫入tf卡
下載寫入工具:win32diskimager
解壓下載的ZIP包得到一個.img的鏡像文件(解壓路徑不能含有中文)。
使用win32diskimager]軟件,選擇設備和解壓的.img的鏡像文件,點擊寫入。

二、樹莓派無鍵盤鼠標配置ssh和wifi
1、將系統鏡像寫入空白卡。
2.於 TF卡/boot/目錄下新建並命名一個ssh的文件:
3.新建並命名 wpa_supplicant.conf進行wifi配置:

3.新建並命名 wpa_supplicant.conf進行wifi配置: 

文件中寫入如下配置內容;
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1 
country=GB 
network={ 
ssid="wifi name" //WiFi名字,不能有中文
psk="wifi password" //你的WiFi密碼
key_mgmt=WPA-PSK 
}
 
4.完成後,將TF卡插入raspberry pi 並啓動電源。默認用戶名:pi  密碼:raspberry

三、樹莓派4b上安裝tensorflow2.0+keras
1、在/usr/local/下新建文件夾tf_pi
mkdir tf_pi
2.安裝虛擬環境

python3 -m pip install virtualenv
virtualenv env
source env/bin/activate

3、安裝各種環境

sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
python3 -m pip install keras_applications==1.0.8 --no-deps
python3 -m pip install keras_preprocessing==1.1.0 --no-deps
python3 -m pip install h5py==2.9.0
sudo apt-get install -y openmpi-bin libopenmpi-dev
sudo apt-get install -y libatlas-base-dev
python3 -m pip install -U six wheel mock


4.安裝tensorflow
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
python3 -m pip uninstall tensorflow
python3 -m pip install tensorflow-2.0.0-cp37-none-linux_armv7l.whl

5.重啓設備後,啓動虛擬環境
cd tf_pi
source env/bin/activate
6、試一下(應該可以顯示2.0.0):

7.沒有問題的話安裝keras(下面的install keras以外的4步其實都沒啥用,不過爲防萬一還是寫在這裏)(記住還是要在虛擬環境下安裝)
sudo apt-get install libhdf5-serial-dev
pip3 install h5py
pip3 install pillowimutils
pip3 install scipy--no-cache-dir
pip3 install keras

8、試一下

9、安裝JDK
sudo apt-get purge openjdk-8-jre-headless
sudo apt-get install openjdk-8-jre-headless
sudo apt-get install openjdk-8-jre

10.安裝PyCharm(從PyCharm官網下載下來,解壓後按照Install-Linux-tar.txt執行即可)
11.在PyCharm裏面設置虛擬環境:File->Settings->Project:xxxx->Project Interpreter,選擇那個小螺絲按鈕->Add
Existing environment裏面選擇剛纔虛擬環境裏面env/Python3.7,另外建議把【Make available to all projects】選上,以後就不用選了。
12.到此環境應該設置完畢了,寫入如下手寫數字識別代碼體驗下
 

import  os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

import  tensorflow as tf
from    tensorflow import keras
from    tensorflow.keras import layers, optimizers, datasets


(x, y), (x_val, y_val) = datasets.mnist.load_data() 
x = tf.convert_to_tensor(x, dtype=tf.float32) / 255.
y = tf.convert_to_tensor(y, dtype=tf.int32)
y = tf.one_hot(y, depth=10)
print(x.shape, y.shape)
train_dataset = tf.data.Dataset.from_tensor_slices((x, y))
train_dataset = train_dataset.batch(200)


model = keras.Sequential([ 
    layers.Dense(512, activation='relu'),
    layers.Dense(256, activation='relu'),
    layers.Dense(10)])

optimizer = optimizers.SGD(learning_rate=0.001)


def train_epoch(epoch):

    # Step4.loop
    for step, (x, y) in enumerate(train_dataset):

        with tf.GradientTape() as tape:
            # [b, 28, 28] => [b, 784]
            x = tf.reshape(x, (-1, 28*28))
            # Step1. compute output
            # [b, 784] => [b, 10]
            out = model(x)
            # Step2. compute loss
            loss = tf.reduce_sum(tf.square(out - y)) / x.shape[0]

        # Step3. optimize and update w1, w2, w3, b1, b2, b3
        grads = tape.gradient(loss, model.trainable_variables)
        # w' = w - lr * grad
        optimizer.apply_gradients(zip(grads, model.trainable_variables))

        if step % 100 == 0:
            print(epoch, step, 'loss:', loss.numpy())

def train():

    for epoch in range(30):
        train_epoch(epoch)

if __name__ == '__main__':
    train()


 

參考:
樹莓派4B安裝系統(Raspbian)
樹莓派中安裝JDK
安裝TensorFlow2.0
樹莓派4b上安裝tensorflow+keras

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章