Tensorflow: Comment initialiser la couche d'intégration dans l'API Estimator ?

Créé le 12 janv. 2018  ·  3Commentaires  ·  Source: tensorflow/tensorflow

J'essaie d'utiliser des intégrations existantes dans le modèle tensorflow, la taille de l'intégration est supérieure à 2 Go et cela rend mon essai initial infructueux :

embedding_var = tf.get_variable(
        "embeddings", 
        shape=GLOVE_MATRIX.shape, 
        initializer=tf.constant_initializer(np.array(GLOVE_MATRIX))
)

Ce qui m'a donné cette erreur :

Cannot create a tensor proto whose content is larger than 2GB.

J'utilise AWS SageMaker, basé sur l'API Estimator, et l'exécution réelle du graphique en session se produit en arrière-plan, donc je ne sais pas comment initialiser certains espaces réservés pour l'intégration étant donné cela. Ce serait utile si quelqu'un pouvait partager la façon de faire une telle initialisation en terme d'EstimatorAPI.


Veuillez vous rendre sur Stack Overflow pour obtenir de l'aide et de l'assistance :

https://stackoverflow.com/questions/tagged/tensorflow

Si vous ouvrez un problème GitHub, voici notre politique :

  1. Il doit s'agir d'un bug ou d'une demande de fonctionnalité.
  2. Le formulaire ci-dessous doit être rempli.
  3. Cela ne devrait pas être un problème TensorBoard. Ceux- vont

Voici pourquoi nous appliquons


Informations système

  • Ai-je écrit du code personnalisé (par opposition à l'utilisation d'un exemple de script fourni dans TensorFlow) :
  • Plateforme et distribution du système d'exploitation (par exemple, Linux Ubuntu 16.04) :
  • TensorFlow installé depuis (source ou binaire) :
  • Version TensorFlow (utilisez la commande ci-dessous) :
  • Version Python :
  • Version Bazel (si compilation à partir des sources) :
  • Version GCC/Compiler (si compilation à partir des sources) :
  • Version CUDA/cuDNN :
  • Modèle GPU et mémoire :
  • Commande exacte à reproduire :

Vous pouvez collecter certaines de ces informations à l'aide de notre script de capture d'environnement :

https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh

Vous pouvez obtenir la version TensorFlow avec

python -c "importer tensorflow en tant que tf; print(tf.GIT_VERSION, tf.VERSION)"

Décris le problème

Décrivez clairement le problème ici. Assurez-vous d'expliquer ici pourquoi il s'agit d'un bogue dans TensorFlow ou d'une demande de fonctionnalité.

Code source / journaux

Incluez tous les journaux ou code source qui seraient utiles pour diagnostiquer le problème. Si vous incluez des retraçages, veuillez inclure le retraçage complet. Les gros journaux et fichiers doivent être joints. Essayez de fournir un cas de test reproductible qui soit le strict minimum nécessaire pour générer le problème.

awaiting response bug

Commentaire le plus utile

il semble que la bonne façon d'initialiser les variables avec des incorporations serait d'utiliser tf.train.Scaffold . Voici plus d'informations à ce sujet sur stackoverflow

Tous les 3 commentaires

Je pense qu'il s'agirait normalement d'un problème "envoyer à StackOverflow" (réponse standard jointe ci-dessous), mais la limite de 2 Go semble être à portée d'un bogue ou d'une demande de fonctionnalité.

@martinwicke @ispirmustafa des suggestions ?

Cette question est mieux posée sur StackOverflow car il ne s'agit pas d'un bogue ou d'une demande de fonctionnalité. Il y a aussi une plus grande communauté qui lit les questions là-bas. Merci!

Je pense que c'est lié à la limite de taille du graphique. l'utilisation de constant_initializer intègre le GLOVE_MATRIX dans le graphique, ce qui augmente la taille du graphique.
Pourriez-vous s'il vous plaît essayer d'utiliser un initialiseur non constant?

il semble que la bonne façon d'initialiser les variables avec des incorporations serait d'utiliser tf.train.Scaffold . Voici plus d'informations à ce sujet sur stackoverflow

Cette page vous a été utile?
0 / 5 - 0 notes