Calcula la propagación hacia adelante de la celda LSTM para todos los pasos de tiempo.
Esto es equivalente a aplicar LSTMBlockCell en un bucle, así:
for x1 in unpack(x):
i1, cs1, f1, o1, ci1, co1, h1 = LSTMBlock(
x1, cs_prev, h_prev, w, wci, wcf, wco, b)
cs_prev = cs1
h_prev = h1
i.append(i1)
cs.append(cs1)
f.append(f1)
o.append(o1)
ci.append(ci1)
co.append(co1)
h.append(h1)
return pack(i), pack(cs), pack(f), pack(o), pack(ci), pack(ch), pack(h)
Note that unlike LSTMBlockCell (and BlockLSTM) which uses ICFO gate layout,
this op uses IFCO. So in order for the following snippet to be equivalent
all gate-related outputs should be reordered.
Clases anidadas
clase | BlockLSTMV2.Options | Los atributos opcionales para BlockLSTMV2 |
Métodos públicos
estáticas BlockLSTMV2.Options | cellClip (Float cellClip) |
Salida <T> | ci () La entrada de la celda durante toda la secuencia de tiempo. |
Salida <T> | co () La celda después del tanh durante toda la secuencia de tiempo. |
estática <T se extiende Número> BlockLSTMV2 <T> | crear ( Alcance alcance, operando <largo> seqLenMax, operando <T> x, operando <T> csPrev, operando <T> hPrev, operando <T> w, operando <T> wci, operando <T> WCF, operando <T > OMA, operando <T> b, opciones ... opciones) Método de fábrica para crear una clase que envuelva una nueva operación BlockLSTMV2. |
Salida <T> | cs () El estado de la celda antes del tanh durante toda la secuencia de tiempo. |
Salida <T> | f () La puerta del olvido en toda la secuencia de tiempo. |
Salida <T> | h () El vector de salida h en toda la secuencia de tiempo. |
Salida <T> | i () La puerta de entrada en toda la secuencia de tiempo. |
Salida <T> | o () La puerta de salida en toda la secuencia de tiempo. |
estáticas BlockLSTMV2.Options | usePeephole (Boolean usePeephole) |
Métodos heredados
Métodos públicos
public static BlockLSTMV2.Options cellClip (Float cellClip)
Parámetros
cellClip | Valor al que recortar el valor 'cs'. |
---|
public static BlockLSTMV2 <T> crear ( Alcance alcance, operando <Larga> seqLenMax, operando <T> x, operando <T> csPrev, operando <T> hPrev, operando <T> w, operando <T> WCI, operando <T > WCF, operando <T> OMA, operando <T> b, opciones ... opciones)
Método de fábrica para crear una clase que envuelva una nueva operación BlockLSTMV2.
Parámetros
alcance | alcance actual |
---|---|
seqLenMax | Duración máxima de tiempo realmente utilizada por esta entrada. Las salidas se rellenan con ceros más allá de esta longitud. |
X | La secuencia de entrada al LSTM, forma (timelen, batch_size, num_inputs). |
csPrev | Valor del estado inicial de la celda. |
hPrev | Salida inicial de celda (para ser utilizada como mirilla). |
w | La matriz de peso. |
wci | La matriz de peso para la conexión de mirilla de la puerta de entrada. |
WC | La matriz de peso para la conexión de mirilla de puerta olvidada. |
wco | La matriz de peso para la conexión de mirilla de la puerta de salida. |
B | El vector de sesgo. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de BlockLSTMV2
pública de salida <T> cs ()
El estado de la celda antes del tanh durante toda la secuencia de tiempo.
public static BlockLSTMV2.Options usePeephole (booleano usePeephole)
Parámetros
utilizar Mirilla | Ya sea para usar pesas de mirilla. |
---|