关于torch.nn.Sequential中的关键字的问题,是否可以通过某种方式将关键字按顺序转发到特定模型?
model = torch.nn.Sequential(model_0, MaxPoolingChannel(1))
res = model(input_ids_2, keyword_test=mask)
在这里,只能将keyword_test转发到第一个模型。
非常感谢!
我的副本-https://discuss.pytorch.org/t/keyword-arguments-in-torch-nn-sequential/53282
答案 0 :(得分:0)
否;你不能。仅当传递给nn.Sequential
的所有模型都希望您尝试使用其forward
方法传递的参数时(至少在编写此参数时),才有可能。
可能有两种解决方法(我不了解整个案例,但从问题中可以预料到):
如果您的值是静态的,为什么不使用该值初始化您的第一个模型,并在计算期间使用self.keyword_test
访问它。
如果值是动态的,则可以将其作为输入中的固有属性;因此,您也可以在使用input_ids_2.keyword_test