Pytorch 访问nn.Sequential类模块中的函数

Pytorch 访问nn.Sequential类模块中的函数,pytorch,Pytorch,在运行nn.Sequential时,我包含了一个类模块列表(这将是神经网络的层)。当运行nn.Sequential时,它调用模块的前向函数。然而,每个类模块都有一个函数,我想在nn.Sequential运行时访问该函数。运行nn.Sequential时,如何访问和运行此函数?您可以使用挂钩来实现此目的。让我们考虑下面的例子在VGG16:上演示。 这是网络体系结构: 假设我们想要监控featuresSequential中的层(2)的输入和输出(您在上面看到的那个层)。 为此,我们注册了一个名为m

在运行nn.Sequential时,我包含了一个类模块列表(这将是神经网络的层)。当运行nn.Sequential时,它调用模块的前向函数。然而,每个类模块都有一个函数,我想在nn.Sequential运行时访问该函数。运行nn.Sequential时,如何访问和运行此函数?

您可以使用挂钩来实现此目的。让我们考虑下面的例子在VGG16:

上演示。 这是网络体系结构:

假设我们想要监控features
Sequential
中的层(2)的输入和输出(您在上面看到的那个层)。 为此,我们注册了一个名为
my_hook
的前弯钩,它将在任何向前传球时调用:

导入火炬
从torchvision.models导入vgg16
def my_挂钩(自身、输入、输出):
打印(“我的钩的输出”)
打印('输入:',输入)
打印('输出:',输出)
#样本网络:
net=vgg16()
#注册前挂钩:
net.features[2]。注册前钩子(我的钩子)
#测试:
img=火炬。随机数(1,3512512)
out=net(img)#将触发my_钩子,您正在查找的数据将被打印出来