AutoKeras 可接受的輸入資料格式

AutoKeras 模型一般可以接受輸入下面四種類型的資料

Numpy 陣列 (ndarray)

Numpy、scikit-Learn、Tensorflow 等 Python 套件都採用的陣列,只要電腦的記憶體可以容納得下你的資料,儲存成 ndarray 是最便利的選擇。

Pandas 的 Series/ DataFrame 物件

Pandas 也是常用的資料套件,可以用來載入 CSV、Excel 資料表,其中內建的 DataFrame 可以直接輸入給 AutoKeras 模型不需要額外轉換成 Numpy 物件。

TensorFlow Core 資料集

可以直接透過TensorFlow Core 中的預設 Module資料集下載資料並直接傳給 AutoKeras 圖形分類器訓練,這種形式的資料集相對比較少,但所有的資料集都已經預處理好了,很適合學習使用。

預設資料集列表
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 )
可以利用機器的 GPU 加速訓練的速度

TensorFlow 資料集

有許多公開的資料集可以用來學習以及練習,這個有點類似 Python 生成器,能以串流形式從硬碟檔案或分散式檔案系統傳入資料,因此很適合用在深度學習與大型的資料集。

TensorFlow DataSets 官方內建資料集列表

基本上大型的資料集,比較建議先將資料轉換成 TensorFlow Dataset,也就是將自己的資料寫成 TensorFlow 資料集的格式,官方的文件有詳細的作法,可以參考

將資料轉換成 TensorFlow 資料集有幾個好處 :

  • 可以非同步預處理與建立資料佇列。
  • 提供 GPU 記憶體資料預載,所以在GPU處理完前一批資料後,可以直接使用下一批。
  • 可以從多種不同的資料源載入資料 ex. CSV 、Numpy、文字檔、資料夾等

使用前請先記得安裝 package

使用 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 )

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *