詞彙處理器

tflearn.data_utils.VocabularyProcessor (max_document_length, min_frequency=0, vocabulary=None, tokenizer_fn=None)

將文件對應到單字識別序列。

參數

  • max_document_length:文件的最大長度。如果文件較長,會修剪;如果較短,會補白。
  • min_frequency:詞彙中單字的最小頻率。
  • vocabulary:範疇詞彙物件。

屬性

  • vocabulary_:範疇詞彙物件。

方法

fit (raw_documents, unused_y=None)

學習原始文件中所有詞彙的詞彙字典。

參數
  • raw_documents:提供 字串 或 unicode 的可迭代物件。
  • unused_y:以符合 estimator 的 fit 格式簽章。
傳回

self

fit_transform (raw_documents, unused_y=None)

學習詞彙字典,並傳回單字的索引。

參數
  • raw_documents:提供 字串 或 unicode 的可迭代物件。
  • unused_y:以符合 estimator 的 fit_transform 格式簽章。
傳回

X:可迭代物件,[n_samples, max_document_length] 單字識別矩陣。

restore (cls, filename)

從給定的檔案復原詞彙處理器。

參數
  • filename:要載入的檔案路徑。
傳回

詞彙處理器物件。

reverse (documents)

將詞彙對應輸出的單字識別反轉為單字。

參數
  • documents:可迭代物件,類別識別的清單。
傳回

以單字或文件的對應方式迭代。

save (filename)

將詞彙處理器儲存到給定的檔案。

參數
  • filename:輸出檔案路徑。

transform (raw_documents)

將文件轉換為 word-id 矩陣。

使用事先擬合好的 vocabulary 或建構函式中提供者,將字詞轉換為 id。

參數
  • raw_documents:提供 字串 或 unicode 的可迭代物件。

to_categorical

tflearn.data_utils.to_categorical (y, nb_classes)

將類別向量(0 到 nb_classes 的整數)轉換為二進位類別矩陣,供 categorical_crossentropy 使用。

參數

  • y: 陣列。待轉換的類別向量。
  • nb_classes: 整數。類別總數。

pad_sequences

tflearn.data_utils.pad_sequences (sequences, maxlen=None, dtype='int32', padding='post', truncating='post', value=0.0)

將每個序列內嵌至相同長度:最長序列的長度。如果提供了 maxlen,則任何長度大於 maxlen 的序列都會被截斷為 maxlen 長度。截斷會從序列的開頭或結尾(預設)進行。支援預內嵌和後內嵌(預設)。

參數

  • sequences: 陣列清單,其中每個元素都是一個序列。
  • maxlen: 整數,最大長度。
  • dtype: 對所產生的序列執行的轉型類型。
  • padding: 'pre' 或 'post',針對每個序列的內嵌位置,於其開頭或結尾執行。
  • truncating: 'pre' 或 'post',移除長度大於 maxlen 的序列值,從序列開頭或結尾移除。
  • value: 浮點數,用於將序列內嵌至所需值的數值。

傳回

x: Numpy 陣列,維度為 (number_of_sequences, maxlen)


string_to_semi_redundant_sequences

tflearn.data_utils.string_to_semi_redundant_sequences (string, seq_maxlen=25, redun_step=3, char_idx=None)

將字串向量化,並傳回剖析過的序列和 target,以及相關聯的 dictionary。

參數

  • string: 字串。輸入文字檔案中的小寫文字。
  • seq_maxlen: 整數。序列的最大長度。預設:25。
  • redun_step: 整數。冗餘步伐。預設:3。
  • char_idx: '字典'。用於將字元轉換為位置的字典。若此參數為 None,系統會自動產生字典。

傳回

元組:(inputs, targets, dictionary)


建置 HDF5 影像資料集

tflearn.data_utils.build_hdf5_image_dataset (target_path, image_shape, output_path='dataset.h5', mode='file', categorical_labels=True, normalize=True, grayscale=False, files_extension=None, chunks=False)

透過提供根資料夾或純文字檔案(包含圖片路徑和類別 ID),來建構 HDF5 資料集。

