Common class for Linear, Conv1d, Conv2d,..., LSTM,
Common class for Linear, Conv1d, Conv2d,..., LSTM,
有没有class所有torch::nn::Linear, torch::nn::Conv1d, torch::nn::Conv2d, ... torch::nn::GRU, ....
都继承的? torch::nn::Module
似乎是一个不错的选择,虽然中间有一个 class,叫做 torch::nn::Cloneable
,所以 torch::nn::Module
不起作用。此外,torch::nn::Cloneable
本身是一个模板,因此需要在声明中键入。
我想创建一个通用的 class model
,它有 std::vector<the common class> layers
,这样以后我可以用我想要的任何类型的图层填充 layers
,例如 Linear, LSTM,
等。是当前API有这样的能力吗?这可以在 python 中轻松完成,但这里我们需要声明,这阻碍了 python 的简单性。
谢谢,
阿夫欣
我发现nn::sequential
可以用于这个目的,而且不需要前向实现,既可以是正点,又可以是负点。 nn::sequential
已经要求每个模块都有一个前向实现,并按照它们添加的顺序调用前向函数。因此,不能像 Dense-Net 这样创建一个特别的非常规前向传递,虽然它对于一般用途来说已经足够好了。
此外,nn::sequential
似乎只是使用了一个 std::vector<nn::AnyModule>
作为它的底层模块列表。因此,也可以使用 std::vector<nn::AnyModule>
。
有没有class所有torch::nn::Linear, torch::nn::Conv1d, torch::nn::Conv2d, ... torch::nn::GRU, ....
都继承的? torch::nn::Module
似乎是一个不错的选择,虽然中间有一个 class,叫做 torch::nn::Cloneable
,所以 torch::nn::Module
不起作用。此外,torch::nn::Cloneable
本身是一个模板,因此需要在声明中键入。
我想创建一个通用的 class model
,它有 std::vector<the common class> layers
,这样以后我可以用我想要的任何类型的图层填充 layers
,例如 Linear, LSTM,
等。是当前API有这样的能力吗?这可以在 python 中轻松完成,但这里我们需要声明,这阻碍了 python 的简单性。
谢谢, 阿夫欣
我发现nn::sequential
可以用于这个目的,而且不需要前向实现,既可以是正点,又可以是负点。 nn::sequential
已经要求每个模块都有一个前向实现,并按照它们添加的顺序调用前向函数。因此,不能像 Dense-Net 这样创建一个特别的非常规前向传递,虽然它对于一般用途来说已经足够好了。
此外,nn::sequential
似乎只是使用了一个 std::vector<nn::AnyModule>
作为它的底层模块列表。因此,也可以使用 std::vector<nn::AnyModule>
。