輸入資料
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』屬性。
- dtype:
tf.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:
Tensor
或Tensor
清單。輸入張量。 - custom_fn:客製化
函數
,用以對輸入張量套用一些操作。 - **kwargs:客製化函式可能需要的自訂參數。
變形
tflearn.layers.core.reshape (incoming, new_shape, name='Reshape')
一個圖層,將輸入圖層張量輸出重新塑造成所需的形狀。
論證
- incoming:
Tensor
。輸入張量。 - new_shape:
int
清單。所需的形狀。 - name:這個圖層的名稱(選用)。
平整
tflearn.layers.core.flatten (incoming, name='Flatten')
壓平輸入 Tensor。
輸入
(2+)D Tensor
。
輸出
2D Tensor
[批次、壓平維度]。
論證
- incoming:
Tensor
。輸入張量。
啟用
tflearn.layers.core.activation (incoming, activation='linear', name='activation')
將給定的啟用套用至輸入張量。
論證
- incoming:
Tensor
。輸入張量。 - 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 [範例]。
論證
- incoming:
Tensor
。輸入 Tensor。 - activation:
str
(名稱) 或函數
。套用至此圖層的啟用(見 tflearn.activations)。預設為 'linear'。 - bias:
bool
。如果為 True,則使用偏差。 - trainable:
bool
。如果為 True,則權重將可訓練。 - restore:
bool
。如果為 True,則在載入模型時,將會還原此層的權重。 - reuse:
bool
。如果為 True,且有提供 'scope',則會重複使用(共用)此層的變數。 - scope:
str
。定義此層的範圍(可選)。可以使用範圍來共用不同層的變數。請注意範圍會覆寫名稱。 - name:這個圖層的名稱(選用)。預設為 'Linear'。
屬性
- W:
Tensor
。代表權重的變數。 - b:
Tensor
。代表偏差的變數。
全連接高速公路
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_t:
Tensor
。代表轉換閘門單位權重的變數。 - b:
Tensor
。表示偏差的變數。 - b_t:
Tensor
。代表轉換閘門偏差的變數。
連結
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 維張量,已編碼標籤。
論證
- target:
Placeholder
。標籤資料暫存區。 - n_classes:
int
。總類別數。 - 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+)- 維張量 [範例、時間步、輸出維度]。
論證
- incoming:
Tensor
。輸入張量。 - fn:
函數
。會套用於每個時間步的函數。此函數的第一個參數必須為每個時間步的輸入張量。額外參數可使用 'args' 引數指定。 - args:
清單
。與提供的函數一起使用的參數清單。 - scope:
字串
。指定給每個時間步張量的範圍。在共用權重時很有用。每個時間步張量的作用範圍將生成為 'scope'-'i',其中 i 代表時間步 ID。請注意,您的自訂函數需要有一個 'scope' 參數。
傳回
張量。
多目標資料
tflearn.layers.core.multi_target_data (name_list, shape, dtype=tf.float32)
建立多個佔位符並串接。當迴歸區塊使用來自不同來源的目標時使用。
論證
- name_list:
字串
清單。目標佔位符的名稱。 - shape:
整數
清單。佔位符的形狀。 - dtype:
tf.type
,Placeholder 資料類型 (可選)。預設:float32。