diff --git a/src/model/module.cpp b/src/model/module.cpp index 7cfde81..4fd2728 100644 --- a/src/model/module.cpp +++ b/src/model/module.cpp @@ -5,8 +5,16 @@ using namespace CUDANet; void Module::addLayer(const std::string& name, Layers::SequentialLayer* layer) { - layers.push_back({ name, layer }); - layerMap[name] = layer; + Module* module = dynamic_cast(layer); + + if (module != nullptr) { + layers.push_back({ name, module }); + for (const auto& moduleLayer : module->getLayers()) { + layerMap[moduleLayer.first] = moduleLayer.second; + } + + return; + } } Layers::SequentialLayer* Module::getLayer(const std::string& name) {