Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 21 hours
Course Outline
Introduction
- Foundations of TensorFlow and deep learning
- Real-world use cases and applications for TensorFlow
- The TensorFlow ecosystem and associated tooling
- Workflows for machine learning and deep learning
- Course objectives and an overview of practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Key distinctions between TensorFlow 1.x and 2.x
- The concept of eager execution
- Simplified APIs and enhanced usability
- Shifts in model construction and training processes
- Introduction to Keras as the high-level interface
- Considerations for migrating existing TensorFlow applications
- Best practices for leveraging TensorFlow 2.x
Setting up TensorFlow 2.x
- Installing the TensorFlow package
- Configuring a Python environment
- Verifying the TensorFlow installation
- Installing and managing necessary dependencies
- Setting up CPU and GPU environments
- Working with TensorFlow in Jupyter notebooks
- Essential TensorFlow commands and operations
- Addressing common installation and configuration challenges
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and core components
- Understanding tensors and tensor operations
- Working with variables and constants
- Computational graphs and the benefits of eager execution
- The mechanism of automatic differentiation
- Exploring TensorFlow APIs and modules
- Integration with Keras
- Constructing data pipelines using
tf.data - Model serialization via TensorFlow SavedModel
- The TensorFlow ecosystem and development workflows
How Neural Networks Work
- Basics of artificial neural networks
- Neurons, layers, and network architectures
- The role of activation functions
- The process of forward propagation
- Understanding loss functions
- The backpropagation algorithm
- Gradient descent and optimization techniques
- Strategies for learning rates and optimization
- Identifying overfitting and underfitting
- Techniques for regularization
- Management of training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating and manipulating tensors and variables
- Constructing neural networks with Keras
- Using Sequential and Functional model APIs
- Defining custom models and layers
- Configuring optimizers
- Selecting suitable loss functions
- Training models using
fit() - Implementing custom training loops
- Utilizing callbacks for training monitoring
- Managing model checkpoints
Analyzing Data
- Understanding datasets in the context of machine learning
- Exploring both structured and unstructured data
- Techniques for data visualization
- Identifying patterns and anomalies
- Addressing missing and inconsistent data
- Partitioning data into training, validation, and test sets
- Feature selection strategies
- Preparing datasets for TensorFlow models
Preprocessing Data
- Data normalization and standardization
- Encoding categorical variables
- Strategies for handling missing values
- Feature scaling methods
- Image preprocessing techniques
- Text preprocessing methods
- Implementing data augmentation
- Building efficient input pipelines
- Leveraging
tf.data - Techniques for batching, shuffling, caching, and prefetching
- Preparing data for effective model training
Building a Model
- Selecting an appropriate neural network architecture
- Defining model inputs and outputs
- Constructing dense neural networks
- Choosing appropriate activation functions
- Configuring the model for the training phase
- Selecting optimizers and loss functions
- Training and validating the model
- Monitoring training metrics
- Strategies for improving model performance
- Preventing overfitting
- Implementing regularization and dropout
Implementing a State-of-the-Art Image Classifier
- Fundamentals of image classification
- Preparing image datasets
- Applying image normalization and augmentation
- Understanding convolutional neural networks
- Using convolution and pooling layers
- Designing an image classification architecture
- The concept of transfer learning
- Utilizing pretrained models
- Fine-tuning pretrained networks
- Building an advanced image classifier
- Evaluating classification performance
Training the Model
- Configuring training parameters
- Adjusting batch size and epochs
- Selecting the appropriate optimizer
- Implementing learning-rate scheduling
- Using training callbacks
- Applying early stopping
- Checkpointing models during training
- Monitoring training progress
- Detecting signs of overfitting
- Enhancing training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Architectures of CPU, GPU, and TPU
- Benefits of hardware acceleration
- Configuring TensorFlow for GPU training
- Understanding TPU-based training
- Selecting hardware for specific workloads
- Moving computations between devices
- Managing memory and computational resources
- Comparing training performance across devices
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting appropriate evaluation metrics
- Interpreting accuracy, precision, recall, and F1 score
- Metrics for regression evaluation
- Analyzing confusion matrices
- Validation strategies
- Evaluating classification models
- Assessing model generalization
- Identifying model weaknesses
- Comparing different model configurations
Making Predictions
- Using trained models for inference
- Preparing new input data
- Performing both batch and individual predictions
- Interpreting model outputs
- Understanding classification probabilities
- Interpreting regression predictions
- Building an inference workflow
- Handling unseen data
- Managing prediction pipelines
Evaluating the Predictions
- Analyzing the quality of predictions
- Comparing predictions with expected results
- Identifying false positives and false negatives
- Conducting error analysis
- Evaluating model confidence
- Visualizing prediction results
- Detecting data and prediction bias
- Improving model performance based on prediction analysis
Debugging the Model
- Identifying common training issues
- Diagnosing incorrect predictions
- Debugging data pipelines
- Investigating loss and metric behavior
- Detecting exploding and vanishing gradients
- Diagnosing overfitting and underfitting
- Inspecting model layers and outputs
- Utilizing TensorFlow debugging and profiling tools
- Enhancing model stability and performance
Saving a Model
- Saving trained models
- The TensorFlow SavedModel format
- Saving and restoring model weights
- Persisting model architecture and configuration
- Loading models for inference
- Model versioning strategies
- Exporting models for deployment
- Managing model artifacts
- Preparing models for production environments
Deploying a Model to the Cloud
- Introduction to cloud-based model deployment
- Preparing TensorFlow models for production
- Serving models via APIs
- Concepts in model serving
- Containerizing TensorFlow applications
- Implementing cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models
- Managing model versions
- Considerations for production deployment
Deploying a Model to a Mobile Device
- Challenges of mobile machine learning
- Introduction to TensorFlow Lite
- Converting TensorFlow models for mobile deployment
- Optimizing models and reducing size
- Applying quantization
- Running inference on mobile devices
- Managing mobile device resources
- Integrating models into mobile applications
- Testing mobile inference performance
Deploying a Model to an Embedded System (IoT)
- Machine learning on embedded devices
- Using TensorFlow Lite for embedded applications
- Addressing resource constraints and optimization
- Reducing model size and computational requirements
- The concept of edge inference
- Processing sensor and real-time data
- Running predictions locally
- Considerations for power and memory
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Interoperability of TensorFlow models
- Serving models through APIs
- Utilizing TensorFlow models in diverse programming environments
- Python-based model integration
- Integrating models into web applications
- Model inference via REST-based services
- Integrating TensorFlow into existing applications
- Data exchange and serialization
- Considerations for production integration
Troubleshooting
- Diagnosing TensorFlow installation problems
- Troubleshooting model-building errors
- Debugging data preprocessing issues
- Resolving training failures
- Investigating GPU and TPU configuration problems
- Diagnosing memory and performance issues
- Troubleshooting model loading and saving
- Debugging deployment problems
- Practical troubleshooting exercises
Summary and Conclusion
- Review of TensorFlow 2.x concepts
- Review of neural network and deep learning workflows
- Review of data preparation and model development
- Review of image classification
- Review of training and evaluation techniques
- Review of model debugging and optimization
- Review of cloud, mobile, and IoT deployment
- Best practices for TensorFlow development
- Final practical exercise
- Questions and discussion
Requirements
- Proficiency in Python programming.
- Familiarity with the Linux command line.
Target Audience
- Developers
- Data Scientists
Testimonials (4)
The training was organized and well-planned out, and I come out of it with systematized knowledge and a good look at topics we looked at
Magdalena - Samsung Electronics Polska Sp. z o.o.
Course - Deep Learning with TensorFlow 2
Trainer's knowledge and the fact they were very approachable. They could easily convey important knowledge
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Course - Deep Learning with TensorFlow 2
I liked that we covered the basics too
Tomasz - Samsung Electronics Polska Sp. z o.o.
Course - Deep Learning with TensorFlow 2
The trainer explained the content well and was engaging throughout. He stopped to ask questions and let us come to our own solutions in some practical sessions. He also tailored the course well for our needs.