
Gluon – Deep Learning API from AWS and Microsoft - jeffbarr
https://aws.amazon.com/blogs/aws/introducing-gluon-a-new-library-for-machine-learning-from-aws-and-microsoft/
======
vonnik
Gluon is an attempt by Microsoft and Amazon to regain some influence in AI
tools. Keras looked like it was going to become the standard high-level API,
but now Theano is dead, and CNTK and MxNet are controlled by Google's rivals,
and they're ganging up against Google's tools. Francois Chollet is committed
to keeping Keras neutral, but he's still a Google engineer, and that probably
makes Microsoft and Amazon nervous. This is the equivalent of Microsoft
creating C# in response to Java. The company that controls the API, has
enormous influence on the ecosystem built atop the API, just like Google has
had with Android, or MSFT with Windows. MSFT and AMZN are carving out their
own user base, or trying to, at the price of fragmenting the Python community.

~~~
Narew
Unlike Keras and Tensorflow, Gluon is Define-by-run Deeplearning framework
like Pytorch, Chainer. Network definition/debugging/flexibility are really
better with dynamic network (define-by-run). That's why Facebook seem to use
Pytorch for research and caffe2 for deployment. Gluon/Mxnet can do both
define-by-run with Gluon API and "standard" define-and-run with it's Module
API.

~~~
agibsonccc
I think you're both right here. Competition will force the other to innovate.
I don't think end users lose by there being multiple interfaces even if
fragmentation is ultimately what happens here.

Standard formats and interop will help fix that.

------
staticelf
Can someone please shed light to why so many ML tools and frameworks are being
implemented in Python? What makes Python so special for doing ML?

Personally, I would love for MS to release or support a .NET based ML toolkit.
There is open source stuff like [http://accord-framework.net](http://accord-
framework.net) but I would assume that it isn't as big nor complete as a
framework being supported by a major corporation.

~~~
saurik
[https://jeffknupp.com/blog/2017/09/15/python-is-the-
fastest-...](https://jeffknupp.com/blog/2017/09/15/python-is-the-fastest-
growing-programming-language-due-to-a-feature-youve-never-heard-of/)

> Python's Buffer Protocol: The #1 Reason Python Is The Fastest Growing
> Programming Language Today

> The buffer protocol was (and still is) an extremely low-level API for direct
> manipulation of memory buffers by other libraries. These are buffers created
> and used by the interpreter to store certain types of data (initially,
> primarily "array-like" structures where the type and size of data was known
> ahead of time) in contiguous memory.

> The primary motivation for providing such an API is to _eliminate the need
> to copy data when only reading, clarify ownership semantics of the buffer,
> and to store the data in contiguous memory (even in the case of multi-
> dimensional data structures), where read access is extremely fast_. Those
> "other libraries" that would make use of the API would almost certainly be
> written in C and highly performance sensitive. The new protocol meant that
> if I create a NumPy array of ints, other libraries can _directly access the
> underlying memory buffer_ rather than requiring indirection or, worse,
> copying of that data before it can be used.

(The italic emphasis was copied from the original article.)

~~~
stingraycharles
That doesn’t sound like a very satisfying reason to me. Isn’t a
ByteArrayBuffer in Java pretty much the same (its underlying implementation is
a char[] which can be used directly from C)?

Is there perhaps another factor, such as an existing ecosystem or that it’s
widely used in the academic field?

~~~
agibsonccc
If you use direct allocation yes. Java has great facilities for direct memory
management. (Look at the number of libraries like netty and co that exist).
The problem with java is more the friction at getting at some of the lower
level apis.

Python just has momentum and a fairly easy to use FFI.

------
indescions_2017
AWS / MSR response to dynamic graph computation paradigms such as Chainer,
Tensorflow Fold. There is certainly a distribution advantage to having this be
the default backend engine as so many store their data on S3, Redhsift.

The DyNet paper is still the best source for background on the relative
advantages to using "Define-By-Run" networks:

DyNet: The Dynamic Neural Network Toolkit

