Difference between revisions of "TensorFlow"

From Sinfronteras
Jump to: navigation, search
(What is a tensor)
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Sidebar}}
 
{{Sidebar}}
 +
 +
* https://www.tensorflow.org/learn
 +
* https://github.com/tensorflow/tensorflow
 +
* Versions: https://www.tensorflow.org/versions
 +
 +
 
TensorFlow is an open-source software library developed by '''Google''' for machine learning and artificial intelligence. It was first released in 2015.
 
TensorFlow is an open-source software library developed by '''Google''' for machine learning and artificial intelligence. It was first released in 2015.
 
TensorFlow is primarily designed for deep learning, and usually referred to as a library for deep learning, but it can also be used for traditional machine learning tasks.
 
TensorFlow is primarily designed for deep learning, and usually referred to as a library for deep learning, but it can also be used for traditional machine learning tasks.
Line 6: Line 12:
  
  
* https://www.tensorflow.org/learn
+
[ChatGPT] TensorFlow is an end-to-end platform for developing and deploying machine learning/deep learning models. '''End-to-end''' means that TensorFlow provides a comprehensive solution for the entire process of building and using machine learning models, from data preparation to model training and deployment:
* https://github.com/tensorflow/tensorflow
+
* Data Preparation: TensorFlow provides tools and libraries for preprocessing and cleaning data, preparing it for use in machine learning models.
 +
* Model Building: TensorFlow provides a wide range of tools and libraries for building different types of machine learning models, including deep learning models, reinforcement learning models, and more.
 +
* Model Training: TensorFlow provides a powerful distributed training framework that enables users to train models on large datasets using multiple GPUs or TPUs.
 +
* Model Deployment: TensorFlow provides tools and libraries for deploying machine learning models to a wide range of platforms, including mobile devices, web servers, and more.
 +
* Monitoring and Maintenance: TensorFlow provides tools for monitoring and maintaining deployed models, including tools for debugging, profiling, and performance tuning.
 +
 
 +
 
 +
'''Some important features of TensorFlow are:'''
 +
* Allow writing fast deep learning codes (able to run on a GPU/TPU)
 +
:* GPUs (Graphics Processing Unit) are very fast at doing numerical calculations
 +
:* TPU (Tesor Processing Unit) is an AI accelerator application-specific integrated circuit (ASIC) developed by Google specifically for neural network machine learning, particularly using Google's own TensorFlow software.
  
 +
* Able to access many pre-built deep learning models (TensorFlow Hub)
  
  
Line 35: Line 52:
  
 
To take the exam and earn the certification, you must pay a fee. As of my knowledge cut-off in September 2021, the fee for the exam was $100 USD.
 
To take the exam and earn the certification, you must pay a fee. As of my knowledge cut-off in September 2021, the fee for the exam was $100 USD.
 +
 +
 +
<br />
 +
==Udemy: TensorFlow Developer Certificate in 2023: Zero to Mastery==
 +
https://www.udemy.com/course/tensorflow-developer-certificate-machine-learning-zero-to-mastery/
 +
 +
Private online classroom: https://discord.com/channels/423464391791476747/423466983208779776
 +
 +
 +
<br />
 +
===All Course Resources===
 +
Throughout the course there will be various links to different resources, however, one will be your source of truth.
 +
 +
* The course GitHub repo: https://github.com/mrdbourke/tensorflow-deep-learning
 +
 +
* All of the course notebooks are also available as a beautiful online book: https://www.learntensorflow.io
 +
 +
 +
Inside the GitHub/book will find a "Course materials" table that contains all of the materials you'll need for the course, including:
 +
* '''Lessons in code & text:''' all videos are based on these notebooks, refer to them for code and text-based explanations of different deep learning and TensorFlow concepts.
 +
* '''Lessons in code & text (from the videos):''' notebooks containing the exact code we'll be writing together during the videos.
 +
* '''Slides:''' all slides and images used to explain different concepts throughout the course.
 +
