Como converter um tensor em uma matriz numpy ao usar o Tensorflow com ligações Python?
python
numpy
tensorflow
mathetes
fonte
fonte
Para converter de volta do tensor para o array numpy, basta executar
.eval()
no tensor transformado.fonte
ValueError: Cannot evaluate tensor using 'eval()': No default session is registered. Use 'with sess.as_default()' or pass an explicit session to 'eval(session=sess)'
Isso é utilizável apenas durante uma sessão de tensofluxo?.eval()
chamada de método dentro de uma sessão:sess = tf.Session(); with sess.as_default(): print(my_tensor.eval())
TensorFlow 2.x
A Execução Ansiosa é ativada por padrão, portanto, basta chamar
.numpy()
o objeto Tensor.Vale a pena notar (dos documentos),
Negrito ênfase minha. Uma cópia pode ou não ser devolvida, e este é um detalhe de implementação.
Se o Eager Execution estiver desativado, você poderá criar um gráfico e executá-lo através de
tf.compat.v1.Session
:Consulte também TF 2.0 Symbols Map para um mapeamento da API antiga para a nova.
fonte
eval()
.Você precisa:
Código:
Isso funcionou para mim. Você pode experimentá-lo em um notebook ipython. Só não se esqueça de adicionar a seguinte linha:
fonte
Talvez você possa tentar este método:
fonte
Eu enfrentei e resolvi a conversão tensor-> ndarray no caso específico de tensores representando imagens (adversárias), obtidos com a biblioteca / tutoriais da cleverhans .
Penso que a minha pergunta / resposta ( aqui ) pode ser um exemplo útil também para outros casos.
Eu sou novo no TensorFlow, a minha é uma conclusão empírica:
Parece que o método tensor.eval () pode precisar, para ter sucesso, também o valor para os marcadores de entrada . O tensor pode funcionar como uma função que precisa de seus valores de entrada (fornecidos em
feed_dict
) para retornar um valor de saída, por exemploObserve que o nome do espaço reservado é x no meu caso, mas acho que você deve descobrir o nome correto para o espaço reservado de entrada .
x_input
é um valor escalar ou matriz que contém dados de entrada.No meu caso, o fornecimento também
sess
era obrigatório.Meu exemplo também cobre a parte de visualização de imagens matplotlib , mas essa é a OT.
fonte
Um exemplo simples pode ser,
n agora, se quisermos que esse tensor a seja convertido em uma matriz numpy
Tão simples como isso!
fonte
//
não é para comentar em python. Edite sua resposta.Eu estava procurando por dias para este comando.
Isso funcionou para mim fora de qualquer sessão ou algo assim.
https://kite.com/python/answers/how-to-convert-a-tensorflow-tensor-to-a-numpy-array-in-python
fonte
Você pode usar a função de back-end do keras.
Espero que ajude!
fonte