[https://arxiv.org/pdf/1701.03980v1.pdf](https://arxiv.org/pdf/1701.03980v1.pdf)

Now I just need to get to where scaling to 1000 GPUs is a problem I actually
have ;)

------
binarymax
I feel like DL/ML frameworks are getting about as frequent as the JavaScript
framework craze of the past decade. I started out on Torch and recently I've
been using Keras, and this looks quite similar to the latter. Hard to see why
one would switch to this if they are already comfortable in another.

------
wonder_bread
Is this as much of a collusion attempt against TensorFlow as it seems? Or has
this been a long time coming?

~~~
logicchains
>Is this as much of a collusion attempt against TensorFlow as it seems?

What do you mean by collusion here? Seems more like an attempt at competition
than collusion.

~~~
ninju
I guess the __collusion __comes from the cooperation of Amazon and Microsoft
on this effort

------
Artemis2
Curious to see what HN thinks of this. Are Amazon and Microsoft going against
Google and Tensorflow? Will we see Gluon Processing Units on AWS and Azure in
the near future?

~~~
gfredtech
Tensorflow was the default Keras backend on AWS, but it got replaced by MxNet

~~~
eanzenberg
Sorry that's super confusing, since currently Tensorflow is 1 of 2 possible
backends to Keras. Is this the same Keras?

~~~
genericpseudo
One of four (MXNet and CNTK alongside TF and Theano), and the Amazon deep
learning API forked Keras to default to MXNet support before it was really
ready - which irked the Keras authors quite a bit.

------
stablemap
It was marked as a dupe, but someone posted this earlier and I like that it
shows a little code:

[https://aws.amazon.com/blogs/ai/introducing-gluon-an-easy-
to...](https://aws.amazon.com/blogs/ai/introducing-gluon-an-easy-to-use-
programming-interface-for-flexible-deep-learning/)

------
eanzenberg
This is interesting, but because of the growth of the number of ML frameworks
and languages, when new ones pop up it would be great for them to release
methods to transfer existing models to their language. I would love some extra
compatibility with AWS for deploying deep learning models in prod but since I
already have existing models running in production, it's a hard sale for me to
re-train and re-implement from scratch existing work.

~~~
Narew
Recently there is more and more initiative to have standard format in
deeplearning environnement. dlpack for tensor format
([https://github.com/dmlc/dlpack](https://github.com/dmlc/dlpack)) onnx for
saved NN ([https://github.com/onnx/onnx](https://github.com/onnx/onnx)) and
tvm for execution ([http://tvmlang.org/2017/10/06/nnvm-compiler-
announcement.htm...](http://tvmlang.org/2017/10/06/nnvm-compiler-
announcement.html))

------
pjmlp
Couldn't they have chosen a better name?

[http://gluonhq.com/](http://gluonhq.com/)

~~~
xelxebar
Not to mention that "gluon" is the name of a particle (strong force carrier).
There seems to be a trend recently to ride science hype by choosing a sciency-
sounding name. :/

------
moduspwnens14
A little odd to see AWS and Microsoft partnering together on something like
this, but it's good to see regardless.

~~~
chatmasta
The most important executives at both companies live and work around Seattle,
so maybe that has something to do with it. There are some nice golf courses in
Bellevue!

~~~
jeffbarr
As far as I know, none of my colleagues can golf. But I hear that we do have
some nice courses.

~~~
bbgm
That did make me chuckle.

------
mhh__
I can't help but feel that "Gluon" is only going to conflict with Gluons (The
Bosonic particle)

~~~
Analog24
In the same way Caffe conflicts with your local coffee shop. This is far from
the first naming conflict of the internet age.

------
c0brac0bra
Page is 404ing now?

~~~
dstaheli
It's here too:
[https://aws.amazon.com/blogs/aws/](https://aws.amazon.com/blogs/aws/)

------
machineman44
Why AWS and Microsoft? Why not Amazon and Microsoft?

------
0xbear
The goal is to erode TF user base. Too little, too late: PyTorch is already
very effectively eroding the TF user base.