* '''Exercises & extra-curriculum:''' each section comes with a series of challenges and extra resources to help you practice your skills and learn more.
 +
 +
 +
But possibly the most important out of all of the above will be the GitHub Discussions tab: https://github.com/mrdbourke/tensorflow-deep-learning/discussions <br />
 +
If you have any questions, ideas, feedback or concerns, feel free to start a discussion thread, that way Daniel (the one writing this), Andrei and other students can read and offer help. <br />
 +
Daniel (@mrdbourke on Discord)
 +
 +
 +
'''Other resources:'''
 +
* https://zerotomastery.io/
 +
* https://www.linkedin.com/groups/12121940/
 +
* https://www.youtube.com/@ZeroToMastery
 +
 +
 +
'''Python + Machine Learning Monthly:'''
 +
* Every month, I accumulate all of the best resources and articles, as well as free resources around the web for Python Developers. If you want to stay up to date with the industry and make sure you don't miss any important news, you can check out the monthly newsletter here. It's completely free every month!
 +
: https://zerotomastery.io/blog/?tag=PM&utm_source=udemy&utm_medium=coursecontent#monthly
 +
 +
* Ps, there is also the Machine Learning Monthly and Web Developer Monthly if you are interested which you can find here:
 +
: https://zerotomastery.io/blog/?utm_source=udemy&utm_medium=coursecontent#monthly
 +
 +
 +
<br />
 +
===What we are going to cover in this course===
 +
'''Copiar la imagen que se muestra en el curso...'''
 +
 +
* TensorFlow basics and fundamentals
 +
* Preprocessing data (getting it into tensors)
 +
* Builkding and using pretrained deep learning models
 +
* Fitting a model to the data (learning petterns)
 +
* Making predictions with a model (using patterns)
 +
* Evaluating models predictions
 +
* Saving and loading models
 +
* Using a trained model to make predictions on custom data
 +
 +
 +
<br />
 +
 +
===What is a tensor===
 +
<blockquote>
 +
'''Mathematical and Physical definition of a Tensor:'''
 +
* https://www.youtube.com/watch?v=bpG3gqDM80w
 +
* https://www.youtube.com/watch?v=f5liqUk0ZTw
 +
* https://www.youtube.com/watch?v=uaQeXi4E7gA
 +
* https://www.youtube.com/watch?v=YxXyN2ifK8A&list=RDCMUCcf4LQogGFtYzPhq05uHE4g&index=1
 +
</blockquote>
 +
 +
 +
In TensorFlow, a Tensor is the fundamental data structure. It is a multi-dimensional array that represents input data, intermediate results, and output data. They are used to represent (store and manipulate) data of various types, including images, text, and numerical values.
 +
 +
Tensors can be thought of as a data structure that generalize scalars, vectors, matrices, and higher-dimensional arrays to an arbitrary number of dimensions.
 +
 +
 +
[ChatGPT] '''Tensors''' are similar to '''NumPy''' arrays in that they both represent multidimensional arrays of numerical values. However, there are some key differences between the two:
 +
* '''GPU Support:''' TensorFlow also has built-in support for GPUs, which can be used to accelerate numerical computations. While NumPy can be configured to use GPUs through external libraries like CuPy, it does not have native GPU support.
 +
 +
* '''Computation Graph:''' One major difference is that TensorFlow uses a computation graph to represent mathematical operations, while NumPy does not. A computation graph is a directed acyclic graph that represents the flow of data through a set of computational operations. This allows TensorFlow to optimize and parallelize computations across multiple devices and processors, which can be especially useful for large-scale machine learning tasks.
 +
 +
: '''Computation graph''' and the '''GPU''' are two different aspects of TensorFlow that serve different purposes.
 +
 +
: The computation graph is a feature of TensorFlow that represents a set of mathematical operations as a directed acyclic graph. This graph allows TensorFlow to optimize and parallelize computations across multiple devices and processors, which can be especially useful for large-scale machine learning tasks. The computation graph is an abstract concept that is used to represent the flow of data and computations in TensorFlow.
 +
 +
