以下代码是我用来测试性能的代码:
import time
import numpy as np
import tensorflow as tf
t = time.time()
for i in range(400):
a = np.random.uniform(0,1,(1000,2000))
print("np.random.uniform: {} seconds".format(time.time() - t))
t = time.time()
for i in range(400):
a = np.random.random((1000,2000))
print("np.random.random: {} seconds".format(time.time() - t))
t = time.time()
for i in range(400):
a = tf.random_uniform((1000,2000),dtype=tf.float64);
print("tf.random_uniform: {} seconds".format(time.time() - t))
这三个部分都生成一个均匀随机的1000*2000矩阵,精度为400倍。时间上的差异是惊人的。在我的Mac电脑上
^{pr2}$为什么tensorflow比numpy快得多?在
您刚刚创建了一个计算图,它生成一个输出随机数的操作。对于要计算的值,必须在
tf.Session
中执行图形。在我没有测试,但我相信计算时间会比以前的结果长
在本例中,
tf.random_uniform
返回一个未赋值的张量类型,tensorflow.python.framework.ops.Tensor
,如果您设置了一个会话上下文,在其中对tf.random_uniform
中的a
求值,您将看到它也需要一段时间。在例如,在
tf
的例子中,我添加了sess.run
(在一台只使用CPU的机器上),计算和具体化需要大约16秒,考虑到在输出时封送到numpy数据类型的开销,这是有意义的。在相关问题 更多 >
编程相关推荐