【问题标题】:How to find built-in function source code in pytorch如何在pytorch中找到内置函数源代码
【发布时间】:2020-01-31 06:39:38
【问题描述】:

我正在尝试对批处理规范化进行研究,并且不得不对 pytorch BN 代码进行一些修改。我深入研究了 pytorch 代码并被 torch.nn.functional.batch_norm 卡住了,它引用了 torch.batch_norm

问题是在torch库中无法进一步找到torch.batch_norm。有什么办法可以找到这个内置函数的源代码并重新实现它?谢谢!

【问题讨论】:

    标签: pytorch


    【解决方案1】:

    它在那里,但它没有在 Python 中定义。它们是在 C++ 中的 aten/ 目录中定义的。

    对于 CPU,实现(其中之一,取决于输入是否连续)在这里:https://github.com/pytorch/pytorch/blob/420b37f3c67950ed93cd8aa7a12e673fcfc5567b/aten/src/ATen/native/Normalization.cpp#L61-L126

    对于 CUDA,实现在这里:https://github.com/pytorch/pytorch/blob/7aae51cdedcbf0df5a7a8bf50a947237ac4b3ee8/aten/src/ATen/native/cudnn/BatchNorm.cpp#L52-L143

    【讨论】:

    • 谢谢,它完美地解决了我的问题。尽管我仍然很好奇您是如何准确知道代码在哪里的。它们之间是否有类似的映射?
    • 没有我知道的映射。我刚刚在 GitHub 上的存储库中搜索了 batch_norm 并手动查看了结果。我一直留意 /aten 文件夹,因为这是大多数 C++ 源代码所在的位置。
    猜你喜欢
    • 2021-09-28
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2023-03-18
    • 2018-05-11
    相关资源
    最近更新 更多