【深度之眼】Pytorch框架班第五期-模型创建机制

【深度之眼】Pytorch框架班第五期-模型创建机制_第1张图片

调试

【深度之眼】Pytorch框架班第五期-模型创建机制_第2张图片
1、以LeNet为例,我们在第72行设置断点,并进行Debug。

【深度之眼】Pytorch框架班第五期-模型创建机制_第3张图片
2、点击C按钮进入到模型中,我们可以发现__init__()函数构建了LeNet模型需要的子模块。
【深度之眼】Pytorch框架班第五期-模型创建机制_第4张图片
3、我们一直点击B按钮,当最后一个模块构建完成后,程序跳出,LeNet模型的初始化就完成了。模型构建完成。
在这里插入图片描述
4、我们将代码运行到模型训练部分的97行,此处我们对模型输入了inputs,输出outputs。
【深度之眼】Pytorch框架班第五期-模型创建机制_第5张图片
5、点击C按钮进入该行代码,此时我们进入module.py文件中的Module类的__call__()函数中,因为LeNet继承于Module,Module有__call__()函数表示其实例可以像函数一样被调用。
【深度之眼】Pytorch框架班第五期-模型创建机制_第6张图片
6、我们将代码运行到第541行并点击C按钮进入forward函数,查看在哪里实现了forward函数,即前向传播。我们发现他跳转到了我们的LeNet类的forward函数中。在这里具体的实现了前向传播和每一层的计算,最终输出我们的分类结果out我们返回out。
【深度之眼】Pytorch框架班第五期-模型创建机制_第7张图片
在__init__()函数中构建子模块,在forward()函数中拼接子模块,完成前向传播。

【深度之眼】Pytorch框架班第五期-模型创建机制_第8张图片

你可能感兴趣的:(深度之眼之代码调试)