是否所有torch::nn::Linear, torch::nn::Conv1d, torch::nn::Conv2d, ... torch::nn::GRU, ....
都继承了这个类? torch::nn::Module
似乎是一个不错的选择,虽然有一个叫做torch::nn::Cloneable
的中产阶级,所以torch::nn::Module
不起作用。此外,torch::nn::Cloneable
本身是一个模板,因此需要在声明中输入。我想创建一个具有class model
的通用std::vector<the common class> layers
,以便稍后我可以用我想要的任何类型的图层填充layers
,例如Linear, LSTM,
等。在当前的API中是否有这样的功能?这可以在python中轻松完成,虽然这里我们需要声明,这会阻碍python的简易性。
谢谢,Afshin
我发现nn::sequential
可以用于此目的,它不需要前向实现,这可能是一个积极的点,同时也是一个负面的点。 nn::sequential
已经要求每个模块都有一个前向实现,并按照它们添加的顺序调用前向函数。因此,不能创建像Dense-Net这样的ad-hock非常规前向传递,尽管它很好足以满足一般用途。
此外,似乎nn::sequential
只使用std::vector<nn::AnyModule>
作为其底层模块列表。因此,也可以使用std::vector<nn::AnyModule>
。