: The GPU, on the other hand, is a physical device that is designed to accelerate numerical computations. GPUs have many processing units that can perform parallel computations on large datasets, making them well-suited for machine learning tasks that require high computational power. TensorFlow can use GPUs to accelerate computations and speed up the training and inference of machine learning models.
 +
 +
* '''Automatic Differentiation:''' TensorFlow also includes automatic differentiation, which is a powerful technique for calculating gradients used in training machine learning models. This feature allows developers to write complex models and let TensorFlow automatically compute the gradients needed to optimize them.
 +
 +
* '''Serialization:''' TensorFlow tensors can be serialized and deserialized, allowing them to be easily stored and transferred between different machines or processes. NumPy arrays can also be serialized, but the process can be more complex.
  
  
 
<br />
 
<br />

Latest revision as of 16:19, 11 April 2023




TensorFlow is an open-source software library developed by Google for machine learning and artificial intelligence. It was first released in 2015. TensorFlow is primarily designed for deep learning, and usually referred to as a library for deep learning, but it can also be used for traditional machine learning tasks.

It supports a variety of programming languages, including Python, C++, and Java, and can be used for a range of machine learning tasks, including image and speech recognition, natural language processing, and predictive analytics.


[ChatGPT] TensorFlow is an end-to-end platform for developing and deploying machine learning/deep learning models. End-to-end means that TensorFlow provides a comprehensive solution for the entire process of building and using machine learning models, from data preparation to model training and deployment:

  • Data Preparation: TensorFlow provides tools and libraries for preprocessing and cleaning data, preparing it for use in machine learning models.
  • Model Building: TensorFlow provides a wide range of tools and libraries for building different types of machine learning models, including deep learning models, reinforcement learning models, and more.
  • Model Training: TensorFlow provides a powerful distributed training framework that enables users to train models on large datasets using multiple GPUs or TPUs.
  • Model Deployment: TensorFlow provides tools and libraries for deploying machine learning models to a wide range of platforms, including mobile devices, web servers, and more.
  • Monitoring and Maintenance: TensorFlow provides tools for monitoring and maintaining deployed models, including tools for debugging, profiling, and performance tuning.


Some important features of TensorFlow are:

  • Allow writing fast deep learning codes (able to run on a GPU/TPU)
  • GPUs (Graphics Processing Unit) are very fast at doing numerical calculations
  • TPU (Tesor Processing Unit) is an AI accelerator application-specific integrated circuit (ASIC) developed by Google specifically for neural network machine learning, particularly using Google's own TensorFlow software.
  • Able to access many pre-built deep learning models (TensorFlow Hub)


Other learning materials apart from https://www.tensorflow.org/learn include:

https://www.coursera.org/professional-certificates/tensorflow-in-practice
https://github.com/golamSaroar/tensorflow-in-practice-specialization
https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187
  • Udemy: TensorFlow Developer Certificate in 2023: Zero to Mastery
https://www.udemy.com/course/tensorflow-developer-certificate-machine-learning-zero-to-mastery/


TensorFlow certification:
https://www.tensorflow.org/certificate

Before you take the exam, please review our Candidate Handbook: https://www.tensorflow.org/static/extras/cert/TF_Certificate_Candidate_Handbook.pdf


Google provides a certification program for TensorFlow called the "TensorFlow Developer Certificate". This certification program is designed to test and validate your knowledge and skills in developing and deploying TensorFlow models for real-world applications.

The TensorFlow Developer Certificate exam is a computer-based exam that includes a combination of multiple-choice and coding questions.

To take the exam and earn the certification, you must pay a fee. As of my knowledge cut-off in September 2021, the fee for the exam was $100 USD.



Udemy: TensorFlow Developer Certificate in 2023: Zero to Mastery

https://www.udemy.com/course/tensorflow-developer-certificate-machine-learning-zero-to-mastery/

Private online classroom: https://discord.com/channels/423464391791476747/423466983208779776



All Course Resources

Throughout the course there will be various links to different resources, however, one will be your source of truth.


