輸入資料

tflearn.layers.core.input_data (shape=None, placeholder=None, dtype=tf.float32, data_preprocessing=None, data_augmentation=None, name='InputData')

此層用於輸入 (又名饋入) 數據到一個網路。如果有一個 TensorFlow placeholder,使用該 placeholder,否則建立一個新的 placeholder 然後以給定形狀建立。

必須提供一個形狀或 placeholder,否則會提出例外。

此外,將 placeholder 加入 TensorFlow 集合中,因此可以透過 tf.get_collection(tf.GraphKeys.INPUTS) 和 tf.GraphKeys.LAYER_TENSOR + '/' + name 檢索。同樣,對於 data preprocessing 和 augmentation 物件,使用 tf.GraphKeys.DATA_PREP 和 tf.GraphKeys.DATA_AUG 將其儲存在集合中。這允許 TFLearn 的其他部分透過參考這些圖表金鑰輕鬆地檢索和使用這些物件。

輸入

參數清單為 int (形狀),用於建立新 placeholder。或 Tensor (Placeholder),用來使用現有的 placeholder。

輸出

具有給定形狀的 Placeholder Tensor。

論證

  • shape:參數清單為 int。一個陣列或元組,代表輸入資料形狀。如果沒有提供 placeholder,則需要它。第一個元素應該是「None」(代表批量大小),如果沒有提供,它將自動加入。
  • placeholder:一個 Placeholder,用於饋入此層 (可選)。如果沒有指定,將自動建立一個 placeholder。你可以透過圖表金鑰提取那個 placeholder:『INPUTS』,或此函式傳回張量的『placeholder』屬性。
  • dtypetf.type,Placeholder 資料類型 (可選)。預設:float32。
  • data_preprocessing:一個 DataPreprocessing 子類別的物件,用於在訓練和預測時管理即時資料前處理 (例如零資料中心、std 規範化...)。
  • data_augmentation: DataAugmentation。管理訓練時即時資料擴充的 DataAugmentation 子類別物件(例如隨機影像裁切、隨機影像翻轉、隨機序列反轉...)。
  • name: str。此層名稱(可選)。

全連接

tflearn.layers.core.fully_connected (incoming, n_units, activation='linear', bias=True, weights_init='truncated_normal', bias_init='zeros', regularizer=None, weight_decay=0.001, trainable=True, restore=True, reuse=False, scope=None, name='FullyConnected')

全連接層。

輸入

(2+)-D 張量 [樣本數、輸入維度]。如果不是 2D,則輸入將會扁平化。

輸出

2D 張量 [樣本數、n_units]。

論證

  • incoming: Tensor。輸入的 (2+)D 張量。
  • n_units: int,此層的單位數。
  • activation: str (名稱) 或 function(傳回 Tensor)。運用到此層的啟用(請參閱 tflearn.activations)。預設值:'linear'。
  • bias: bool。如果為 True,則使用偏差。
  • weights_init: str (名稱) 或 Tensor。權重初始化(請參閱 tflearn.initializations)。預設值:'truncated_normal'。
  • bias_init: str (名稱) 或 Tensor。偏差初始化(請參閱 tflearn.initializations)。預設值:'zeros'。
  • regularizer: str (名稱) 或 Tensor。將正規化器加入此層權重(請參閱 tflearn.regularizers)。預設值:無。
  • weight_decay: float。正規化器衰減參數。預設值:0.001。
  • trainable: bool。如果為 True,則權重將可訓練。
  • restore: bool。如果為 True,則在載入模型時,將會還原此層的權重。
  • reuse: bool。如果為 True,且有提供 'scope',則會重複使用(共用)此層的變數。
  • scope: str。定義此層的範圍(可選)。可以使用範圍來共用不同層的變數。請注意範圍會覆寫名稱。
  • name: 此層的名稱(可選)。預設值:'FullyConnected'。

屬性

  • scope: Scope。此層的範圍。
  • W: Tensor。表示單位權重的變數。
  • b: Tensor。表示偏差的變數。

