此代码来自 PyTorch 转换器:
self.linear1 = Linear(d_model, dim_feedforward, **factory_kwargs)
self.dropout = Dropout(dropout)
self.linear2 = Linear(dim_feedforward, d_model, **factory_kwargs)
self.norm1 = LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs)
self.norm2 = LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs)
self.norm3 = LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs)
self.dropout1 = Dropout(dropout)
self.dropout2 = Dropout(dropout)
self.dropout3 = Dropout(dropout)
Run Code Online (Sandbox Code Playgroud)
为什么他们要添加self.dropout1, ...2,...3当self.dropout已经存在并且是完全相同的功能时?
self.linear1另外,( , self.linear2) 和 之间有什么区别self.linear?