Как я могу получить массив numy из результата einsum tenorflow? - PullRequest
0 голосов
/ 31 августа 2018
y = tf.einsum('aij,jk->aik', x, W) + b

y.shape возвращает следующее:

tf.Tensor 'text-representation/add:0' shape=(?, 80, 256) dtype=float32

Как я могу получить массив 80x256 в массив numpy? Я новичок в тензорном потоке и борюсь. Спасибо.

1 Ответ

0 голосов
/ 31 августа 2018

Это два способа подойти к этому:

1). Выполните Тензор в Сессии.

y = tf.einsum('aij,jk->aik', x, W) + b

sess = tf.Session()
print(sess.run(y))

# store the numpy array
my_arr = sess.run(y)
my_arr.shape

sess.close()  # close the session object

2). Используйте Eager Execution для немедленного выполнения.

# enable eager execution
tf.enable_eager_execution()

y = tf.einsum('aij,jk->aik', x, W) + b
print(y)

Обратите внимание, однако, что для использования Eager Execution его необходимо активировать перед выполнением любой другой операции на терминале. Более того, когда Eager Execution включено, его нельзя отключить, пока терминал не будет перезапущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...