【发布时间】:2020-01-31 06:39:38
【问题描述】:
我正在尝试对批处理规范化进行研究,并且不得不对 pytorch BN 代码进行一些修改。我深入研究了 pytorch 代码并被 torch.nn.functional.batch_norm 卡住了,它引用了 torch.batch_norm。
问题是在torch库中无法进一步找到torch.batch_norm。有什么办法可以找到这个内置函数的源代码并重新实现它?谢谢!
【问题讨论】:
标签: pytorch
我正在尝试对批处理规范化进行研究,并且不得不对 pytorch BN 代码进行一些修改。我深入研究了 pytorch 代码并被 torch.nn.functional.batch_norm 卡住了,它引用了 torch.batch_norm。
问题是在torch库中无法进一步找到torch.batch_norm。有什么办法可以找到这个内置函数的源代码并重新实现它?谢谢!
【问题讨论】:
标签: pytorch
它在那里,但它没有在 Python 中定义。它们是在 C++ 中的 aten/ 目录中定义的。
对于 CPU,实现(其中之一,取决于输入是否连续)在这里:https://github.com/pytorch/pytorch/blob/420b37f3c67950ed93cd8aa7a12e673fcfc5567b/aten/src/ATen/native/Normalization.cpp#L61-L126
【讨论】:
batch_norm 并手动查看了结果。我一直留意 /aten 文件夹,因为这是大多数 C++ 源代码所在的位置。