diff --git a/Modules/Applications/AppDimensionalityReduction/app/otbTrainDimensionalityReduction.cxx b/Modules/Applications/AppDimensionalityReduction/app/otbTrainDimensionalityReduction.cxx index dea0331ceacd22cb5966e6d86b080e5bb45b56cc..91c600722aa6e79b7d6a30aa6123f201cab8d544 100644 --- a/Modules/Applications/AppDimensionalityReduction/app/otbTrainDimensionalityReduction.cxx +++ b/Modules/Applications/AppDimensionalityReduction/app/otbTrainDimensionalityReduction.cxx @@ -59,14 +59,14 @@ private: SetParameterDescription("io.vd", "Input geometries used for training (note : all geometries from the layer will be used)"); AddParameter(ParameterType_OutputFilename, "io.out", "Output model"); - SetParameterDescription("io.out", "Output file containing the model estimated (.txt format)."); + SetParameterDescription("io.out", "Output file containing the estimated model (.txt format)."); AddParameter(ParameterType_InputFilename, "io.stats", "Input XML image statistics file"); MandatoryOff("io.stats"); SetParameterDescription("io.stats", "XML file containing mean and variance of each feature."); - AddParameter(ParameterType_StringList, "feat", "Field names to be calculated."); // + AddParameter(ParameterType_StringList, "feat", "Field names to be used for training."); // SetParameterDescription("feat","List of field names in the input vector data used as features for training."); // Superclass::DoInit(); diff --git a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainAutoencoder.txx b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainAutoencoder.txx index dc787d5d15fe012e50026adb8a3ae1e20b086dde..b12a2517e59594544d44589dce03e609abfe384b 100644 --- a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainAutoencoder.txx +++ b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainAutoencoder.txx @@ -16,87 +16,87 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> { - AddChoice("model.tiedautoencoder", "Shark Tied Autoencoder"); - AddChoice("model.autoencoder", "Shark Autoencoder"); - SetParameterDescription("model.autoencoder", + AddChoice("algorithm.tiedautoencoder", "Shark Tied Autoencoder"); + AddChoice("algorithm.autoencoder", "Shark Autoencoder"); + SetParameterDescription("algorithm.autoencoder", "This group of parameters allows setting Shark autoencoder parameters. " ); //Tied Autoencoder - AddParameter(ParameterType_Choice, "model.autoencoder.istied", + AddParameter(ParameterType_Choice, "algorithm.autoencoder.istied", "tied weighth <tied/untied>"); SetParameterDescription( - "model.autoencoder.istied", + "algorithm.autoencoder.istied", "Parameter that determine if the weights are tied or not <tied/untied>"); - AddChoice("model.autoencoder.istied.yes","Tied weigths"); - AddChoice("model.autoencoder.istied.no","Untied weights"); + AddChoice("algorithm.autoencoder.istied.yes","Tied weigths"); + AddChoice("algorithm.autoencoder.istied.no","Untied weights"); //Number Of Iterations - AddParameter(ParameterType_Int, "model.autoencoder.nbiter", + AddParameter(ParameterType_Int, "algorithm.autoencoder.nbiter", "Maximum number of iterations during training"); - SetParameterInt("model.autoencoder.nbiter",100, false); + SetParameterInt("algorithm.autoencoder.nbiter",100, false); SetParameterDescription( - "model.autoencoder.nbiter", + "algorithm.autoencoder.nbiter", "The maximum number of iterations used during training."); - AddParameter(ParameterType_Int, "model.autoencoder.nbiterfinetuning", + AddParameter(ParameterType_Int, "algorithm.autoencoder.nbiterfinetuning", "Maximum number of iterations during training"); - SetParameterInt("model.autoencoder.nbiterfinetuning",0, false); + SetParameterInt("algorithm.autoencoder.nbiterfinetuning",0, false); SetParameterDescription( - "model.autoencoder.nbiterfinetuning", + "algorithm.autoencoder.nbiterfinetuning", "The maximum number of iterations used during fine tuning of the whole network."); - AddParameter(ParameterType_Float, "model.autoencoder.epsilon", + AddParameter(ParameterType_Float, "algorithm.autoencoder.epsilon", " "); - SetParameterFloat("model.autoencoder.epsilon",0, false); + SetParameterFloat("algorithm.autoencoder.epsilon",0, false); SetParameterDescription( - "model.autoencoder.epsilon", + "algorithm.autoencoder.epsilon", " "); - AddParameter(ParameterType_Float, "model.autoencoder.initfactor", + AddParameter(ParameterType_Float, "algorithm.autoencoder.initfactor", " "); - SetParameterFloat("model.autoencoder.initfactor",1, false); + SetParameterFloat("algorithm.autoencoder.initfactor",1, false); SetParameterDescription( - "model.autoencoder.initfactor", "parameter that control the weight initialization of the autoencoder"); + "algorithm.autoencoder.initfactor", "parameter that control the weight initialization of the autoencoder"); //Number Of Hidden Neurons - AddParameter(ParameterType_StringList , "model.autoencoder.nbneuron", "Size"); - /*AddParameter(ParameterType_Int, "model.autoencoder.nbneuron", + AddParameter(ParameterType_StringList , "algorithm.autoencoder.nbneuron", "Size"); + /*AddParameter(ParameterType_Int, "algorithm.autoencoder.nbneuron", "Number of neurons in the hidden layer"); - SetParameterInt("model.autoencoder.nbneuron",10, false);*/ + SetParameterInt("algorithm.autoencoder.nbneuron",10, false);*/ SetParameterDescription( - "model.autoencoder.nbneuron", + "algorithm.autoencoder.nbneuron", "The number of neurons in each hidden layer."); //Regularization - AddParameter(ParameterType_StringList, "model.autoencoder.regularization", "Strength of the regularization"); - SetParameterDescription("model.autoencoder.regularization", - "Strength of the L2 regularization used during training"); + AddParameter(ParameterType_StringList, "algorithm.autoencoder.regularization", "Strength of the regularization"); + SetParameterDescription("algorithm.autoencoder.regularization", + "Strength of the L2 regularization used during training"); //Noise strength - AddParameter(ParameterType_StringList, "model.autoencoder.noise", "Strength of the noise"); - SetParameterDescription("model.autoencoder.noise", - "Strength of the noise"); + AddParameter(ParameterType_StringList, "algorithm.autoencoder.noise", "Strength of the noise"); + SetParameterDescription("algorithm.autoencoder.noise", + "Strength of the noise"); // Sparsity parameter - AddParameter(ParameterType_StringList, "model.autoencoder.rho", "Sparsity parameter"); - SetParameterDescription("model.autoencoder.rho", - "Sparsity parameter"); + AddParameter(ParameterType_StringList, "algorithm.autoencoder.rho", "Sparsity parameter"); + SetParameterDescription("algorithm.autoencoder.rho", + "Sparsity parameter"); // Sparsity regularization strength - AddParameter(ParameterType_StringList, "model.autoencoder.beta", "Sparsity regularization strength"); - SetParameterDescription("model.autoencoder.beta", - "Sparsity regularization strength"); + AddParameter(ParameterType_StringList, "algorithm.autoencoder.beta", "Sparsity regularization strength"); + SetParameterDescription("algorithm.autoencoder.beta", + "Sparsity regularization strength"); - AddParameter(ParameterType_OutputFilename, "model.autoencoder.learningcurve", "Learning curve"); - SetParameterDescription("model.autoencoder.learningcurve", "Learning error values"); - MandatoryOff("model.autoencoder.learningcurve"); + AddParameter(ParameterType_OutputFilename, "algorithm.autoencoder.learningcurve", "Learning curve"); + SetParameterDescription("algorithm.autoencoder.learningcurve", "Learning error values"); + MandatoryOff("algorithm.autoencoder.learningcurve"); } @@ -107,10 +107,10 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> ::BeforeTrainAutoencoder(typename ListSampleType::Pointer trainingListSample, std::string modelPath) { - std::string TiedWeigth = GetParameterString("model.autoencoder.istied"); - std::cout << TiedWeigth << std::endl; + std::string TiedWeigth = GetParameterString("algorithm.autoencoder.istied"); + std::cout << TiedWeigth << std::endl; - if(TiedWeigth == "no") + if(TiedWeigth == "no") { TrainAutoencoder<AutoencoderModelType>(trainingListSample,modelPath); } @@ -138,11 +138,11 @@ void TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue>::Trai itk::Array<float> regularization; itk::Array<float> rho; itk::Array<float> beta; - std::vector<std::basic_string<char>> s_nbneuron= GetParameterStringList("model.autoencoder.nbneuron"); - std::vector<std::basic_string<char>> s_noise= GetParameterStringList("model.autoencoder.noise"); - std::vector<std::basic_string<char>> s_regularization= GetParameterStringList("model.autoencoder.regularization"); - std::vector<std::basic_string<char>> s_rho= GetParameterStringList("model.autoencoder.rho"); - std::vector<std::basic_string<char>> s_beta= GetParameterStringList("model.autoencoder.beta"); + std::vector<std::basic_string<char>> s_nbneuron= GetParameterStringList("algorithm.autoencoder.nbneuron"); + std::vector<std::basic_string<char>> s_noise= GetParameterStringList("algorithm.autoencoder.noise"); + std::vector<std::basic_string<char>> s_regularization= GetParameterStringList("algorithm.autoencoder.regularization"); + std::vector<std::basic_string<char>> s_rho= GetParameterStringList("algorithm.autoencoder.rho"); + std::vector<std::basic_string<char>> s_beta= GetParameterStringList("algorithm.autoencoder.beta"); nb_neuron.SetSize(s_nbneuron.size()); noise.SetSize(s_nbneuron.size()); regularization.SetSize(s_nbneuron.size()); @@ -156,22 +156,22 @@ void TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue>::Trai beta[i]=std::stof(s_beta[i]); } dimredTrainer->SetNumberOfHiddenNeurons(nb_neuron); - dimredTrainer->SetNumberOfIterations(GetParameterInt("model.autoencoder.nbiter")); - dimredTrainer->SetNumberOfIterationsFineTuning(GetParameterInt("model.autoencoder.nbiterfinetuning")); - dimredTrainer->SetEpsilon(GetParameterFloat("model.autoencoder.epsilon")); - dimredTrainer->SetInitFactor(GetParameterFloat("model.autoencoder.initfactor")); + dimredTrainer->SetNumberOfIterations(GetParameterInt("algorithm.autoencoder.nbiter")); + dimredTrainer->SetNumberOfIterationsFineTuning(GetParameterInt("algorithm.autoencoder.nbiterfinetuning")); + dimredTrainer->SetEpsilon(GetParameterFloat("algorithm.autoencoder.epsilon")); + dimredTrainer->SetInitFactor(GetParameterFloat("algorithm.autoencoder.initfactor")); dimredTrainer->SetRegularization(regularization); dimredTrainer->SetNoise(noise); dimredTrainer->SetRho(rho); dimredTrainer->SetBeta(beta); dimredTrainer->SetWriteWeights(true); - if (HasValue("model.autoencoder.learningcurve") && IsParameterEnabled("model.autoencoder.learningcurve")) - { - std::cout << "yo" << std::endl; - dimredTrainer->SetWriteLearningCurve(true); - dimredTrainer->SetLearningCurveFileName(GetParameterString("model.autoencoder.learningcurve")); - } + if (HasValue("algorithm.autoencoder.learningcurve") && IsParameterEnabled("algorithm.autoencoder.learningcurve")) + { + std::cout << "yo" << std::endl; + dimredTrainer->SetWriteLearningCurve(true); + dimredTrainer->SetLearningCurveFileName(GetParameterString("algorithm.autoencoder.learningcurve")); + } dimredTrainer->SetInputListSample(trainingListSample); std::cout << "before train" << std::endl; diff --git a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainPCA.txx b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainPCA.txx index 003ebb1ccf510e81c9e848452ae4a9e4a16d793b..66a87aaade278bb00615545fdd5cd010035214d4 100644 --- a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainPCA.txx +++ b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainPCA.txx @@ -16,18 +16,18 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> { - AddChoice("model.pca", "Shark PCA"); - SetParameterDescription("model.pca", + AddChoice("algorithm.pca", "Shark PCA"); + SetParameterDescription("algorithm.pca", "This group of parameters allows setting Shark PCA parameters. " ); //Output Dimension - AddParameter(ParameterType_Int, "model.pca.dim", + AddParameter(ParameterType_Int, "algorithm.pca.dim", "Dimension of the output of the pca transformation"); - SetParameterInt("model.pca.dim",10, false); + SetParameterInt("algorithm.pca.dim",10, false); SetParameterDescription( - "model.pca.dim", + "algorithm.pca.dim", "Dimension of the output of the pca transformation."); @@ -38,7 +38,7 @@ void TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> ::TrainPCA(typename ListSampleType::Pointer trainingListSample,std::string modelPath) { typename PCAModelType::Pointer dimredTrainer = PCAModelType::New(); - dimredTrainer->SetDimension(GetParameterInt("model.pca.dim")); + dimredTrainer->SetDimension(GetParameterInt("algorithm.pca.dim")); dimredTrainer->SetInputListSample(trainingListSample); dimredTrainer->SetWriteEigenvectors(true); dimredTrainer->Train(); diff --git a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainSOM.txx b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainSOM.txx index 61975c9708c6ef8b112e10f20882fb60b6d7da23..8a05ecccd7ada09798e90b245a62c093d1995706 100644 --- a/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainSOM.txx +++ b/Modules/Applications/AppDimensionalityReduction/include/otbDimensionalityReductionTrainSOM.txx @@ -14,62 +14,62 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> ::InitSOMParams() { - AddChoice("model.som", "OTB SOM"); - SetParameterDescription("model.som", + AddChoice("algorithm.som", "OTB SOM"); + SetParameterDescription("algorithm.som", "This group of parameters allows setting SOM parameters. " ); - AddParameter(ParameterType_Int, "model.som.dim","Dimension of the map"); - SetParameterDescription("model.som.dim","Dimension of the SOM map."); + AddParameter(ParameterType_Int, "algorithm.som.dim","Dimension of the map"); + SetParameterDescription("algorithm.som.dim","Dimension of the SOM map."); - AddParameter(ParameterType_StringList , "model.som.s", "Size"); - SetParameterDescription("model.som.s", "Size of the SOM map"); - MandatoryOff("model.som.s"); + AddParameter(ParameterType_StringList , "algorithm.som.s", "Size"); + SetParameterDescription("algorithm.som.s", "Size of the SOM map"); + MandatoryOff("algorithm.som.s"); - AddParameter(ParameterType_StringList , "model.som.n", "Size Neighborhood"); - SetParameterDescription("model.som.n", "Size of the initial neighborhood in the SOM map"); - MandatoryOff("model.som.n"); + AddParameter(ParameterType_StringList , "algorithm.som.n", "Size Neighborhood"); + SetParameterDescription("algorithm.som.n", "Size of the initial neighborhood in the SOM map"); + MandatoryOff("algorithm.som.n"); - AddParameter(ParameterType_Int, "model.som.sx", "SizeX"); - SetParameterDescription("model.som.sx", "X size of the SOM map"); - MandatoryOff("model.som.sx"); + AddParameter(ParameterType_Int, "algorithm.som.sx", "SizeX"); + SetParameterDescription("algorithm.som.sx", "X size of the SOM map"); + MandatoryOff("algorithm.som.sx"); - AddParameter(ParameterType_Int, "model.som.sy", "SizeY"); - SetParameterDescription("model.som.sy", "Y size of the SOM map"); - MandatoryOff("model.som.sy"); + AddParameter(ParameterType_Int, "algorithm.som.sy", "SizeY"); + SetParameterDescription("algorithm.som.sy", "Y size of the SOM map"); + MandatoryOff("algorithm.som.sy"); - AddParameter(ParameterType_Int, "model.som.nx", "NeighborhoodX"); - SetParameterDescription("model.som.nx", "X size of the initial neighborhood in the SOM map"); - MandatoryOff("model.som.nx"); + AddParameter(ParameterType_Int, "algorithm.som.nx", "NeighborhoodX"); + SetParameterDescription("algorithm.som.nx", "X size of the initial neighborhood in the SOM map"); + MandatoryOff("algorithm.som.nx"); - AddParameter(ParameterType_Int, "model.som.ny", "NeighborhoodY"); - SetParameterDescription("model.som.ny", "Y size of the initial neighborhood in the SOM map"); - MandatoryOff("model.som.nx"); + AddParameter(ParameterType_Int, "algorithm.som.ny", "NeighborhoodY"); + SetParameterDescription("algorithm.som.ny", "Y size of the initial neighborhood in the SOM map"); + MandatoryOff("algorithm.som.nx"); - AddParameter(ParameterType_Int, "model.som.ni", "NumberIteration"); - SetParameterDescription("model.som.ni", "Number of iterations for SOM learning"); - MandatoryOff("model.som.ni"); + AddParameter(ParameterType_Int, "algorithm.som.ni", "NumberIteration"); + SetParameterDescription("algorithm.som.ni", "Number of iterations for SOM learning"); + MandatoryOff("algorithm.som.ni"); - AddParameter(ParameterType_Float, "model.som.bi", "BetaInit"); - SetParameterDescription("model.som.bi", "Initial learning coefficient"); - MandatoryOff("model.som.bi"); + AddParameter(ParameterType_Float, "algorithm.som.bi", "BetaInit"); + SetParameterDescription("algorithm.som.bi", "Initial learning coefficient"); + MandatoryOff("algorithm.som.bi"); - AddParameter(ParameterType_Float, "model.som.bf", "BetaFinal"); - SetParameterDescription("model.som.bf", "Final learning coefficient"); - MandatoryOff("model.som.bf"); + AddParameter(ParameterType_Float, "algorithm.som.bf", "BetaFinal"); + SetParameterDescription("algorithm.som.bf", "Final learning coefficient"); + MandatoryOff("algorithm.som.bf"); - AddParameter(ParameterType_Float, "model.som.iv", "InitialValue"); - SetParameterDescription("model.som.iv", "Maximum initial neuron weight"); - MandatoryOff("model.som.iv"); + AddParameter(ParameterType_Float, "algorithm.som.iv", "InitialValue"); + SetParameterDescription("algorithm.som.iv", "Maximum initial neuron weight"); + MandatoryOff("algorithm.som.iv"); - SetDefaultParameterInt("model.som.sx", 32); - SetDefaultParameterInt("model.som.sy", 32); - SetDefaultParameterInt("model.som.nx", 10); - SetDefaultParameterInt("model.som.ny", 10); - SetDefaultParameterInt("model.som.ni", 5); - SetDefaultParameterFloat("model.som.bi", 1.0); - SetDefaultParameterFloat("model.som.bf", 0.1); - SetDefaultParameterFloat("model.som.iv", 10.0); + SetDefaultParameterInt("algorithm.som.sx", 32); + SetDefaultParameterInt("algorithm.som.sy", 32); + SetDefaultParameterInt("algorithm.som.nx", 10); + SetDefaultParameterInt("algorithm.som.ny", 10); + SetDefaultParameterInt("algorithm.som.ni", 5); + SetDefaultParameterFloat("algorithm.som.bi", 1.0); + SetDefaultParameterFloat("algorithm.som.bf", 0.1); + SetDefaultParameterFloat("algorithm.som.iv", 10.0); } @@ -80,10 +80,10 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> ::BeforeTrainSOM(typename ListSampleType::Pointer trainingListSample, std::string modelPath) { - int SomDim = GetParameterInt("model.som.dim"); - std::cout << SomDim << std::endl; + int SomDim = GetParameterInt("algorithm.som.dim"); + std::cout << SomDim << std::endl; - if(SomDim == 2) + if(SomDim == 2) { TrainSOM<SOM2DModelType >(trainingListSample,modelPath); } @@ -118,23 +118,23 @@ void TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> typename somchoice::Pointer dimredTrainer = somchoice::New(); unsigned int dim = dimredTrainer->GetDimension(); std::cout << dim << std::endl; - dimredTrainer->SetNumberOfIterations(GetParameterInt("model.som.ni")); - dimredTrainer->SetBetaInit(GetParameterFloat("model.som.bi")); + dimredTrainer->SetNumberOfIterations(GetParameterInt("algorithm.som.ni")); + dimredTrainer->SetBetaInit(GetParameterFloat("algorithm.som.bi")); dimredTrainer->SetWriteMap(true); - dimredTrainer->SetBetaEnd(GetParameterFloat("model.som.bf")); - dimredTrainer->SetMaxWeight(GetParameterFloat("model.som.iv")); + dimredTrainer->SetBetaEnd(GetParameterFloat("algorithm.som.bf")); + dimredTrainer->SetMaxWeight(GetParameterFloat("algorithm.som.iv")); typename TemplateEstimatorType::SizeType size; - std::vector<std::basic_string<char>> s= GetParameterStringList("model.som.s"); + std::vector<std::basic_string<char>> s= GetParameterStringList("algorithm.som.s"); for (int i=0; i<dim; i++){ size[i]=std::stoi(s[i]); } dimredTrainer->SetMapSize(size); typename TemplateEstimatorType::SizeType radius; - std::vector<std::basic_string<char>> n= GetParameterStringList("model.som.n"); - for (int i=0; i<dim; i++){ - radius[i]=std::stoi(n[i]); - } + std::vector<std::basic_string<char>> n= GetParameterStringList("algorithm.som.n"); + for (int i=0; i<dim; i++){ + radius[i]=std::stoi(n[i]); + } dimredTrainer->SetNeighborhoodSizeInit(radius); dimredTrainer->SetListSample(trainingListSample); dimredTrainer->Train(); diff --git a/Modules/Applications/AppDimensionalityReduction/include/otbTrainDimensionalityReductionApplicationBase.txx b/Modules/Applications/AppDimensionalityReduction/include/otbTrainDimensionalityReductionApplicationBase.txx index 04065aa97c97c045f798a6bd28fb6ff496d1fbb4..77a3f477cc4ab1c331e26592bed5e883f99e3bf4 100644 --- a/Modules/Applications/AppDimensionalityReduction/include/otbTrainDimensionalityReductionApplicationBase.txx +++ b/Modules/Applications/AppDimensionalityReduction/include/otbTrainDimensionalityReductionApplicationBase.txx @@ -45,8 +45,8 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> AddDocTag(Tags::Learning); // main choice parameter that will contain all dimensionality reduction options - AddParameter(ParameterType_Choice, "model", "model to use for the training"); - SetParameterDescription("model", "Choice of the dimensionality reduction model to use for the training."); + AddParameter(ParameterType_Choice, "algorithm", "algorithm to use for the training"); + SetParameterDescription("algorithm", "Choice of the dimensionality reduction algorithm to use for the training."); InitSOMParams(); @@ -73,10 +73,10 @@ TrainDimensionalityReductionApplicationBase<TInputValue,TOutputValue> { // get the name of the chosen machine learning model - const std::string modelName = GetParameterString("model"); - // call specific train function + const std::string modelName = GetParameterString("algorithm"); + // call specific train function - if(modelName == "som") + if(modelName == "som") { BeforeTrainSOM(trainingListSample,modelPath); }