TrainDimensionalityReduction¶
Train a dimensionality reduction model
Description¶
Trainer for dimensionality reduction algorithms (autoencoders, PCA, SOM). All input samples are used to compute the model, like other machine learning models. The model can be used in the ImageDimensionalityReduction and VectorDimensionalityReduction applications.
Parameters¶
Input and output data¶
This group of parameters allows setting input and output data.
Input Vector Data -io.vd vectorfile
Mandatory
Input geometries used for training (note: all geometries from the layer will be used)
Output model -io.out filename [dtype]
Mandatory
Output file containing the estimated model (.txt format).
Input XML image statistics file -io.stats filename [dtype]
XML file containing mean and variance of each feature.
Field names to be used for training -feat string1 string2...
Mandatory
List of field names in the input vector data used as features for training.
algorithm to use for the training -algorithm [som|autoencoder|pca]
Default value: som
Choice of the dimensionality reduction algorithm to use for the training.
- OTB SOM
This group of parameters allows setting SOM parameters. - Shark Autoencoder
This group of parameters allows setting Shark autoencoder parameters. - Shark PCA
This group of parameters allows setting Shark PCA parameters.
OTB SOM options¶
Map size -algorithm.som.s string1 string2...
Default value: 10 10
Sizes of the SOM map (one per dimension). For instance, [12;15] means a 2D map of size 12x15. Support2D to 5D maps.
Neighborhood sizes -algorithm.som.n string1 string2...
Default value: 3 3
Sizes of the initial neighborhood in the SOM map (one per dimension). The number of sizes should be the same as the map sizes
NumberIteration -algorithm.som.ni int
Default value: 5
Number of iterations for SOM learning
BetaInit -algorithm.som.bi float
Default value: 1
Initial learning coefficient
BetaFinal -algorithm.som.bf float
Default value: 0.1
Final learning coefficient
InitialValue -algorithm.som.iv float
Default value: 10
Maximum initial neuron weight
Shark Autoencoder options¶
Maximum number of iterations during training -algorithm.autoencoder.nbiter int
Default value: 100
The maximum number of iterations used during training.
Maximum number of iterations during training -algorithm.autoencoder.nbiterfinetuning int
Default value: 0
The maximum number of iterations used during fine tuning of the whole network.
Epsilon -algorithm.autoencoder.epsilon float
Default value: 0
Epsilon
Weight initialization factor -algorithm.autoencoder.initfactor float
Default value: 1
Parameter that control the weight initialization of the autoencoder
Size -algorithm.autoencoder.nbneuron string1 string2...
Mandatory
The number of neurons in each hidden layer.
Strength of the regularization -algorithm.autoencoder.regularization string1 string2...
Mandatory
Strength of the L2 regularization used during training
Strength of the noise -algorithm.autoencoder.noise string1 string2...
Mandatory
Strength of the noise
Sparsity parameter -algorithm.autoencoder.rho string1 string2...
Mandatory
Sparsity parameter
Sparsity regularization strength -algorithm.autoencoder.beta string1 string2...
Mandatory
Sparsity regularization strength
Learning curve -algorithm.autoencoder.learningcurve filename [dtype]
Learning error values
Shark PCA options¶
Dimension of the output of the pca transformation -algorithm.pca.dim int
Default value: 10
Dimension of the output of the pca transformation.
Available RAM (MB) -ram int
Default value: 256
Available memory for processing (in MB).
Examples¶
From the command-line:
otbcli_TrainDimensionalityReduction -io.vd cuprite_samples.sqlite -io.out model.som -algorithm som -algorithm.som.s 10 10 -algorithm.som.n 3 3 -algorithm.som.ni 5 -algorithm.som.bi 1 -algorithm.som.bf 0.1 -algorithm.som.iv 10 -feat value_0 value_1 value_2 value_3 value_4 value_5 value_6 value_7 value_8 value_9
From Python:
import otbApplication
app = otbApplication.Registry.CreateApplication("TrainDimensionalityReduction")
app.SetParameterString("io.vd", "cuprite_samples.sqlite")
app.SetParameterString("io.out", "model.som")
app.SetParameterString("algorithm","som")
app.SetParameterStringList("algorithm.som.s", ['10', '10'])
app.SetParameterStringList("algorithm.som.n", ['3', '3'])
app.SetParameterInt("algorithm.som.ni", 5)
app.SetParameterFloat("algorithm.som.bi", 1)
app.SetParameterFloat("algorithm.som.bf", 0.1)
app.SetParameterFloat("algorithm.som.iv", 10)
app.SetParameterStringList("feat", ['value_0', 'value_1', 'value_2', 'value_3', 'value_4', 'value_5', 'value_6', 'value_7', 'value_8', 'value_9'])
app.ExecuteAndWriteOutput()