Los LSTM en TensorFlow no procesan ningún tipo específico de entrada como palabras. Toman como entrada un tensor 3D y generan otro. Puede hacer que este tensor represente cualquier tipo de entrada que desee.
Al igual que alimentaría (en lotes) secuencias de incrustaciones de palabras, puede alimentar secuencias de caracteres, ya sea como vectores únicos o como incrustaciones. En la práctica, he descubierto que los personajes como incrustaciones son mucho mejores durante el aprendizaje.
Así es como lo haría usando incrustaciones, para proporcionar un ejemplo mínimo. Debe tokenizar sus caracteres en el conjunto de datos en identificaciones únicas.
- ¿Qué tipo de habilidades necesitarás para ingresar al aprendizaje profundo?
- ¿Cuáles son algunos ejemplos de buenos regresores e instrumentos para los modelos de regresión IV?
- ¿Cuál es la forma correcta y deseable de hacer un asistente personal / bot de chat usando AI, ML y NLP?
- Cómo encontrar qué variable de característica es más predictiva en un problema de clasificación binaria
- ¿El aprendizaje profundo ha vuelto obsoletos los métodos del núcleo?
# Aquí `input` es un tensor con id enteros de forma [batch_size, time_steps]
# El tamaño de las incrustaciones (`embed_size`) es un hiperparámetro.
E = tf.get_variable (’embedding_matrix’, [alphabet_size, embed_size], initializer = tf.random_uniform_initializer (minval = -1., Maxval = 1.))
embeds = tf.nn.embedding_lookup (E, entradas)
# Consejo profesional: use LSTMBlockCell. Es más rápido 🙂
cell = tf.contrib.rnn.LSTMBlockCell (embed_size)
initial_state = cell.zero_state (batch_size, tf.float32)
rnn_outs, estado = tf.nn.dynamic_rnn (celda, incrustaciones, estado_inicial = estado_inicial)