中斷

tflearn.layers.core.dropout (incoming, keep_prob, noise_shape=None, name='Dropout')

輸出輸入的元素乘以縮放大 1 / keep_prob。縮放的用意是讓預期和不變。

預設值是讓每個元素獨立地保留或刪除。如果指定了 noise_shape,它必須可廣播至 x 的形狀,並且只有 noise_shape[i] == shape(x)[i] 的維度才會進行獨立的決定。例如,如果 shape(x) = [k, l, m, n] 且 noise_shape = [k, 1, 1, n],則每個批次和通道組件會獨立保留,而每一列和行會保留或一起保留。

論證

  • incoming : Tensor。輸入的張量。
  • keep_prob : 表示每個元素保留機率的浮點數。
  • noise_shape:表示隨機產生的保留/捨棄標記的形狀的 1D int32 型 Tensor。
  • name:這個圖層的名稱(選用)。

參考文獻

Dropout:防止神經網路過度擬合的簡易方法。N. Srivastava、G. Hinton、A. Krizhevsky、I. Sutskever 和 R. Salakhutdinov,(2014 年),《機器學習研究期刊》,第 5 卷(6 月)(2),第 1929-1958 頁。

連結

https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf


自訂層

tflearn.layers.core.custom_layer (incoming, custom_fn, **kwargs)

可將任何運算套用至輸入 Tensor 或 Tensor 清單的客製化圖層。客製化函數可與其參數一起傳遞為參數。

論證

  • incoming:TensorTensor 清單。輸入張量。
  • custom_fn:客製化 函數,用以對輸入張量套用一些操作。
  • **kwargs:客製化函式可能需要的自訂參數。

變形

tflearn.layers.core.reshape (incoming, new_shape, name='Reshape')

一個圖層,將輸入圖層張量輸出重新塑造成所需的形狀。

論證

  • incomingTensor。輸入張量。
  • new_shapeint 清單。所需的形狀。
  • name:這個圖層的名稱(選用)。

平整

tflearn.layers.core.flatten (incoming, name='Flatten')

壓平輸入 Tensor。

輸入

(2+)D Tensor

輸出

2D Tensor [批次、壓平維度]。

論證

  • incomingTensor。輸入張量。

啟用

tflearn.layers.core.activation (incoming, activation='linear', name='activation')

將給定的啟用套用至輸入張量。

論證

  • incomingTensor。輸入張量。
  • activation: str (名稱) 或 function(傳回 Tensor)。運用到此層的啟用(請參閱 tflearn.activations)。預設值:'linear'。

單元

tflearn.layers.core.single_unit (incoming, activation='linear', bias=True, trainable=True, restore=True, reuse=False, scope=None, name='Linear')

單元 (線性) 圖層。

輸入

1D Tensor [範例]。如果非 2D,輸入將會壓平。

輸出

1D Tensor [範例]。

論證

  • incomingTensor。輸入 Tensor。
  • activationstr (名稱) 或 函數。套用至此圖層的啟用(見 tflearn.activations)。預設為 'linear'。
  • bias: bool。如果為 True,則使用偏差。
  • trainable: bool。如果為 True,則權重將可訓練。
  • restore: bool。如果為 True,則在載入模型時,將會還原此層的權重。
  • reuse: bool。如果為 True,且有提供 'scope',則會重複使用(共用)此層的變數。
  • scope: str。定義此層的範圍(可選)。可以使用範圍來共用不同層的變數。請注意範圍會覆寫名稱。
  • name:這個圖層的名稱(選用)。預設為 'Linear'。

屬性

  • WTensor。代表權重的變數。
  • bTensor。代表偏差的變數。

全連接高速公路

tflearn.layers.core.highway (incoming, n_units, activation='linear', transform_dropout=None, weights_init='truncated_normal', bias_init='zeros', regularizer=None, weight_decay=0.001, trainable=True, restore=True, reuse=False, scope=None, name='FullyConnectedHighway')

全連接公路網路圖層,其靈感來自於 https://github.com/fomorians/highway-fcn