'資料夾' 模式:根資料夾應按以下方式排列。

ROOT_FOLDER -> SUBFOLDER_0 (CLASS 0) -> CLASS0_IMG1.jpg -> CLASS0_IMG2.jpg -> ...-> SUBFOLDER_1 (CLASS 1) -> CLASS1_IMG1.jpg -> ...-> ...

請注意,若子資料夾並非 0 到 n_classes 的整數,系統會依字母順序為每個子資料夾指派一個 ID。

'檔案' 模式:純文字檔案應按以下格式進行格式化。

/path/to/img1 class_id
/path/to/img2 class_id
/path/to/img3 class_id

範例

# Load path/class_id image file:
dataset_file = 'my_dataset.txt'

# Build a HDF5 dataset (only required once)
from tflearn.data_utils import build_hdf5_image_dataset
build_hdf5_image_dataset(dataset_file, image_shape=(128, 128), mode='file', output_path='dataset.h5', categorical_labels=True, normalize=True)

# Load HDF5 dataset
import h5py
h5f = h5py.File('dataset.h5', 'r')
X = h5f['X']
Y = h5f['Y']

# Build neural network and train
network = ...
model = DNN(network, ...)
model.fit(X, Y)

參數

  • target_path: 字串。根資料夾或圖片純文字檔案的路徑。
  • image_shape: 元組 (高度, 寬度)。圖片形狀。任何與該形狀不符的圖片,系統都會重新調整大小。
  • output_path: 字串。HDF5 資料集的輸出路徑。預設:'dataset.h5'
  • mode: 字串,'檔案'、'資料夾'。資料來源模式。'資料夾' 會接受一個根資料夾,其每個子資料夾各自代表一個類別,且包含需加以分類的圖片。'檔案' 會接受包含每個圖片路徑及類別 ID 的單一純文字檔案。預設:'資料夾'。
  • categorical_labels布林值。如果為 True,標籤會轉換成二進制向量。
  • normalize布林值。如果為 True,會將所有圖片正規化,方法是將每個圖片陣列除以 255。
  • grayscale布林值。如果為 true,會將圖片轉換成灰階。
  • files_extension字串清單。允許的圖片檔案副檔名清單,例如 ['.jpg', '.jpeg', '.png']。如果為 None,則允許所有檔案。
  • chunks布林值。是否要將資料集分塊。只有在有實際需求時,才應使用分塊功能。請參閱 HDF5 說明文件。如果 chunks 為 'True',將會計算出敏感的預設值。

影像預載入器

tflearn.data_utils.image_preloader (target_path, image_shape, mode='file', normalize=True, grayscale=False, categorical_labels=True, files_extension=None, filter_channel=False)

建立一個 python 陣列 (Preloader),可即時載入圖片 (來自磁碟或網址)。提供圖片範例的兩種方式為 'folder' 或 'file',請參閱以下規格說明。

'folder' 模式:從磁碟中載入圖片,並提供一個根資料夾。此資料夾應採用以下配置方式

ROOT_FOLDER -> SUBFOLDER_0 (CLASS 0) -> CLASS0_IMG1.jpg -> CLASS0_IMG2.jpg -> ...-> SUBFOLDER_1 (CLASS 1) -> CLASS1_IMG1.jpg -> ...-> ...

請注意,若子資料夾並非 0 到 n_classes 的整數,系統會依字母順序為每個子資料夾指派一個 ID。

'file' 模式:一個純文字檔案,其中列出每張圖片的路徑與類別 ID。此檔案應採用以下格式

/path/to/img1 class_id
/path/to/img2 class_id
/path/to/img3 class_id

請注意,即時載入圖片並轉換會浪費時間,因此您可以改用 build_hdf5_image_dataset 來建立一個 HDF5 資料集,以利快速擷取 (此函數會採用類似的引數)。

範例

# Load path/class_id image file:
dataset_file = 'my_dataset.txt'

