字幕表 動画を再生する
[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]