You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create / use AbstractCPD type and consider other representations
Create abstract TensorFactorization type and define an interface
Better / more complete implementation of getindex for CPD
See if there are cases where it is faster to compute the MTTKRP column by column (to avoid forming full Khatri-Rao products which could be expensive when the rank is large)
Improve docstrings for mttkrp and khatrirao, add more discussion / explanations / teaching (what exactly do they compute? what are some of the techniques used to make the implementations efficient?)
Add tests for mttkrp and khatrirao specifically
Have multiple algorithms for mttkrp and khatrirao (including old/simple/straightforward/naive implementations) and possibly put them in a separate TensorKernels module
Better to store factor matrices by component rather than by mode?
Issue to track things that should be done before we tag 1.0:
AbstractLoss
types and handle custom case with new type #12init
one of the arguments #48grad_U
,grad_λ!
, andgrad_λ
functionsLossFunctions.jl
StableRNG
s in testing/benchmarking - remove use ofRandom.seed!
CPD
#16AbstractArray
s includingOffsetArray
sCONTRIBUTING.md
(e.g., like https://github.com/Ferrite-FEM/Ferrite.jl/blob/master/CONTRIBUTING.md#documentation)Base.Fix
in place of anonymous functions (ref: CreateBase.Fix
as generalFix1
/Fix2
for partially-applied functions JuliaLang/julia#54653)public
: https://julialang.org/blog/2024/10/julia-1.11-highlights/#new_public_keywordOther ideas:
default_constraints(...)
->GCPConstraints.default(...)
Float64
decompositions (GPUArrays? Units?)AbstractCPD
type and consider other representationsTensorFactorization
type and define an interfacegetindex
forCPD
mttkrp
andkhatrirao
, add more discussion / explanations / teaching (what exactly do they compute? what are some of the techniques used to make the implementations efficient?)mttkrp
andkhatrirao
specificallymttkrp
andkhatrirao
(including old/simple/straightforward/naive implementations) and possibly put them in a separateTensorKernels
moduleconvert
methods (cf: https://github.com/JuliaLang/julia/blob/0e6d7972c62eb1dedaf00ea9b966a0060e2effb8/stdlib/LinearAlgebra/src/factorization.jl#L101-L104)Array
(split into product of two khatri-rao's)permutecomps!
defined in terms of swaps, analogous to: https://github.com/JuliaLang/julia/blob/99d1d6723d72d43074b5d2765e63d08439989e8e/base/combinatorics.jl#L66-L95permutecomps
orsortcomps
that uses a reference tensor as in: http://tensorly.org/stable/modules/generated/tensorly.cp_tensor.cp_permute_factors.htmlSubCPD
type that provides a view into aCPD. Note: the CPD type actually already supports "views" in a sense since the
λand
Ufields can themselves be
SubArray`s, but this could be a bit confusing for new users. Ref: https://github.com/JuliaLang/julia/blob/48d4fd48430af58502699fdf3504b90589df3852/base/subarray.jlgetλ
andgetU
functions. Ref: https://docs.julialang.org/en/v1/manual/style-guide/#Prefer-exported-methods-over-direct-field-accessThe text was updated successfully, but these errors were encountered: