Hacker News new | past | comments | ask | show | jobs | submit login

> I am very much a beginner in the space of machine learning

While the (precious and useful) advice around seem to cover mostly the bigger infrastructures, please note that

you can effectively do an important slice of machine learning work (study, personal research) with just a battery-efficiency-level CPU (not GPU), in the order of minutes, on a battery. That comes before going to "Big Data".

And there are lightweight tools: I am current enamoured with Genann («minimal, well-tested open-source library implementing feedfordward artificial neural networks (ANN) in C», by Lewis Van Winkle), a single C file of 400 lines compiling to a 40kb object, yet well sufficient to solve a number of the problems you may meet.

https://codeplea.com/genann // https://github.com/codeplea/genann

After all, is it a good idea to use tools that automate process optimization while you are learning the deal? Only partially. You should build - in general and even metaphorically - the legitimacy of your Python ops on a good C ground.

And: note that you can also build ANNs in R (and other math or stats environments). If needed or comfortable...

Also note - reminder - that the MIT lessons of Prof. Patrick Winston for the Artificial Intelligence course (classical AI with a few lessons on ANNs) are freely available. That covers the grounds before a climb into the newer techniques.




Note that this won't work with reasonably performant CNNs. Passing an image batch through a large-ish ResNet takes half a second on our GPUs, several minutes at full load on CPU. This makes training infeasible, and most models small enough to work on CPU are so far from state-of-the-art that you can't do any worthwhile computer vision research with them.


Yes, but note on the other hand that simpler infrastructures such as one-digit-wide-GB GPUs you could buy and install on your workstation could be similarly frustrating, because you may easily encounter their limits (as in, "I got this semi-specialized equipment and I cannot get an output above 1024x768?!").

So, while one is learning, the case could be for being conservative and work directly on available tools, which will be revealing on some scalability requirements, also optimistically: you do not need a full lab to do (reasonable) linear regression, nor to train networks for OCR, largely not to get acquainted with the various techniques in the discipline.

When the needs push, it sometimes will not be just high-end consumer equipment to solve your problem, so on the side of hardware already some practical notion of actual constraints of scale will help orientation. Because you do not need a GPU for most pathfinding (nor for getting a decent grasp of the techniques I am aware of), and when you will want to produce new masterpieces from a Rembrandt "ROM construct"¹ (and much humbler projects) a GPU will not suffice.

(¹reprising the Dixie Flatline module in William Gibson's Neuromancer)


Why start with vision? Do some language models. I used to train those all the time on my laptop.

GPT 5MB for the win. It really works.


...I am curious, now that I know about Fabrice Bellard's LibNC (bellard.org/libnc), if that «image batch through a large-ish ResNet» would be faster using this library - which can work on both CPU and CUDA...


Fast CPU transformers: https://bellard.org/libnc

Fast CPU convolutions: https://NN-512.com

Both are completely stand-alone (no external dependencies).


> Fast CPU transformers: https://bellard.org/libnc

And especially, from Fabrice Bellard (QEMU, FFMPEG...)

I do not know how you found it: it is not even in his site's index!

--

I see that NN-512 is a personal project of yours: congratulations! Though it seems to be a go-lang application that generates specialized C for convolutional NNs... Not a general purpose library, not for beginners.


FWIW this is the first link on the index page: https://bellard.org/nncp/ which mentions libnc as its underlying ML library.


(Yes, well, NNCP is an attempt to perform lossless data compression through ANN - which is quite interesting, and of definite theoretic interest, though yet not practical in its more defined purpose e.g. because of speed, hence presumably power efficiency. The other is the invention of water.

It is like "Let me show you my new idea for a cupboard..." - ok, nice! - "...I created through a new lightweight portable all-purpose "Fabrice Bellard"-quality Swiss army knife for automation that operates on any material and that you may use if you want" - YES!? REALLY?... Metaphors do not come close.

This, LibNC, is an Artificial Intelligence engine signed Fabrice Bellard, in low level implementation... It's a "revolution".)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: