最近正在看 PyTorch,在 PyTorch 里看到了一种写法感觉很酷,但有点疑惑,遂来请教,感谢各位大佬答疑
在创建 PyTorch 的模型时会定义一个 class,这里是我抄来的代码:
class Encoder(nn.Module):
def __init__(
self,
n_src_vocab, len_max_seq, d_word_vec,
n_layers, n_head, d_k, d_v,
d_model, d_inner, dropout=0.1):
super().__init__()
# 具体的函数逻辑我就删掉了,应该没有什么关系
def forward(self, src_seq, src_pos, return_attns=False):
# 具体的函数逻辑我就删掉了,应该没有什么关系
return enc_output,
然后在另外的函数里初始化了这个类,给对象传入参数,代码如下:
encoder = Encoder(参数)
encoder(input_data)
按照我的理解这里在调用 encoder 时就相当于调用了 forward 函数,但是不需要用encoder.forward()
这样的语法,请问这个叫什么?我该在搜什么关键词能找到这个语法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.