【发布时间】:2019-10-23 04:33:22
【问题描述】:
实现自定义nn.Module 类的forward() 方法与向该类添加普通方法有何不同?
听说forward()方法应该只接受和返回张量,因为PyTorch对forward()方法的输入输出做了特殊处理。但是我尝试在forward() 方法上输入/输出非张量对象,并实现一个没有forward() 方法的模块(相反,有多个自定义命名的方法,其行为类似于forward() 方法)。两种方式都很好。
【问题讨论】:
-
您知道
.forward(..)在您将nn.Module作为函数调用时会被调用(通过.__call__())吗? -
例如,如果您将模型包装在
DataParallel中,如果您不实现forward,那么您肯定会遇到问题。
标签: pytorch