輸入

(2+)-D 張量 [樣本數、輸入維度]。如果不是 2D,則輸入將會扁平化。

輸出

2D 張量 [樣本數、n_units]。

論證

  • incoming: Tensor。輸入的 (2+)D 張量。
  • n_units: int,此層的單位數。
  • activation: str (名稱) 或 function(傳回 Tensor)。運用到此層的啟用(請參閱 tflearn.activations)。預設值:'linear'。
  • transform_dropout浮點數:公路轉換閘門的保留機率。
  • weights_init: str (名稱) 或 Tensor。權重初始化(請參閱 tflearn.initializations)。預設值:'truncated_normal'。
  • bias_init: str (名稱) 或 Tensor。偏差初始化(請參閱 tflearn.initializations)。預設值:'zeros'。
  • regularizer: str (名稱) 或 Tensor。將正規化器加入此層權重(請參閱 tflearn.regularizers)。預設值:無。
  • weight_decay: float。正規化器衰減參數。預設值:0.001。
  • trainable: bool。如果為 True,則權重將可訓練。
  • restore布林值。如果為 True,則載入模型時會復原這個圖層的權重。
  • reuse: bool。如果為 True,且有提供 'scope',則會重複使用(共用)此層的變數。
  • scope: str。定義此層的範圍(可選)。可以使用範圍來共用不同層的變數。請注意範圍會覆寫名稱。
  • name:這個圖層的名稱(選用)。預設為 'FullyConnectedHighway'。

屬性

  • scope: Scope。此層的範圍。
  • W: Tensor。表示單位權重的變數。
  • W_tTensor。代表轉換閘門單位權重的變數。
  • b: Tensor。表示偏差的變數。
  • b_tTensor。代表轉換閘門偏差的變數。

連結

https://arxiv.org/abs/1505.00387


一個熱編碼

tflearn.layers.core.one_hot_encoding (target, n_classes, on_value=1.0, off_value=0.0, name='OneHotEncoding')

將數字標籤轉換為二進制向量。

輸入

標籤資料暫存區。

輸出

2 維張量,已編碼標籤。

論證

  • targetPlaceholder。標籤資料暫存區。
  • n_classesint。總類別數。
  • on_value純量。定義開值的純量。
  • off_value純量。定義關值的純量。
  • name:此區塊的名稱(選用)。預設值:'OneHotEncoding'。

時間分布

tflearn.layers.core.time_distributed (incoming, fn, args=None, scope=None)

此區塊會對輸入張量的每個時間步套用函數。自訂函數的第一個引數必須為每個時間步的輸入張量。自訂函數的額外參數可使用 'args' 引數(以清單形式)指定。

範例

# Applying a fully_connected layer at every timestep
x = time_distributed(input_tensor, fully_connected, [64])

# Using a conv layer at every timestep with a scope
x = time_distributed(input_tensor, conv_2d, [64, 3], scope='tconv')

輸入

(3+)- 維張量 [範例、時間步、輸入維度]。

輸出

(3+)- 維張量 [範例、時間步、輸出維度]。

論證

  • incomingTensor。輸入張量。
  • fn函數。會套用於每個時間步的函數。此函數的第一個參數必須為每個時間步的輸入張量。額外參數可使用 'args' 引數指定。
  • args清單。與提供的函數一起使用的參數清單。
  • scope字串。指定給每個時間步張量的範圍。在共用權重時很有用。每個時間步張量的作用範圍將生成為 'scope'-'i',其中 i 代表時間步 ID。請注意,您的自訂函數需要有一個 'scope' 參數。

傳回

張量。


多目標資料

tflearn.layers.core.multi_target_data (name_list, shape, dtype=tf.float32)

建立多個佔位符並串接。當迴歸區塊使用來自不同來源的目標時使用。

論證

  • name_list字串清單。目標佔位符的名稱。
  • shape整數清單。佔位符的形狀。
  • dtypetf.type,Placeholder 資料類型 (可選)。預設:float32。