brien
2010-06-25
Hi,
I've been playing around with your library, which seems very useful for large matrices. I have a 100x1000000 matrix of observations (1000000 observation with 100 features each). I would like to compute the SVD of this matrix … do you have an example of using your API?
So far I have not been able to get the singular values to line up with my usual matrix packages. I have so far allocated a workspace and stepped all 1000000 observations through it.
Cheers,
Brien
Attila Axt
2010-07-27
Hi Brien! Sorry for my late answer!
I used it in the following situation: I had an RGB video of size 640x480. Each frame can be represented as an observation of a 921600 (=640x480x3) sized vector. I took 50 frames, and calculated an SVD from it (50x921600). This SVD represents a "background base", calculated from the 0-49 frames. After the 51st frame "steps" in, the SVD represents a "background base", calculated from the 1-50 frames, and so on. So I can have a SVD base which adapts to the frames near to the current frame, without recalculating the whole "batch" SVD for the near frames.
Here you can see a detailed description of the usage.
If you want to calculate the SVD of the 100x1000000 matrix once, then this library is not for you :-(.
If you wanted to use it in the above manner, then the library is not for you :-(, because you have 100 features. So you will have a 100 x m workspace (where m<=100), and for this sizes, the batch SVD calculation is faster than the incremental.
Maybe I have not understand your problem correctly (my english is poor) , so if you have any questions, please feel free to ask.
Greetings,
Attila