¿Hay un LSTM en TensorFlow que procesa un carácter a la vez?

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.

# 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)

Hola, puede que te interese este tutorial que escribí: Tutorial de TensorFlow: análisis del sentimiento de Tweet con LSTM de nivel de personaje. Paso por la implementación de un CharCNN-LSTM línea por línea, el resultado es una red con un tamaño de menos de 100mb que logra más del 80% de precisión en un conjunto de prueba de 80,000 Tweets.

Creo que esto es lo que estás buscando: sherjilozair / char-rnn-tensorflow. ¡Espero que esto ayude!

More Interesting

¿Dónde puedo ir para averiguar cómo extraer características de un documento de texto para usar en el entrenamiento de un clasificador?

¿Por qué podría ser preferible incluir menos predictores sobre muchos?

¿Cuál es el significado del lenguaje de máquina?

¿Cómo se pueden utilizar los autoencoders apilados para preentrenar una red neuronal que tiene más neuronas en las capas ocultas que entradas? es posible?

¿Qué tan bueno debería ser uno en Python para aprender Data Science?

¿Por qué es tan fácil el aprendizaje profundo?

¿Por qué una función del núcleo debe satisfacer la condición de Mercer?

¿Por qué confiamos en la aleatoriedad de la búsqueda aleatoria en la optimización de hiperparámetros?

¿Cómo 'Diagonal BiLSTM' calcula los estados diagonales a la vez y qué es diagonal?

¿Cuánto tiempo lleva convertirse en experto en aprendizaje automático?

Cómo implementar una capa de deconvolución con los mismos valores de peso de la capa de convolución anterior para una red neuronal convolucional

¿Qué debo hacer para comprender las matemáticas y los algoritmos detrás de la propagación inversa, CNN y RNN?

¿El aprendizaje automático está reemplazando la teoría de control tradicional?

¿Cómo puedo explicar que las unidades tradicionales de red neuronal recurrente (RNN) sufren el problema del gradiente de fuga?

¿Qué es más beneficioso para la comprensión general de la informática, el procesamiento del lenguaje natural o la teoría de la computación?