主要之前已經使用過 golang/nodejs/java 實在是不太想再學 python(主觀),所以這倆天嘗試了 TensorFlow.js v3.18,不過相關資料有點少(硬)。只好切換一下,更何況沒寫過 python 不能當作抗拒的理由, 畢竟深度學習 Python 生態系是最活躍的。
看了 keras tutorial 關於開發環境大概可以從 google colab 開始, 不必設定就可讓你在瀏覽器中編寫及執行Python 程式碼也可以免費使用 GPU 跟 TPU,也可直接線上跟他人共用蠻方便的。
但我還是比較習慣 desktop,所以選用了 anaconda 管理(避免Python模組或版本的衝突) 跟比較熟悉的 vscode 來入門
安裝開發環境 anaconda + vs code
- 安裝 anaconda 安裝環境管理工具(可以切換 virtual enivironment),從 anaconda 官網 下載
- 安裝 vs code + python extension for vs code
確認目前的開發環境版本
% conda --version
conda 4.13.0
% python --version
Python 3.9.12
建立新 enivironment
開啟 Anaconda Navigator後,其中預設的python環境內建是 base(root),這裡我建立一個名為 course 的 virtual environment
可以透過指令 info 列舉由 conda 管理的環境
% conda info -e
# conda environments:
#
base /Users/randy/opt/anaconda3
course * /Users/randy/opt/anaconda3/envs/course
環境版本的切換方式有三
- 可在 Anaconda Navigator 管理介面切換並且 launch
- 可在 vs code 中下方 runtime 版本中點選切換如下圖
- 可使用指令 conda activate 啟動與 conda deactivate 解除
其他指令
conda info 檢查版本
conda update conda 更新 conda 版本
conda install package 安裝指定套件
conda update package 更新指定套件
conda list 目前指定環境有安裝哪些套件
安裝 keras tensorflow
從 Anaconda Navigator 中點選 Environments 可在右上方的 packages 看到與安裝 keras 相關 packages (v2.6) 可能是網路關係,點選後只有 keras 順利安裝,其他 tensorflow packages 一直在轉圈圈,只好改用指令多按幾次終於成功安裝。 並且在 UI 上可以清楚看到版本資訊。利用指令安裝,不管是輸入 ‘tensorflow’ 或 ‘keras’ 或是 ‘keras tensorflow’, 看起來都是 v2.6 都會同時安裝,因為 TensorFlow v2 之後就已經整合 keras,所以這裡就輸入 tensorflow 即可。
#
# TensorFlow v2.x
#
% conda install -c conda-forge tensorflow
Hello World
安裝完 keras 後,keras 內建 MNIST 手寫數字辨識的資料集, 分別從 0~9 有 60,000 張訓練資料與 10,000 張測試資料。 只要沒有任何錯誤發生代表安裝 keras 與 tensorflow 成功
# from keras... import ... # for TensorFlow 1.x
# from tensorflow.keras... import ... # for TensorFlow 2.x
from tensorflow.keras.datasets import mnist
# Load MNIST data
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# Check the dataset loaded
train_images.shape, test_images.shape
試著輸出訓練與測試集合
# 60000 張 28x28 Pixel的訓練圖檔
print('len(train_labels):', len(train_labels))
print('train_images:', train_images.shape)
# 10000 張 28x28 Pixel的測試圖檔
print('len(test_labels):', len(test_labels))
print('test_images:', test_images.shape)
我們可以看到
len(train_labels): 60000
train_images: (60000, 28, 28)
len(test_labels): 10000
test_images: (10000, 28, 28)
安裝繪圖 matplotlib
# matplotlib
% conda install -c conda-forge matplotlib
畫出訓練集合的前 2 張圖
plt.subplot(121)
plt.imshow(train_images[0], cmap=plt.get_cmap('gray')) # 圖檔數字 5
plt.subplot(122)
plt.imshow(train_images[1], cmap=plt.get_cmap('gray')) # 圖檔數字 0
plt.show()