namespace nntrainer {
NeuralNetwork::NeuralNetwork() :
- model_props(props::LossType(), {}, {}, props::ClipGradByGlobalNorm()),
+ model_props(props::LossType(), {}, {}, props::ClipGradByGlobalNorm(),
+ props::LossScale()),
model_flex_props(
props::Epochs(), props::TrainingBatchSize(), props::SavePath(),
props::ContinueTrain(), props::SaveBestPath(), props::MemoryOptimization(),
props::MemorySwap(), props::MemorySwapPath(), props::MemorySwapLookahead(),
- props::TensorFormat(), props::ModelTensorDataType(), props::LossScale()),
+ props::TensorFormat(), props::ModelTensorDataType()),
load_path(std::string()),
epoch_idx(0),
iter(0),
}
NeuralNetwork::NeuralNetwork(AppContext app_context_) :
- model_props(props::LossType(), {}, {}, props::ClipGradByGlobalNorm()),
+ model_props(props::LossType(), {}, {}, props::ClipGradByGlobalNorm(),
+ props::LossScale()),
model_flex_props(
props::Epochs(), props::TrainingBatchSize(), props::SavePath(),
props::ContinueTrain(), props::SaveBestPath(), props::MemoryOptimization(),
props::MemorySwap(), props::MemorySwapPath(), props::MemorySwapLookahead(),
- props::TensorFormat(), props::ModelTensorDataType(), props::LossScale()),
+ props::TensorFormat(), props::ModelTensorDataType()),
load_path(std::string()),
epoch_idx(0),
iter(0),
const std::string tensor_type =
to_string(std::get<props::ModelTensorDataType>(model_flex_props));
- const float loss_scale = std::get<props::LossScale>(model_flex_props);
model_graph = NetworkGraph(memory_swap, memory_swap_path, lookahead,
- tensor_format, tensor_type, loss_scale);
+ tensor_format, tensor_type);
model_graph.setMemoryOptimizations(
std::get<props::MemoryOptimization>(model_flex_props));
const std::string file_path) override;
private:
- using FlexiblePropTypes = std::tuple<
- props::Epochs, props::TrainingBatchSize, props::SavePath,
- props::ContinueTrain, props::SaveBestPath, props::MemoryOptimization,
- props::MemorySwap, props::MemorySwapPath, props::MemorySwapLookahead,
- props::TensorFormat, props::ModelTensorDataType, props::LossScale>;
+ using FlexiblePropTypes =
+ std::tuple<props::Epochs, props::TrainingBatchSize, props::SavePath,
+ props::ContinueTrain, props::SaveBestPath,
+ props::MemoryOptimization, props::MemorySwap,
+ props::MemorySwapPath, props::MemorySwapLookahead,
+ props::TensorFormat, props::ModelTensorDataType>;
using RigidPropTypes =
std::tuple<props::LossType, std::vector<props::InputConnection>,
- std::vector<props::LabelLayer>, props::ClipGradByGlobalNorm>;
+ std::vector<props::LabelLayer>, props::ClipGradByGlobalNorm,
+ props::LossScale>;
RigidPropTypes model_props; /**< model props */
FlexiblePropTypes model_flex_props; /**< model train props */