出该问题一般来说需要检查方法使用是否正确,大部分情况下需要检查自己所写的方法或函数是否遗漏了括号。
以'builtin_function_or_method' has no object 'view'为例
错误代码如下:
attn_out = attn_out.transpose(0, 1).contiguous.view(tgt_len, bsz, embed_dim)
该代码的目的是先将attn_out的0轴和1轴交换,然后把其维度转变为[tgt_len, bsz, embed_dim]
此处错误的原因就是contiguous方法遗漏了括号。
更改为如下代码
attn_out = attn_out.transpose(0, 1).contiguous().view(tgt_len, bsz, embed_dim)
需要注意本处只是以view为例,其它函数和方法如此报错,也需要先用同样地方法进行检查更改。