AutoKeras 模型一般可以接受輸入下面四種類型的資料
Numpy 陣列 (ndarray)
Numpy、scikit-Learn、Tensorflow 等 Python 套件都採用的陣列,只要電腦的記憶體可以容納得下你的資料,儲存成 ndarray 是最便利的選擇。
Pandas 的 Series/ DataFrame 物件
Pandas 也是常用的資料套件,可以用來載入 CSV、Excel 資料表,其中內建的 DataFrame 可以直接輸入給 AutoKeras 模型不需要額外轉換成 Numpy 物件。
TensorFlow Core 資料集
可以直接透過TensorFlow Core 中的預設 Module資料集下載資料並直接傳給 AutoKeras 圖形分類器訓練,這種形式的資料集相對比較少,但所有的資料集都已經預處理好了,很適合學習使用。
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
預設資料集列表
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import autokeras as ak
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import load_model
(x_train, y_train) , (x_test, y_test) = mnist.load_data()
print(x_train.shape)
# 建立圖形分類器
clf = ak.ImageClassifier(max_trials = 1)
# 開始訓練圖形分類器
clf.fit(x_train, y_train, epochs = 10)
# 使用測試集評估模型的預測效果, 會回傳預測的準確率
clf.evaluate( x_test, y_test )
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
可以利用機器的 GPU 加速訓練的速度
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
TensorFlow 資料集
有許多公開的資料集可以用來學習以及練習,這個有點類似 Python 生成器,能以串流形式從硬碟檔案或分散式檔案系統傳入資料,因此很適合用在深度學習與大型的資料集。
TensorFlow DataSets 官方內建資料集列表
基本上大型的資料集,比較建議先將資料轉換成 TensorFlow Dataset,也就是將自己的資料寫成 TensorFlow 資料集的格式,官方的文件有詳細的作法,可以參考。
將資料轉換成 TensorFlow 資料集有幾個好處 :
- 可以非同步預處理與建立資料佇列。
- 提供 GPU 記憶體資料預載,所以在GPU處理完前一批資料後,可以直接使用下一批。
- 可以從多種不同的資料源載入資料 ex. CSV 、Numpy、文字檔、資料夾等
使用前請先記得安裝 package
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
使用 TensorFlow Datasets 的下載方式與上面的稍微有些不同,下面是參考的範例程式碼
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import tensorflow_datasets as tfds
import autokeras as ak
mnist_train, mnist_test = tfds.load('mnist', split=["train","test"], as_supervised=True)
ak0 = ak.ImageClassifier(num_classes=10, max_trials=1)
ak0.fit(mnist_train, epochs=10)
# 使用測試集評估模型的預測效果, 會回傳預測的準確率
ak0.evaluate( mnist_test )
![](data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)