Pytorch在__init __()中定义图层与直接在forward()中使用之间的区别是什么?

时间:2018-05-16 17:04:20

标签: python neural-network conv-neural-network pytorch

__init__()函数中定义图层的方法,稍后转发中的调用图层和在forward()函数中直接使用图层的方法有什么区别?
在编写计算图之前,我应该在构造函数中定义计算图中的每一层(例如__init__)吗? 我可以在forward()中直接定义和使用它们吗?

1 个答案:

答案 0 :(得分:3)

您应在__init__方法中定义包含您希望在培训过程中接受培训的权重的所有内容。

您不需要在softmax中定义ReLUsigmoid__init__等激活功能,您只需在forward中调用它们即可}。

例如,辍学图层也不需要在__init__中定义,它们也可以在forward中调用。但是,在__init__中定义它们的优势在于,在评估期间可以更轻松地关闭它们(通过在模型上调用eval()

希望这很清楚。只要问你是否还有其他问题。