[MUSIC PLAYING]
LAURENCE MORONEY:
Bring the Magnus.
MAGNUS HYTTSTEN: I'm
not sure you want that.
LAURENCE MORONEY:
Let's bring the Magnus.
MAGNUS HYTTSTEN: Hi there.
And welcome to "#AskTensorFlow,"
where we answer questions you
may have around
everything TensorFlow.
I'm Magnus Hyttsten, a developer
advocate on the TensorFlow
team.
LAURENCE MORONEY: And
I'm Laurence Moroney,
also a developer advocate
on the TensorFlow team.
MAGNUS HYTTSTEN: So
let's get right to it
with the first question.
LAURENCE MORONEY: So
the first question
comes from Aaron on Twitter.
And it is what's the "best
starting point for learning
the tools of ML and AI?
I feel like diving
right into TensorFlow
could be a little bit like
getting into the deep end!"
You know, Aaron, that's
a question that's
close to my heart and
I agree with you a lot.
So there's so many
things to learn
because this is such a
nascent area in so many ways.
So my recommendation
would be to look
at doing two different
things in parallel.
So the first of these is to
look at pretrained models that
are already out there.
And you can see how
machine learning
models will change the overall
paradigm of programming.
So instead of you
writing a lot of code
to do rules for things
like classification,
a machine learning
model has inferred
patterns between lots
of input features
to do the
classification for you.
You'll then load that
model, provide it
with a set of inputs, and it
just gives you the results.
It's not just fun, it's
actually great exposure
into the overall field of
of ML and how it works.
What you can also do
is then get low level
and start building
models yourself.
And that's what TensorFlow
is really, really good at.
It might be daunting
when you first
take a look at it because
there's just simply
so much to learn.
So my advice would be to start
doing two different things.
The first of these is to look
at some samples for something
called classification and
the classification done
using neural networks.
It sounds complicated, but
it's actually quite easy
to get started.
Check out the TensorFlow blog
for some samples and tutorials.
The first of these, I
think I wrote myself
when I started playing
with TensorFlow,
was the equivalent
of a Hello World.
And in this Hello
World for TensorFlow,
I actually ended up
training a neural network
for rain detection.
It wasn't very accurate.
It probably would have been
more accurate to open the window
to see if it was raining,
but it was a learned model.
I took data about pressure, and
temperature, and other stuff
and trained a model
that said when
it was this pressure,
this temperature,
was it raining-- yes or no?
And then when I measured
pressure and temperature,
it would tell me
if it was raining.
It was about 75% accurate.
So the second thing
then is to start
looking at some samples for
something called regression.
And these can be
used for prediction.
In many ways, regression
tools like this
was the starting
point for companies
providing AI services.
So for example, given a set
of data like characteristics
about a house, ML
regression models
have become
staggeringly accurate
at predicting the price
or value of that house.
Obviously, not just
houses-- anything
like that where you
have some prediction.
Learning regression
will help you
getting started
into understanding
how these things work.
I hope that helps.
That was a fascinating question.
Huge area of stuff to learn.
I know it seems
overwhelming, but I
promise it will be worth it.
Shall we take a look
at the next question?
MAGNUS HYTTSTEN:
Yeah, let's do that.
So the next question is from
Ashan on Stack Overflow.
And the question is,
"SKLearn has a labelencoder,
is there anything
similar in TensorFlow
to manage categorical input?"
And I'm happy to say
that there actually is.
TensorFlow has a package called
tf.feature_columns that has
many, many functions
to describe your input,
including bucketizing,
managing categories,
and in fact even to
train embeddings.
There is also a blog
post that describes
all of this stuff in
quite a lot of detail,
so you should definitely
check out the link here below.
LAURENCE MORONEY: The next
one comes from Kaique da Silva
and it's on Twitter.
And Kaique was asking,
"what's the best way to start
contributing to TensorFlow?"
Oh, I like that.
MAGNUS HYTTSTEN: Yeah.
LAURENCE MORONEY: We always
love it when people contribute.
So I think there's lots of
ways that you can do it.
So the first and most
obvious, of course,
is to take a look
at the source code.
It is open source after all.
And maybe you can find
something there that you can add
or you can improve.
There's also lots of
issues that we've tagged,
contributions welcome.
So check in and take a look
to see if they're for you.
MAGNUS HYTTSTEN: That's right,
but everyone cannot program
and create pull requests.
LAURENCE MORONEY: Or
they're deep AI specialists.
MAGNUS HYTTSTEN: Exactly,
using Python and C++.
So if you're not a
deep AI scientist who
can improve the
framework, there's
still a lot of options
that could work for you.
You could, for example,
write a blog post on Medium
and tell us all about
it because we're
looking to add things to the
official TensorFlow Medium
blog property all the time.
So we'd love to check
out any contributions
that you would be
interested in sharing.
LAURENCE MORONEY:
And if you've done
something cool in TensorFlow,
do let us know all about it.
All the time, we're looking
to highlight projects.
We have a show called
"TensorFlow Meets,"
where we'd love to have you on.
We'll talk to you about
what you're doing.
We'll get to showcase
what you're doing.
And then you just maybe would
be able to inspire and inform
lots of other people to succeed
themselves in TensorFlow.
And there's one more, right?
MAGNUS HYTTSTEN: Right.
LAURENCE MORONEY: There's one
more thing that you can do.
And that is ask
questions on here, right?
You never know--
MAGNUS HYTTSTEN: That's right.
LAURENCE MORONEY:
You never know who
might be struggling with
the same stuff that you are.
And sometimes, we're
even struggling
with it ourselves and
hearing your questions
is great to help us focus.
And the more we
see your question,
the more we'll try to answer it.
So thank you so much.
Those are lots of great ways
that you can contribute.
We'd love to see what
you do with them.
MAGNUS HYTTSTEN: OK.
Next question-- "I
keep training a DNN
classifier on the
same data, but I
get different accuracy results.
Why?"
And this is from
Laurence in Seattle.
Hey, is that you?
LAURENCE MORONEY: Maybe.
Yes, yes, OK.
You got me.
That is me.
This one did drive
me crazy for a while,
but the solution to this
is actually very simple.
It's common practice to shuffle
your training and test sets.
But of course, if you
shuffle and randomize them
before you split them, you'll
end up with different training
and test sets every time, so of
course, your results will vary.
And not only that, we
learned from the engineers
that some TensorFlow
operations are deliberately
not deterministic for
performance reasons.
So even if you haven't
shuffled your data sets
and you're always using the
same data set for training,
you may also sometimes
see some small differences
in your results.
But the main reason if
you have large differences
is because you shuffled
before you split.
So I'm guilty of that mea culpa.
MAGNUS HYTTSTEN: And
that's it for this version
of "#AskTensorFlow."
Now if you have a question
you would like to ask us,
then file it on Twitter with
the hashtag #AskTensorFlow.
Now, we're really happy that you
were here today and check out
the next version as well.
[MUSIC PLAYING]
