運算符將 dropout 添加到給定單元的輸入和輸出。
繼承自:Module
用法
tf.nn.RNNCellDropoutWrapper(
*args, **kwargs
)
參數
-
cell
一個 RNNCell,一個到 output_size 的投影被添加到它。 -
input_keep_prob
unit Tensor or float 在0和1之間,輸入保持概率;如果它是常數且為 1,則不會添加輸入 dropout。 -
output_keep_prob
unit Tensor or float 0和1之間,輸出保持概率;如果它是常數且為 1,則不會添加輸出 dropout。 -
state_keep_prob
unit Tensor or float 0和1之間,輸出保持概率;如果它是常數且為 1,則不會添加輸出 dropout。狀態丟失是在單元的輸出狀態上執行的。注意何時應用 dropout 的狀態組件state_keep_prob
在(0, 1)
也由參數決定dropout_state_filter_visitor
(例如,默認情況下,dropout 永遠不會應用於c
的組成部分LSTMStateTuple
)。 -
variational_recurrent
Python 布爾值。如果True
,然後在每次運行調用的所有時間步中應用相同的 dropout 模式。如果設置了這個參數,input_size
必須提供。 -
input_size
(可選)(可能是嵌套的元組)TensorShape
包含預期要傳入的輸入張量的深度的對象DropoutWrapper
.需要和使用當且當variational_recurrent = True
和input_keep_prob < 1
. -
dtype
(可選)dtype
輸入、狀態和輸出張量。需要和使用當且當variational_recurrent = True
. -
seed
(可選)整數,隨機種子。 -
dropout_state_filter_visitor
(可選),默認值:(見下文)。采用狀態的任何層次級別並返回 Python 布爾值的標量或深度 = 1 結構的函數,該結構說明了應刪除狀態中的哪些項。此外,如果函數返回True
,則會在此子級別上應用 dropout。如果函數返回False
,則不會在整個子級別上應用 dropout。默認行為:對除LSTMCellState
對象的內存(c
)狀態之外的所有條件執行 dropout,並且不要嘗試將 dropout 應用於TensorArray
對象:def dropout_state_filter_visitor(s): if isinstance(s, LSTMCellState):# Never perform dropout on the c state. return LSTMCellState(c=False, h=True) elif isinstance(s, TensorArray):return False return True
-
**kwargs
基礎層的關鍵字參數字典。
拋出
-
TypeError
如果cell
不是RNNCell
,或者提供了keep_state_fn
但未提供callable
。 -
ValueError
如果任何 keep_probs 不在 0 和 1 之間。
屬性
-
activity_regularizer
該層輸出的可選正則化函數。 -
compute_dtype
層計算的 dtype。這相當於
Layer.dtype_policy.compute_dtype
。除非使用混合精度,否則這與Layer.dtype
相同,即權重的 dtype。層會自動將其輸入轉換為計算 dtype,這會導致計算和輸出也位於計算 dtype 中。這是由
Layer.call
中的基礎層類完成的,因此如果實現自己的層,則不必插入這些轉換。當
compute_dtype
為 float16 或 bfloat16 以保持數值穩定性時,層通常會以更高的精度執行某些內部計算。在這種情況下,輸出通常仍然是 float16 或 bfloat16。 -
dtype
層權重的 dtype。這相當於
Layer.dtype_policy.variable_dtype
。除非使用混合精度,否則這與Layer.compute_dtype
相同,即圖層計算的 dtype。 -
dtype_policy
與該層關聯的 dtype 策略。這是
tf.keras.mixed_precision.Policy
的一個實例。 -
dynamic
圖層是否動態(eager-only);在構造函數中設置。 -
input
檢索層的輸入張量。僅當該層隻有一個輸入時才適用,即如果它連接到一個傳入層。
-
input_spec
InputSpec
說明該層輸入格式的實例。創建圖層子類時,可以設置
self.input_spec
以使圖層在調用時運行輸入兼容性檢查。考慮Conv2D
層:它隻能在秩為 4 的單個輸入張量上調用。因此,您可以在__init__()
中設置:self.input_spec = tf.keras.layers.InputSpec(ndim=4)
現在,如果您嘗試在不是 4 級的輸入上調用圖層(例如,形狀為
(2,)
的輸入,它將引發 nicely-formatted 錯誤:ValueError:Input 0 of layer conv2d is incompatible with the layer: expected ndim=4, found ndim=1. Full shape received:[2]
可以通過
input_spec
指定的輸入檢查包括:- 結構(例如,單個輸入、2 個輸入的列表等)
- Shape
- 排名(ndim)
- Dtype
有關詳細信息,請參閱
tf.keras.layers.InputSpec
。 -
losses
使用添加的損失列表add_loss()
API。訪問此屬性時會創建變量正則化張量,因此非常安全:訪問
tf.GradientTape
下的losses
會將梯度傳播回相應的變量。class MyLayer(tf.keras.layers.Layer): def call(self, inputs): self.add_loss(tf.abs(tf.reduce_mean(inputs))) return inputs l = MyLayer() l(np.ones((10, 1))) l.losses [1.0]
inputs = tf.keras.Input(shape=(10,)) x = tf.keras.layers.Dense(10)(inputs) outputs = tf.keras.layers.Dense(1)(x) model = tf.keras.Model(inputs, outputs) # Activity regularization. len(model.losses) 0 model.add_loss(tf.abs(tf.reduce_mean(x))) len(model.losses) 1
inputs = tf.keras.Input(shape=(10,)) d = tf.keras.layers.Dense(10, kernel_initializer='ones') x = d(inputs) outputs = tf.keras.layers.Dense(1)(x) model = tf.keras.Model(inputs, outputs) # Weight regularization. model.add_loss(lambda:tf.reduce_mean(d.kernel)) model.losses [<tf.Tensor:shape=(), dtype=float32, numpy=1.0>]
-
metrics
使用添加的指標列表add_metric()
API。input = tf.keras.layers.Input(shape=(3,)) d = tf.keras.layers.Dense(2) output = d(input) d.add_metric(tf.reduce_max(output), name='max') d.add_metric(tf.reduce_min(output), name='min') [m.name for m in d.metrics] ['max', 'min']
-
non_trainable_weights
該層跟蹤的所有不可訓練權重的列表。不可訓練的權重在訓練期間不會更新。它們預計將在
call()
中手動更新。 -
output
檢索層的輸出張量。僅當該層隻有一個輸出時才適用,即如果它連接到一個傳入層。
-
output_size
-
state_size
-
supports_masking
該層是否支持使用compute_mask
計算掩碼。 -
trainable
-
trainable_weights
該層跟蹤的所有可訓練權重的列表。可訓練權重在訓練期間通過梯度下降進行更新。
-
variable_dtype
Layer.dtype
的別名,權重的 dtype。 -
weights
返回所有層變量/權重的列表。 -
wrapped_cell
相關用法
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代碼示例
- Python tf.nn.RNNCellDropoutWrapper.add_metric用法及代碼示例
- Python tf.nn.RNNCellDropoutWrapper.add_loss用法及代碼示例
- Python tf.nn.RNNCellDropoutWrapper.get_weights用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.add_loss用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.add_metric用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.get_weights用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.add_metric用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper用法及代碼示例
- Python tf.nn.embedding_lookup_sparse用法及代碼示例
- Python tf.nn.dropout用法及代碼示例
- Python tf.nn.gelu用法及代碼示例
- Python tf.nn.embedding_lookup用法及代碼示例
- Python tf.nn.local_response_normalization用法及代碼示例
- Python tf.nn.scale_regularization_loss用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.nn.RNNCellDropoutWrapper。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。