tensorflow和tensorflow-gpu区别,tensorflow和gpu的关系
本文主要介绍Tensorflow中cpu和gpu的区别,有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
00-1010 CPU和gpu的区别:部分术语比较(tensorflow和pytorch/cpu和gpu/)tensorflow和pytorchcpu和gpucuda
目录
在Tensorflow中使用gpu和cpu是有很大区别的。在小数据集的情况下,cpu和gpu的性能相差不大。
但在大数据集的情况下,cpu时间增加明显,而gpu变化不明显。
然而,我的笔记本电脑的风扇终于满功率运行。
将张量流作为tf导入
导入时间
将numpy作为np导入
将matplotlib.pyplot作为plt导入
定义cpu_run(编号):
带有tf.device(/cpu:0):
cpu_a=tf.random.normal([1,num])
cpu_b=tf.random.normal([num,1])
c=tf.matmul(cpu_a,cpu_b)
返回c
def gpu_run(编号):
使用tf.device(/gpu:0):
gpu_a=tf.random.normal([1,num])
gpu_b=tf.random.normal([num,1])
c=tf.matmul(gpu_a,gpu_b)
返回c
k=10
m=7
cpu_result=np.arange(m,dtype=np.float32)
gpu_result=np.arange(m,dtype=np.float32)
x_time=np.arange(m)
对于范围(m):内的I
k=k*10
x_time[i]=k
cpu_str=cpu_run( str(k))
gpu_str=gpu_run( str(k))
#print(cpu_str)
cpu_time=timeit.timeit(cpu_str, from __main__ import cpu_run ,number=10)
gpu_time=timeit.timeit(gpu_str, from __main__ import gpu_run ,number=10)
#正式计算10次,取平均时间。
cpu_time=timeit.timeit(cpu_str, from __main__ import cpu_run ,number=10)
gpu_time=timeit.timeit(gpu_str, from __main__ import gpu_run ,number=10)
cpu_result[i]=cpu_time
gpu_result[i]=gpu_time
打印(cpu_result)
打印(gpu_result)
fig,ax=plt.subplots()
ax.set_xscale(log )
ax.set_adjustable(datalim )
ax . plot(x _时间,cpu _结果)
ax . plot(x _时间,gpu _结果)
ax.grid()
plt.draw()
plt.show()
蓝线是cpu时间,红线是gpu时间。
使用cpu和gpu的区别
一些术语的比较(tensorflow和pytorch/cpu和gpu/)
Pytorch是动态框架,tensorflow是静态框架。Tensorflow是一个静态的框架,体现在需要先建立一个tensorflow的计算图,这样的计算图建立后是不能更改的,之后会导入不同的数据进行计算。这种静态框架带来的问题是,固定的计算过程必然带来不灵活。如果要改变计算逻辑或随时间变化的计算逻辑,则不能实现这种动态计算张量流。Pytorch是一个动态框架。和python的逻辑一样,对变量的任何操作都是灵活的。一个好的框架需要具备三点:(1)能够轻松实现大型计算图;(2)能自动计算变量的导数;以及(3)它可以简单地在GPU上运行。pytorch的三点都可以在gpu上实现更好的tensorflow分布式计算,在数据量巨大的情况下效率比pytorch更高。Tensorflow很多企业都在用,pytorch更多的是用在学术研究上。Pytorch包括三个层次:张量/变量/模块。张量就是张量的意思。因为是矩阵的运算,所以适合在矩阵上运行。它是可变张量的封装。封装的目的是为了保留变量在整个计算图中的位置,并知道计算图中变量之间的相互依赖关系,以便反算梯度。模块是更高的层次,是神经网络层次,可以直接调用全连接层、卷积层等神经网络。
tensorflow和pytorch
带cpu的核比较少,但是单核的计算能力很强。gpu:的核更多,每个核的计算能力不如cpu,更适合并行计算,比如矩阵计算。深度学习就是大量的矩阵计算。
cpu和gpu
直接写cuda代码和写汇编语言差不多。cudnn比cuda先进,cudnn比CUDNN先进。使用tensorflow/caffe/pytorch框架是我的亲身经历。希望大家能给我们一个参考,支持热门的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。