-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathREADME
More file actions
44 lines (29 loc) · 2.54 KB
/
Copy pathREADME
File metadata and controls
44 lines (29 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#############################################################################################
# VEST: Very Sparse Factorization of Large-Scale Tensors
#
#
# This software is free of charge under research purposes.
# For commercial purposes, please contact the author.
#############################################################################################
1. Introduction
VEST is a scalable Tucker factorization method whose result is very sparse.
There are four source codes in src folder.
VEST_A1.cpp is the source of VEST^{Auto}_{L_1}, VEST_AF.cpp is the source of VEST^{Auto}_{L_F}, VEST_M1.cpp is the source of VEST^{Manual}_{L_1}, and VEST_MF.cpp is the source of VEST^{Manual}_{L_F}.
If you want detail function of each code, check the paper.
2. Usage
[Step 1] Install the attached Armadillo, LAPACK, and BLAS libraries.
P-Tucker requires Armadillo and OpenMP libraries.
Armadillo library is available at the lib directory or http://arma.sourceforge.net/download.html.
Notice that Armadillo needs LAPACK and BLAS libraries, and they are also available at the lib directory.
OpenMP version 2.0 or higher is required for P-Tucker. (It is installed by default if you use gcc/g++ compiler)
[Step 2] Compile and run VEST
If you successfully install all libraries, "make" command will create executable files and execute them.
Makefile compile and execute VEST with two script files, compile.sh and do_VEST.sh.
compile.sh file contains command to compile VEST codes (ex. g++ -O2 -fopenmp -mcmodel=medium -w -o [executable file name] [target cpp file] -larmadillo -llapack -lblas -DARMA_DONT_USE_WRAPPER)
do_VEST.sh file contains command to execute each VEST programs.
The executable file takes 5+N(=order) or 6+N arguments, which are the path of input training tensor file, input test tensor file, path of directory for storing results, tensor order(=N), tensor rank1, ..., tensor rankN, (pruning rate if manual mode) and number of threads. The arguments MUST BE valid and in the above order.
ex) ./VEST_A1 input_train.txt input_test.txt result/ 3 10 10 10 20
./VEST_M1 input_train.txt input_test.txt result/ 3 10 10 10 0.5 20
If you put the command properly, VEST will write all values of factor matrices and a core tensor in the result directory set by an argument. (PLEASE MAKE SURE THAT YOU HAVE A WRITE PERMISSION TO THE RESULT DIRECTORY!)
ex) result/FACTOR1, result/CORETENSOR
We note that input tensors must follow base-1 indexing and outputs are based on base-0 indexing.