tensorflow和tensorflow-gpu区别,tensorflow和gpu的关系

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: