Estou tentando usar embeddings existentes no modelo tensorflow, o tamanho do embedding é maior que 2 Gb e isso faz com que minha tentativa original de fazer isso não tenha sucesso:
embedding_var = tf.get_variable(
"embeddings",
shape=GLOVE_MATRIX.shape,
initializer=tf.constant_initializer(np.array(GLOVE_MATRIX))
)
O que me deu este erro:
Cannot create a tensor proto whose content is larger than 2GB.
Estou usando o AWS SageMaker, que se baseia na API Estimator, e a execução real do gráfico na sessão acontece nos bastidores, então não tenho certeza de como inicializar alguns marcadores de posição para incorporação, dado isso. Seria útil se alguém pudesse compartilhar a forma de como fazer essa inicialização em termos de EstimatorAPI.
Acesse Stack Overflow para obter ajuda e suporte:
https://stackoverflow.com/questions/tagged/tensorflow
Se você abrir um problema do GitHub, esta é nossa política:
Veja por que temos essa política : os desenvolvedores do TensorFlow respondem aos problemas. Queremos nos concentrar no trabalho que beneficia toda a comunidade, por exemplo, consertar bugs e adicionar recursos. O suporte ajuda apenas indivíduos. O GitHub também notifica milhares de pessoas quando os problemas são arquivados. Queremos que eles vejam você comunicando um problema interessante, em vez de serem redirecionados para o Stack Overflow.
Você pode coletar algumas dessas informações usando nosso script de captura de ambiente:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
Você pode obter a versão do TensorFlow com
python -c "importar tensorflow como tf; imprimir (tf.GIT_VERSION, tf.VERSION)"
Descreva o problema claramente aqui. Certifique-se de transmitir aqui por que é um bug no TensorFlow ou uma solicitação de recurso.
Inclua todos os logs ou código-fonte que possam ser úteis para diagnosticar o problema. Se incluir tracebacks, inclua o traceback completo. Registros e arquivos grandes devem ser anexados. Tente fornecer um caso de teste reproduzível que seja o mínimo necessário para gerar o problema.
Eu acho que isso normalmente seria um tipo de problema "enviar para StackOverflow" (resposta padrão anexada abaixo), mas o limite de 2 GB parece estar dentro do alcance de um bug ou uma solicitação de recurso.
@martinwicke @ispirmustafa alguma sugestão?
Esta pergunta é melhor feita no StackOverflow, pois não é um bug ou solicitação de recurso. Há também uma comunidade maior que lê perguntas lá. Obrigado!
Acho que está relacionado ao limite de tamanho do gráfico. o uso de constant_initializer incorpora GLOVE_MATRIX ao gráfico, o que aumenta o tamanho do gráfico.
Você poderia tentar usar o inicializador não constante?
parece que a maneira correta de inicializar variáveis com embeddings seria usar tf.train.Scaffold . Aqui estão mais informações sobre isso no stackoverflow
Comentários muito úteis
parece que a maneira correta de inicializar variáveis com embeddings seria usar tf.train.Scaffold . Aqui estão mais informações sobre isso no stackoverflow