您的位置:首页 > 文旅 > 美景 > 牡丹江疫情最新政策_青岛公司建站网站_百度手机助手app官方下载_软文营销文章范文

牡丹江疫情最新政策_青岛公司建站网站_百度手机助手app官方下载_软文营销文章范文

2024/12/23 9:24:58 来源:https://blog.csdn.net/weixin_45207619/article/details/142496168  浏览:    关键词:牡丹江疫情最新政策_青岛公司建站网站_百度手机助手app官方下载_软文营销文章范文
牡丹江疫情最新政策_青岛公司建站网站_百度手机助手app官方下载_软文营销文章范文

笔者最近在尝试实现AlexNet的底层算子,基于pytorch的框架,本文主要记录一下pytorch中是如何实现relu算子的。
首先最外层是位于torch\nn\modules\activation.py,主要代码如下:

    __constants__ = ["inplace"]inplace: booldef __init__(self, inplace: bool = False):super().__init__()self.inplace = inplacedef forward(self, input: Tensor) -> Tensor:return F.relu(input, inplace=self.inplace)def extra_repr(self) -> str:inplace_str = "inplace=True" if self.inplace else ""return inplace_str

调用的是位于torch\nn\functional.py的如下代码:

def relu(input: Tensor, inplace: bool = False) -> Tensor:  # noqa: D400,D402r"""relu(input, inplace=False) -> TensorApplies the rectified linear unit function element-wise. See:class:`~torch.nn.ReLU` for more details."""if has_torch_function_unary(input):return handle_torch_function(relu, (input,), input, inplace=inplace)if inplace:result = torch.relu_(input)else:result = torch.relu(input)return result

然后调用的是aten\src\ATen\native\Activation.cpp的如下代码:

Tensor relu(const Tensor & self) {TORCH_CHECK(self.scalar_type() != at::kBool, "Boolean inputs not supported for relu");return at::clamp_min(self, 0);
}

可以看到,主要就是一个大小的比较。

pytorch调试工具

先说问题,只能看到python的处理逻辑,不能看到底层的C++的处理逻辑。
如何使用,参考的是这篇文章。注意,pdb虽然是python内置的包,但是仍然需要通过import pdb导入才能使用。

还有一个问题就是,pytorch是如何通过python代码调用C++代码的,留到下一篇博文更新。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com