Inside the GitHub/book will find a "Course materials" table that contains all of the materials you'll need for the course, including:

  • Lessons in code & text: all videos are based on these notebooks, refer to them for code and text-based explanations of different deep learning and TensorFlow concepts.
  • Lessons in code & text (from the videos): notebooks containing the exact code we'll be writing together during the videos.
  • Slides: all slides and images used to explain different concepts throughout the course.
  • Exercises & extra-curriculum: each section comes with a series of challenges and extra resources to help you practice your skills and learn more.


But possibly the most important out of all of the above will be the GitHub Discussions tab: https://github.com/mrdbourke/tensorflow-deep-learning/discussions
If you have any questions, ideas, feedback or concerns, feel free to start a discussion thread, that way Daniel (the one writing this), Andrei and other students can read and offer help.
Daniel (@mrdbourke on Discord)


Other resources:


Python + Machine Learning Monthly:

  • Every month, I accumulate all of the best resources and articles, as well as free resources around the web for Python Developers. If you want to stay up to date with the industry and make sure you don't miss any important news, you can check out the monthly newsletter here. It's completely free every month!
https://zerotomastery.io/blog/?tag=PM&utm_source=udemy&utm_medium=coursecontent#monthly
  • Ps, there is also the Machine Learning Monthly and Web Developer Monthly if you are interested which you can find here:
https://zerotomastery.io/blog/?utm_source=udemy&utm_medium=coursecontent#monthly



What we are going to cover in this course

Copiar la imagen que se muestra en el curso...

  • TensorFlow basics and fundamentals
  • Preprocessing data (getting it into tensors)
  • Builkding and using pretrained deep learning models
  • Fitting a model to the data (learning petterns)
  • Making predictions with a model (using patterns)
  • Evaluating models predictions
  • Saving and loading models
  • Using a trained model to make predictions on custom data



What is a tensor

Mathematical and Physical definition of a Tensor:


In TensorFlow, a Tensor is the fundamental data structure. It is a multi-dimensional array that represents input data, intermediate results, and output data. They are used to represent (store and manipulate) data of various types, including images, text, and numerical values.

Tensors can be thought of as a data structure that generalize scalars, vectors, matrices, and higher-dimensional arrays to an arbitrary number of dimensions.


[ChatGPT] Tensors are similar to NumPy arrays in that they both represent multidimensional arrays of numerical values. However, there are some key differences between the two:

  • GPU Support: TensorFlow also has built-in support for GPUs, which can be used to accelerate numerical computations. While NumPy can be configured to use GPUs through external libraries like CuPy, it does not have native GPU support.
  • Computation Graph: One major difference is that TensorFlow uses a computation graph to represent mathematical operations, while NumPy does not. A computation graph is a directed acyclic graph that represents the flow of data through a set of computational operations. This allows TensorFlow to optimize and parallelize computations across multiple devices and processors, which can be especially useful for large-scale machine learning tasks.
Computation graph and the GPU are two different aspects of TensorFlow that serve different purposes.
The computation graph is a feature of TensorFlow that represents a set of mathematical operations as a directed acyclic graph. This graph allows TensorFlow to optimize and parallelize computations across multiple devices and processors, which can be especially useful for large-scale machine learning tasks. The computation graph is an abstract concept that is used to represent the flow of data and computations in TensorFlow.
The GPU, on the other hand, is a physical device that is designed to accelerate numerical computations. GPUs have many processing units that can perform parallel computations on large datasets, making them well-suited for machine learning tasks that require high computational power. TensorFlow can use GPUs to accelerate computations and speed up the training and inference of machine learning models.
  • Automatic Differentiation: TensorFlow also includes automatic differentiation, which is a powerful technique for calculating gradients used in training machine learning models. This feature allows developers to write complex models and let TensorFlow automatically compute the gradients needed to optimize them.
  • Serialization: TensorFlow tensors can be serialized and deserialized, allowing them to be easily stored and transferred between different machines or processes. NumPy arrays can also be serialized, but the process can be more complex.