Practical information | You can’t miss these answers to TensorFlow questions
In 10 weeks, you will learn the basics of TensorFlow, build CNN, autoencoder, RNN, GAN and other models, and finally master the practical skills of development. Online courses will start in April, and reservations are now open at www.mooc.ai.
As the most popular deep learning framework at present, TensorFlow really needs no introduction.
Both at home and abroad, a considerable number of programmers have started deep learning development with TensorFlow and gradually embarked on the path of professional machine learning engineers.
However, TensorFlow has a certain usage threshold.
Whether it is the programming paradigm or the mathematical and statistical foundation, it is difficult for those who do not have a background in machine learning and data science to get started, not to mention the various algorithm models that need to be faced when handling different tasks.
In the TensorFlow course of AI MOOC Academy, students asked the teacher many questions, such as:
Is anaconda a good replacement for virtualenv?
Can I use other programming languages besides Python?
A running example of successful initialization and calculation?
If you have many similar questions when you are learning TF, and want to get systematic and detailed answers, we have specially invited two ThoughtWorks teachers to share with you some common problems that novices may encounter when learning TensorFlow, as well as their experience in getting started and using it.
What are the benefits of choosing TensorFlow for beginners to deep learning?
Tong Da: First of all, for novices, the TensorFlow environment configuration is really well packaged.
In comparison, installing Caffe is much more painful. If you need to use it with OpenCV in the CUDA environment, it is basically difficult for a novice to do it without spending a few days.
Secondly, there are a lot of teaching resources based on TensorFlow, both in Chinese and English, which is also very helpful for beginners.
Google is very good at building a community. It has a special group of people in China who will translate Google's developer-related progress into Chinese as soon as possible.
In addition, since it is backed by Google, TensorFlow can basically guarantee that this technology will not be a flash in the pan in the long run.
For a deep learning novice, learning any tool has a cost. If no one uses the tool just after learning it, the sunk cost is still very high.
Bai Fachuan: TensorFlow is divided into two parts: graph and session.
Because construction and execution are in different stages, the model's distribution is well supported. Therefore, learning TF can help you better understand the distributed computing of the model.
In addition, TF supports reading data directly from distributed file systems, such as the HDFS system, so it can be said that TF is a bridge connecting machine learning and big data.
What problems or difficulties do newcomers often encounter when getting started with TensorFlow?
Tong Da: The first difficulty should come from the change of programming paradigm.
Because TensorFlow uses a declarative development method and actually executes the program through the Session, this is different from the common development language programming paradigm.
If you have experience with lazy evaluation in functional programming, you will be able to accept it more easily.
Once you have mastered the basic TensorFlow operations, you should use TensorFlow to do something really meaningful.
A big difficulty at this time is that TensorFlow's error information is not so intuitive. If an execution error occurs, it is difficult for a novice to find useful information from a large number of call stacks.
Bai Fachuan: The first thing you encounter should be mathematical knowledge.
TF itself is a deep learning framework, which is different from our conventional programming frameworks such as Spring, Hibernate and the like, and is more inclined towards the mathematical part.
For example, matrix calculations, derivatives, etc. Although TF has encapsulated the corresponding calculation APIs, we still need to know these conceptual knowledge so that we know which API to use.
Secondly, TF realizes the distribution of the model by separating the graph construction and calculation parts, which is sometimes not easy for beginners to understand.
Can you tell us about your experience in learning TensorFlow? What difficulties did you encounter during the learning process and how did you solve them?
Tong Da: Before using TensorFlow, I used some other machine learning/deep learning frameworks, such as Kaldi, which is mainly used for speech recognition, Caffe for image recognition, Spark MLlib, DeepLearning4j, etc.
So getting started with TensorFlow is not particularly difficult.
As the things I did with TensorFlow became more and more complex, I started trying to extend TensorFlow, such as writing some custom Ops.
Adding custom Ops in TensorFlow needs to be implemented in C++. After compiling, the dynamic library must be linked in Python before it can be used.
This process is still somewhat complicated, especially when there are problems with the C++ code that need to be debugged, you need to use lldb (llvm's debug tool, similar to gdb), which places relatively high demands on developers.
In addition, TensorFlow is compiled using Bazel, which is a multi-language project management tool open sourced by Google. If you want to compile custom Ops, you need to spend some time studying Bazel.
In fact, Google has successfully packaged TensorFlow very well, and it can be used out of the box. However, the complexity of the framework itself is still very high, and once you want to go deeper into it, you still need to put in a lot of effort.
Bai Fachuan: TF is not the first deep learning framework I have come into contact with.
I started with big data, and later began to use Spark MLlib for development. I also used frameworks such as h2o and deeplearning4j, and finally came into contact with TF .
So for me, it’s more about learning about the changes in TF’s API design and how TF is differentiated compared to other frameworks.
For the API, the best way is to directly refer to TF's Doc.
However, I can talk about my experience getting started in machine learning. My initial job was the same as most people, doing web development or mobile development.
So my situation should be the same as most people. Later, when I started to get in touch with machine learning, I found that it was quite different from my previous thinking.
First of all, when we are engaged in general development such as mobile, we don’t care what is the inverse of a matrix, what is the derivative of a function, and even less what is chain derivation.
In machine learning, these are the basics, so I went back to college to learn linear algebra and calculus and went through them again.
TF is a deep learning framework, so when using TF, it is inevitable to understand concepts such as what is a hidden layer, what is an activation function, what are the activation functions, and how to define a loss function.
In this area, in addition to researching some books, I also learned by watching some courses at Stanford.
Of course, I also communicated and summarized with many colleagues in the process, especially for parameter adjustment, which requires more practice on my own in addition to learning.
After reading this, are you thinking: I have always wished that there was an experienced person who could guide me step by step? This is a great opportunity that you cannot miss!
Ding ding ding, the "TensorFlow & Neural Network Algorithm Advanced Application Class" taught by two teachers from ThoughtWorks at Leifeng.com AI MOOC Academy (mooc.ai) is in progress... systematically teaching and answering questions for everyone . Come and go to the course site with the editor to take a look~
Full of useful information:
Show code if you don't agree:
The instructor provides personal guidance and answers course questions in a timely manner:
There are also irregular academic lectures or activities, and MOOC students can participate first~
I believe that you, who are smart, will never miss it!
About TensorFlow Course
From elementary to advanced, theory + practice, a one-stop in-depth understanding of TensorFlow!
This course is aimed at deep learning developers and teaches how to use TensorFlow to solve specific problems such as image recognition and text analysis.
The course spans 10 weeks and will start with the principles and basic practical skills of TensorFlow, teaching students step by step how to build CNN, autoencoder, RNN, GAN and other models on TensorFlow, and ultimately master a complete set of professional skills for deep learning development based on TensorFlow.
The two instructors, Tong Da and Bai Fachuan, are senior technical experts at ThoughtWorks and have extensive experience in building big data platforms and deep learning system development projects.
Finally, for those friends who are not convenient to learn through live broadcast, if you miss the live broadcast, replay will be provided the next day, with unlimited viewing. You can follow and purchase it on the "mooc.ai" AI MOOC website.
Course start time: April 25 (Tuesday), every Tuesday and Thursday evening 20:00-21:00
Course duration: 20 hours in total, divided into 10 weeks, 2 sessions per week, 1 hour each session
Course address: http://www.mooc.ai/course/82
Online teaching, click to read the original text for course details
If you have any questions, you can search WeChat ID "
moocmm
" and add AI MOOC Academy's
Robot Xiaomu
for consultation. Feel free to tease us at any time~
Welcome to follow our service account~