Estoy tratando de usar incrustaciones existentes dentro del modelo de tensorflow, el tamaño de incrustación es mayor que 2Gb y esto hace que mi intento original de hacer esto no sea exitoso:
embedding_var = tf.get_variable(
"embeddings",
shape=GLOVE_MATRIX.shape,
initializer=tf.constant_initializer(np.array(GLOVE_MATRIX))
)
Lo que me dio este error:
Cannot create a tensor proto whose content is larger than 2GB.
Estoy usando AWS SageMaker, que se basa en la API de Estimator, y la ejecución real del gráfico en la sesión ocurre detrás de escena, por lo que no estoy seguro de cómo inicializar algunos marcadores de posición para la incrustación dado eso. Sería útil si alguien pudiera compartir la forma de realizar dicha inicialización en términos de EstimatorAPI.
Vaya a Stack Overflow para obtener ayuda y soporte:
https://stackoverflow.com/questions/tagged/tensorflow
Si abre un problema de GitHub, aquí está nuestra política:
He aquí por qué tenemos esa política : los desarrolladores de TensorFlow responden a los problemas. Queremos centrarnos en el trabajo que beneficie a toda la comunidad, por ejemplo, corregir errores y agregar funciones. El apoyo solo ayuda a las personas. GitHub también notifica a miles de personas cuando se presentan problemas. Queremos que lo vean comunicando un problema interesante, en lugar de ser redirigido a Stack Overflow.
Puede recopilar parte de esta información utilizando nuestro script de captura de entorno:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
Puede obtener la versión de TensorFlow con
python -c "importar tensorflow como tf; print (tf.GIT_VERSION, tf.VERSION)"
Describe el problema claramente aquí. Asegúrese de transmitir aquí por qué es un error en TensorFlow o una solicitud de función.
Incluya cualquier registro o código fuente que pueda ser útil para diagnosticar el problema. Si incluye rastreos, incluya el rastreo completo. Se deben adjuntar registros y archivos grandes. Intente proporcionar un caso de prueba reproducible que sea el mínimo necesario para generar el problema.
Creo que esto normalmente sería un tipo de problema de "enviar a StackOverflow" (respuesta estándar adjunta a continuación), pero el límite de 2 GB parece estar dentro del rango de un error o una solicitud de función.
@martinwicke @ispirmustafa ¿ alguna sugerencia?
Esta pregunta se hace mejor en StackOverflow ya que no es un error o una solicitud de función. También hay una comunidad más grande que lee preguntas allí. ¡Gracias!
Creo que está relacionado con el límite de tamaño del gráfico. el uso de constant_initializer incrusta GLOVE_MATRIX en el gráfico, lo que aumenta el tamaño del gráfico.
¿Podría intentar utilizar un inicializador no constante?
Parece que la forma correcta de inicializar variables con incrustaciones sería usar tf.train.Scaffold . Aquí hay más información sobre esto en stackoverflow
Comentario más útil
Parece que la forma correcta de inicializar variables con incrustaciones sería usar tf.train.Scaffold . Aquí hay más información sobre esto en stackoverflow