Tensor在深度学习框架中的执行流程如何简要概述?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5771个文字,预计阅读时间需要24分钟。
原文:Buf文档。审稿人:王迎澳。+0x0.前言+相信看到这篇文章的人,都对深度学习框架有所了解和熟悉,也很多会使用Python写一些神经网络相关的代码。例如,我们可以在PyTorch写出下面这样的代码:
Buf文档。审稿人:王迎澳。+0x0.引言+众多读者对深度学习框架已有所了解,并熟练使用Python进行神经网络编程。例如,使用PyTorch,我们可以轻松编写如下代码:
撰文:BBuf。审稿:王迎港。
0x0. 前言
相信看到这篇文章的人都对深度学习框架是有所了解和熟悉的,也多多少少会使用Python写一些神经网络相关的代码。例如我们可以在PyTorch写出下面的代码:
import torchx = torch.tensor([-1.0, 2.0], device="cuda")
y = torch.relu(x)
print(y)
使用PyTorch运行之后我们会获得如下结果:
tensor([0., 2.], device='cuda:0')对于x这个输入Tensor来说,它被喂给了relu这个Op,然后输出结果,一切看起来都很简单和正常。但如果有人问你是否清楚这背后到底发生了什么,relu这个Op对应的Cuda Kernel是在什么时候被GPU调用的,相信一部分人是不会很清楚的。因为包括我的大多数人习惯在舒适区使用深度学习框架,对背后的原理可能没有深入了解,所以回答不了也很正常。
这篇文章我就将尝试解开这个问题,但我并不是以PyTorch为例来讲解,而是以OneFlow为例子。为什么以OneFlow为例子呢?首先我在OneFlow工作,对这背后的执行机制比PyTorch要清楚一些,在调用链跟踪的时候会更流畅。
本文共计5771个文字,预计阅读时间需要24分钟。
原文:Buf文档。审稿人:王迎澳。+0x0.前言+相信看到这篇文章的人,都对深度学习框架有所了解和熟悉,也很多会使用Python写一些神经网络相关的代码。例如,我们可以在PyTorch写出下面这样的代码:
Buf文档。审稿人:王迎澳。+0x0.引言+众多读者对深度学习框架已有所了解,并熟练使用Python进行神经网络编程。例如,使用PyTorch,我们可以轻松编写如下代码:
撰文:BBuf。审稿:王迎港。
0x0. 前言
相信看到这篇文章的人都对深度学习框架是有所了解和熟悉的,也多多少少会使用Python写一些神经网络相关的代码。例如我们可以在PyTorch写出下面的代码:
import torchx = torch.tensor([-1.0, 2.0], device="cuda")
y = torch.relu(x)
print(y)
使用PyTorch运行之后我们会获得如下结果:
tensor([0., 2.], device='cuda:0')对于x这个输入Tensor来说,它被喂给了relu这个Op,然后输出结果,一切看起来都很简单和正常。但如果有人问你是否清楚这背后到底发生了什么,relu这个Op对应的Cuda Kernel是在什么时候被GPU调用的,相信一部分人是不会很清楚的。因为包括我的大多数人习惯在舒适区使用深度学习框架,对背后的原理可能没有深入了解,所以回答不了也很正常。
这篇文章我就将尝试解开这个问题,但我并不是以PyTorch为例来讲解,而是以OneFlow为例子。为什么以OneFlow为例子呢?首先我在OneFlow工作,对这背后的执行机制比PyTorch要清楚一些,在调用链跟踪的时候会更流畅。

