Tensorflow:Tensor到numpy数组转换而无需运行任何会话

时间:2018-09-07 05:15:09

标签: python

我在tensorflow中创建了一个OP,为了进行某些处理,我需要将我的数据从tensor对象转换为numpy数组。我知道我们可以使用from datetime import datetime date_value="09-23-2019" date_time = datetime.strptime(date_value,'%m-%d-%Y') date_dict={"eventDate":date_time} writeToJSONFile(date_dict) tf.eval()来评估任何张量对象。我真正想知道的是,有没有办法在无需运行任何会话的情况下将张量转换为数组,因此我们避免使用sess.run.eval()

我们非常感谢您的帮助!

.run()

1 个答案:

答案 0 :(得分:4)

已更新

# must under eagar mode
def tensor_to_array(tensor1):
    return tensor1.numpy()

示例

>>> import tensorflow as tf
>>> tf.enable_eager_execution()
>>> def tensor_to_array(tensor1):
...     return tensor1.numpy()
...
>>> x = tf.constant([1,2,3,4])
>>> tensor_to_array(x)
array([1, 2, 3, 4], dtype=int32)

我相信您可以使用tf.eval()来完成sess.runtf.enable_eager_execution()的操作

示例

import tensorflow as tf
import numpy as np
tf.enable_eager_execution()
x = np.array([1,2,3,4])
c = tf.constant([4,3,2,1])
c+x
<tf.Tensor: id=5, shape=(4,), dtype=int32, numpy=array([5, 5, 5, 5], dtype=int32)>

有关张量流急切模式的更多详细信息,请在此处结帐:Tensorflow eager

如果不使用tf.enable_eager_execution()

import tensorflow as tf
import numpy as np
c = tf.constant([4,3,2,1])
x = np.array([1,2,3,4])
c+x
<tf.Tensor 'add:0' shape=(4,) dtype=int32>