是否有所有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的易用性。
谢谢, 苦参碱
答案 0 :(得分:0)
我发现nn::sequential
可以用于此目的,并且不需要前向实现,这可以是一个积极的方面,同时也可以是消极的方面。 nn::sequential
已经要求每个模块都具有正向实现,并按其添加的顺序调用正向函数。因此,无法使用这种方法创建像Dense-Net这样的ad-hock非常规正向传递,虽然对于一般用法已经足够了。
此外,似乎nn::sequential
仅使用std::vector<nn::AnyModule>
作为其基础模块列表。因此,也可以使用std::vector<nn::AnyModule>
。