Comments (5)
I fixed all the (apparent) issues with C and BLAS, and now all BLAS functions are called with the right matrix/version dimensions. I gdb'ed them and they all appear to write in the proper memory location. Also, I cleaned up the C file a little bit. Notice that I created a new branch, caa_blas, for the development of the blas-based algorithm
Awesome!
Now I should start testing that I implemented the logic of the algorithm as a whole correctly. I think a good approach would be to first have a unit test for each of the three functions, and then some integration test for the algorithm. That would be good especially if you plan to push the software as a public library, and to guarantee the correctness of future edits. What do you think?
Sounds good.
For the specifics of testing, I can't exactly replicate the python test, as I doubt that the NumPy Mersenne Twister yields the same sequences as the LCG in glibc when seeded with the same seeds (42 and 43). So, if I want to start by testing everything in C, I should find some other way to do it. Any suggestions about this? I am hoping to make much progress from the testing on.
I can provide you with pickle, npy or matlab files with X (n_examples,
n_features), y_gt "ground truth" labels (n_examples) and y_gv "given"
labels (n_examples) to do the regression tests. Then you can make sure
that your internal functions are working in your own framework
(C-based if you'd like, even though testing in Python is so much
easier, even for C libraries).
Finally, let me know when you have a chance to pass me the real testing matrices and the reference to the Python wrapping tools that you suggest, so I can also start looking at these. I know you are busy lately, so no worries.
BTW, you can also dump your random numbers in a format that both
languages can understand.
from asgd.
Quick question: did you insure that there is no leak with valgrind ?
from asgd.
I did initially but then I made some more modifications, so I'll have to
do it again. I was also planning to use Intel Inspector to double check it.
On 10/17/2011 02:22 PM, Nicolas Pinto wrote:
Quick question: did you insure that there is no leak with valgrind ?
from asgd.
Scripting e.g. valgrind in you test suite might help you get this streamlined.
from asgd.
I updated all the unit tests (which pass) except for fit. I tested fit manually and it seems definitely to be working, and I started studying the wrapping so I can make an integration test for fit from Python
from asgd.
Related Issues (17)
- BLAS and heap safety HOT 3
- The Cython wrapper cannot find the symbols defined by BLAS HOT 3
- Compute X_mean and X_std in fit().
- Use η0 / (1 + λ η0 t)^0.75 by default instead of ...^2/3.
- step_size0 should be cross validated on a small subset of the data HOT 3
- Sparsity trick on weights update
- re-parameterize annealing schedule HOT 11
- new reference for readme HOT 1
- simple_blas.h missing? HOT 2
- Working feedback
- Parameter for (exponentially) moving average
- kwargs for mini_batch settings
- Weight updates only if margin constraint violated. HOT 1
- multiclass HOT 1
- Online LOOE-like for hyper-parameters selection.
- ENH: warm-up period with exponential moving asgd and switch from sgd to asgd when empirical loss gets higher
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asgd.