# Build the preloader array, resize images to 128x128
from tflearn.data_utils import image_preloader
X, Y = image_preloader(dataset_file, image_shape=(128, 128),   mode='file', categorical_labels=True,   normalize=True)

# Build neural network and train
network = ...
model = DNN(network, ...)
model.fit(X, Y)

參數

  • target_path: 字串。根資料夾或圖片純文字檔案的路徑。
  • image_shape: 元組 (高度, 寬度)。圖片形狀。任何與該形狀不符的圖片,系統都會重新調整大小。
  • mode: 字串,'檔案'、'資料夾'。資料來源模式。'資料夾' 會接受一個根資料夾,其每個子資料夾各自代表一個類別,且包含需加以分類的圖片。'檔案' 會接受包含每個圖片路徑及類別 ID 的單一純文字檔案。預設:'資料夾'。
  • categorical_labels布林值。如果為 True,標籤會轉換成二進制向量。
  • normalize布林值。如果為 True,會將所有圖片正規化,方法是將每個圖片陣列除以 255。
  • grayscale布林值。如果為 true,會將圖片轉換成灰階。
  • files_extension字串清單。允許的圖片檔案副檔名清單,例如 ['.jpg', '.jpeg', '.png']。如果為 None,則允許所有檔案。
  • filter_channel布林值。如果為 true,會濾掉通道數不等於 3 的圖片。

傳回

(X, Y):其中 X 為圖片陣列,Y 為標籤陣列。


shuffle

tflearn.data_utils.shuffle (*arrs)

以同調的方式,同時洗牌指定的陣列,沿著第一個軸。

參數

  • *arrs:每一個要以同調方式洗牌的陣列。

傳回

洗牌後的陣列組。


samplewise_zero_center

tflearn.data_utils.samplewise_zero_center (X)

對每個範例進行零中心化,方法是將其減去平均值。

參數

  • X陣列。要進行中心化的範例批次。

傳回

具有與輸入相同形狀的 numpy 陣列。


samplewise_std_normalization

tflearn.data_utils.samplewise_std_normalization (X)

以每個範例的標準差,對其進行縮放。

參數

  • X陣列。要進行縮放的範例批次。

傳回

具有與輸入相同形狀的 numpy 陣列。


featurewise_zero_center

tflearn.data_utils.featurewise_zero_center (X, mean=None)

使用指定的平均值,將每個範例進行零中心化。如果未指定,平均值會評估所有範例。

參數

  • X陣列。要進行中心化的範例批次。
  • mean浮點數。用於進行零中心化的平均值。如果不指定,會根據所提供的資料進行評估。

傳回

具有與輸入相同形狀的 numpy 陣列。或者如果未指定平均值,則為 (陣列、平均值) 的組。


featurewise_std_normalization

tflearn.data_utils.featurewise_std_normalization (X, std=None)

使用指定的標準差,將每個範例進行縮放。如果未指定標準差,會根據所有範例的資料來評估標準差。

參數

  • X陣列。要進行縮放的範例批次。
  • std浮點數。用於縮放資料的 standard deviation。如果不指定,會根據所提供的資料進行評估。

傳回

具有與輸入相同形狀的 numpy 陣列。或者如果未指定標準差,則為 (陣列、標準差) 的組。


load_csv

tflearn.data_utils.load_csv (filepath, target_column=-1, columns_to_ignore=None, has_header=True, categorical_labels=False, n_classes=None)

從 CSV 檔案載入資料。預設情況下,標籤會被視為最後一欄,但可透過填寫「目標欄」參數來變更。

參數

  • filepath: str。csv 檔案路徑。
  • target_column: 代表標籤的欄位 ID。預設值:-1(最後一欄)。
  • columns_to_ignore: int 清單。要忽略的欄位索引清單。
  • has_header: bool。csv 檔案是否有標題。
  • categorical_labels: bool。如果為 True,標籤會以二進制向量的形式傳回(用於「分類交叉熵」)。
  • n_classes: int。類別的總數(如果 categorical_labels 為 True,則需要)。

傳回

結果會是一個 (資料、目標) 元組。