/** * @file save_network.h * @brief Function for saving network. * @kaspersky_support D. Postnikov * @date 04.02.2026 * @license Apache 2.0 * @copyright © 2026 AO Kaspersky Lab * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include "annotated_network.h" #include "model_desc.h" /** * @brief Save trained network to SONATA format if model saving is enabled. * * @details This function saves the trained neural network structure to the specified path in SONATA format. It automatically * creates the target directory if it doesn't exist. * * @param model_desc model description. * @param network annotated network structure containing the trained network and metadata. */ inline void save_network(const ModelDescription& model_desc, const AnnotatedNetwork& network) { std::filesystem::create_directory(model_desc.model_saving_path_); knp::framework::sonata::save_network(network.network_, model_desc.model_saving_path_); }