Iteration Stats
BlockTensorFactorization.Core.AbstractStat — Type
An AbstractStat is a type which, when created, can be applied to the four arguments (X::AbstractDecomposition, Y::AbstractArray, previous::Vector{<:AbstractDecomposition}, parameters::Dict) to (usually) return a number.
The following stats are supported inputs to the stats keyword in factorize.
Iteration
GradientNorm
GradientNNCone
ObjectiveValue
ObjectiveRatio
RelativeError
IterateNormDiff
IterateRelativeDiff
EuclideanStepSize
EuclideanLipschitz
FactorNorms
PrintStats
DisplayDecompositionDetail
BlockTensorFactorization.Core.Iteration — Type
Iteration <: AbstractStatIteration number.
BlockTensorFactorization.Core.GradientNorm — Type
GradientNorm{T} <: AbstractStat2-norm of the gradient.
BlockTensorFactorization.Core.GradientNNCone — Type
GradientNNCone{T} <: AbstractStat2-norm vector-set distance between the negative gradient and nonnegative cone at the iterate.
BlockTensorFactorization.Core.ObjectiveValue — Type
ObjectiveValue{T<:AbstractObjective} <: AbstractStatThe current objective value.
BlockTensorFactorization.Core.ObjectiveRatio — Type
ObjectiveRatio{T<:AbstractObjective} <: AbstractStatRatio between the previous and current objective value.
BlockTensorFactorization.Core.RelativeError — Type
RelativeError{T<:Function} <: AbstractStatRelative error between the decomposition model, and input array.
BlockTensorFactorization.Core.IterateNormDiff — Type
IterateNormDiff{T<:Function} <: AbstractStat2-norm of the difference between the previous and current iterate.
BlockTensorFactorization.Core.IterateRelativeDiff — Type
IterateRelativeDiff{T<:Function} <: AbstractStatRelative difference between the previous and current iterate.
BlockTensorFactorization.Core.EuclideanStepSize — Type
The 2-norm of the stepsizes that would be taken for all blocks.
For example, if there are two blocks, and we would take a stepsize of A to update one block and B to update the other, this would return sqrt(A^2 + B^2).
BlockTensorFactorization.Core.EuclideanLipschitz — Type
The 2-norm of the lipschitz constants that would be taken for all blocks.
Need the stepsizes to be lipschitz steps since it is calculated similarly to EuclideanStepSize.
BlockTensorFactorization.Core.FactorNorms — Type
FactorNorms(; norm, kwargs...)Makes a tuple containing the norm of each factor in the decomposition.
Auxiliary Stats
The following are subtype of AbstractStat but are for auxiliary features.
BlockTensorFactorization.Core.PrintStats — Type
PrintStats(; kwargs...)Does not use any of the kwargs. Simply prints the most recent row of the stats.
BlockTensorFactorization.Core.DisplayDecomposition — Type
DisplayDecomposition(; kwargs...)Does not use any of the kwargs. Simply displays the current iteration.