openmlsys / openmlsys-zh

《Machine Learning Systems: Design and Implementation》- Chinese Version
https://openmlsys.github.io
3.95k stars 429 forks source link

[勘误]`张量操作`和`神经网络操作`的区别 #397

Open hbsun2113 opened 2 years ago

hbsun2113 commented 2 years ago

4.2. 计算图的基本构成%E7%AD%89%E3%80%82)中将张量操作神经网络操作分为两个概念,但从所举的例子来看神经网络操作都是张量操作。请问为什么两者的区别是什么,为什么要分为两个概念? image

hanjr92 commented 2 years ago

你好,抱歉回复的比较晚,这个部分的操作区别主要还是有区别的,张量算子更多是对tensor本身的shape、dim、dtype以及求取特征值基础的操作,而神经网络算子是相对高阶的过程还是有别于张量操作算子的,比如矩阵乘法和卷积运算可能会认为都有矩阵相乘过程的参与,但是卷积的过程更加复杂,卷积核与特征图之间卷积运算还需要考虑特征图的padding扩充、卷积核的步长、卷积核的空洞卷积等。对应到深度学习框架里面 张量的操作更像是 ms.ops.matmul/torch.tensor.matmul 而神经网络算子对应于 ms.nn.conv/torch.nn.functional.conv,这样的分类也避免了将大量的内容集中在同一概念下。 @hbsun2113