DEV Community

Hello tensorflow

Monica Dinculescu on May 22, 2018

Machine Learning (ML) is the dope new thing that everyone’s talking about, because it’s really good at learning from data so that it can predict si...
Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Great article but I have to wonder; why would they build a JS version of Tensorflow? As far as I'm aware most ML is done on-server and while JS is great for building applications, it hardly seems powerful enough to do ML with.

Collapse
 
notwaldorf profile image
Monica Dinculescu

It working on node.js aside (which is on the server), having a JS version lowers the barrier of entry, imo -- spinning up a quick demo just to figure out if you're even interested in this makes it waaaaaay more approachable to ML beginners

Collapse
 
johnpaulada profile image
John Paul Ada

Yeah. In our country (Philippines), there are waaaaaayyy more JavaScript developers than Python developers because that's what's taught in school. So introducing this will really make it easier for more developers to get into the ML space. 🎉

Collapse
 
joshcheek profile image
Josh Cheek

+1 this makes it available to a huge audience without them needing to learn a new language and platform at the same time.

ALSO!! With WebAssembly and WebGL, the browser is continuing to become a legitimate platform. It's less and less accurate to think of JS as just an interpreted language, its APIs, optimizations, and tooling are making it a viable target for abstract machine code and even code that runs on a GPU. In that regard, this makes total sense, and as I think about it, I'm surprised it didn't happen sooner!

Collapse
 
johnpaulada profile image
John Paul Ada

It's a revolutionary development for me because I use JavaScript for everything! 😂
From web, mobile, desktop, even VR -- I use JavaScript to build all of those things.
Now that JavaScript has the powers of TensorFlow.js (which is easier to use than the previous Deeplearn.js), we are now able to bring the power of ML and AI to all of those platforms, effectively democratizing AI. 🎉

Collapse
 
mrm8488 profile image
Manuel Romero

The reason to bring Tensorflow to the browser is mostly to work with pre trained models. What is CPU intensive is training the model. Anyway you can do both things in JS. But IMO, using JS to train a model is not an efficient approach.

Collapse
 
oninross profile image
Nino Ross Rodriguez

Imagine cutting the time to send an image from the browser to the server, make an enquiry, send it back to the browser. the beauty of clientside processing

Collapse
 
andreanidouglas profile image
Douglas R Andreani • Edited

Well, why not?

Also they are supporting node.js now

Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Every language has its strengths. Math is not JS's strength so why use it for something that's inherently math-heavy?

Thread Thread
 
andreanidouglas profile image
Douglas R Andreani • Edited

if I'm not mistaken, tensorflow utilizes WebGL to operate on hardware (mainly GPU) so the performance hit by js is not aggressive.

Also, it can be a learning platform for people that are more used to JS, it can start here and move to another language later.

Thread Thread
 
gempio profile image
Maciej Musialek

Also saying "Math is not JS's strength' is somewhat of an invalid statement. We shouldn't establish strengths of a language based on popular opinion. We should consider how the interpreters themselves operate with a language. It's possible to find research that shows node.js being considerably faster than python which by pop culture is good with math. In the end if your task is math heavy you will need to adapt the language to your needs and have a strong understanding about how it works. If you do that it won't matter that much which language you'll use to get your results and bring people on the ML band wagon.

Couple of sources:

Thread Thread
 
ben profile image
Ben Halpern

I think the JS ecosystem is so big I'd assume it would have a library for everything. Maybe it's not the ideal language for lots of things but these days it's the universal tool.

Thread Thread
 
dubyabrian profile image
W. Brian Gourlie

(Not sure if I'm replying to the intended comment, I'm somewhat confused by the lack of a reply button on certain comments)

It's possible to find research that shows node.js being considerably faster than python which by pop culture is good with math.

This isn't really a fair comparison. Nodejs is a V8-based javascript runtime that does just-in-time compilation and python is just a language. There are Python runtimes that also do just-in-time compilation, so a fair comparison would involve comparable runtimes.

Collapse
 
johnpaulada profile image
John Paul Ada

They're planning to have Node support soon so it would be easier to work with GPUs. That's what I heard. Right now, this version is built for running in the browser. 😁

Collapse
 
jperasmus profile image
JP Erasmus

Atwood’s law 🤗

Collapse
 
ben profile image
Ben Halpern

I love where Tensorflow is going. It seems like this power is becoming more and more accessible every day. And it's definitely posts like this which help the process along. Thanks a lot Monica!

Collapse
 
goyder profile image
goyder • Edited

Between fast.ai, the host of paid courses, the seemingly never ending blog posts that go into fantastic detail, and the publicly available papers for Arxiv, making a start in deep learning is surprisingly democratic and open. It’s very neat.

Collapse
 
robdodson profile image
Rob Dodson

For folks curious about the performance of tensorflow.js in the browser, take a look at the team's Google I/O talk which contains a few benchmarks (and some neat demos). youtube.com/watch?v=OmofOvMApTU

Because tf.js uses webGL and the GPUs on the user's machine, it's surprisingly capable!

Collapse
 
johnpaulada profile image
John Paul Ada

Loving the TensorFlow ecosystem right now. Especially TensorFlow.js! 🔥
Talked about it during the TensorFlow Dev Summit Extended Manila here in the Philippines. 😁

The Layers API is awesome but it would be great if they also ship the Estimators API. That would be super cool. 😎

Collapse
 
dtrimsd profile image
Dave

Thank you for the article and the demo app you wrote. It gave my a simple problem that I could understand, and the how and why you did the things to solve it.

I've been wanting to work with Google's Cloud Machine Learning Engine which is also based on tensorflow. Your demo is giving me something I can poke and prod to gain some understanding of the issues before I tackle Google's.

I'd like to work with the technology from the stand point of how to identify an appropriate problem, define it well, setup the inputs for something like Google's, and work with the output. I'll let Google handle the math. ;o)

I'd like to build something using JavaScript to access their api. I also like how you displayed the output. I've been looking for a simple tool like the plotly.js you used. Please don't look too close at any code I write I may borrow some of yours. ;o)

I haven't found good articles on using, and coding, AI this way. You explain things very well. Have you considered writing something for this perspective?

Thank you again.

Collapse
 
entrptaher profile image
Md Abu Taher • Edited

This is a great project. But I don't understand it fully yet. ¯\(ツ)
Gotta train myself more about how training a computer works.

Collapse
 
felipperegazio profile image
Felippe Regazio

Really nice. Im experimenting tensorflow in Py. Gonna give a try to js too