https://github.com/lene/lina
Linear Algebra library in C++ and OpenCL for machine learning algorithms
https://github.com/lene/lina
Last synced: 5 months ago
JSON representation
Linear Algebra library in C++ and OpenCL for machine learning algorithms
- Host: GitHub
- URL: https://github.com/lene/lina
- Owner: lene
- License: gpl-2.0
- Created: 2015-05-05T11:41:46.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2016-03-03T15:07:30.000Z (over 10 years ago)
- Last Synced: 2025-03-21T22:02:57.586Z (over 1 year ago)
- Language: C++
- Size: 98.6 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lina
Linear Algebra library in C++ and OpenCL for machine learning algorithms.
GPU-accelerated routines for multidimensional optimization, linear regression,
logistic regression. Later: neural networks. Even later: SVM and recommender systems.
**This is pretty much dead since Google published the [TensorFlow](http://www.tensorflow.org/)
machine learning library which does anything this project can ever hope to do.**
## Dependencies:
### Boost uBLAS
sudo apt-get install libboost-dev
### ViennaCl
sudo apt-get install libviennacl-dev
### OpenCl headers and drivers
YMMV, packages to install depend on present GPU:
sudo apt-get install ocl-icd-libopencl1 ocl-icd-opencl-dev opencl-headers
### Google Test
sudo apt-get install libgtest-dev
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib
## To do
* improve RegressionSolver
* make the kind of regression a class template parameter
* add predict() function
* add function to determine training accuracy
* use smart pointers again (in gradient descent)
* logistic regression
* minimization - is there a better way than gradient descent? does GD always give so bad results in nontrivial systems?
* training accuracy
* regularization
* coursera example
* multi-class classification
* ensure that only one matrix is stored in GPU memory at each time when using LinearRegressionSolver
* gradient descent seems to run on one CPU core only, at least with logistic regression
* factor out matrix and vector types so they can be used as template parameters
* easier conversion between ublas and viennacl data types and algorithms?
* neural networks
* compile conditionally on presence of gtest so that it can be distributed without it