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 (3 days)
Course Outline
Introduction
- Overview of TensorFlow and deep learning principles
- Real-world use cases and applications of TensorFlow
- The TensorFlow ecosystem and associated tooling
- Workflows for machine learning and deep learning
- Summary of course objectives and practical tasks
TensorFlow 2.x vs Previous Versions — What’s New
- Primary distinctions between TensorFlow 1.x and 2.x
- Concepts of eager execution
- Simplified APIs and enhanced usability features
- Evolutions in model construction and training processes
- Introduction to Keras as the high-level API
- Considerations for migrating existing TensorFlow applications
- Best practices for working with TensorFlow 2.x
Setting up TensorFlow 2.x
- Installation procedures for TensorFlow
- Configuring the Python environment
- Verifying the correctness of the TensorFlow installation
- Installing and managing necessary dependencies
- Setting up CPU and GPU environments
- Utilizing TensorFlow within Jupyter notebooks
- Basic commands and operations in TensorFlow
- Resolving common installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and its core components
- Tensors and associated tensor operations
- Variables and constants in TensorFlow
- Computational graphs and the mechanics of eager execution
- The process of automatic differentiation
- Exploration of TensorFlow APIs and modules
- Integration with Keras
- Building data pipelines using
tf.data - Model serialization and the TensorFlow SavedModel format
- The broader TensorFlow ecosystem and development workflows
How Neural Networks Work
- Foundational concepts of artificial neural networks
- The structure of neurons, layers, and network architectures
- The role of activation functions
- The mechanism of forward propagation
- Understanding loss functions
- The process of backpropagation
- Gradient descent and optimization techniques
- Strategies for learning rates and optimization
- Concepts of overfitting and underfitting
- Techniques for regularization
- Splitting data into training, validation, and test sets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating tensors and defining variables
- Constructing neural networks using Keras
- Utilizing Sequential and functional model APIs
- Defining custom models and layers
- Configuring optimizers for training
- Selecting suitable loss functions
- Training models using the
fit()method - Developing custom training loops
- Implementing callbacks for training monitoring
- Managing model checkpoints
Analyzing Data
- Understanding datasets suitable for machine learning
- Exploring both structured and unstructured data types
- Techniques for data visualization
- Identifying patterns and anomalies in data
- Strategies for handling missing or inconsistent data
- Splitting data into training, validation, and test sets
- Selecting relevant features for modeling
- Preparing datasets for integration with TensorFlow models
Preprocessing Data
- Data normalization and standardization techniques
- Methods for encoding categorical data
- Strategies for handling missing values
- Feature scaling methods
- Preprocessing steps for image data
- Preprocessing steps for text data
- Techniques for data augmentation
- Constructing efficient input pipelines
- Utilizing the
tf.datamodule - Batching, shuffling, caching, and prefetching data
- Preparing data structures for model training
Building a Model
- Selecting an appropriate neural network architecture
- Defining model inputs and outputs
- Creating dense neural networks
- Choosing suitable activation functions
- Configuring the model for the training phase
- Selecting appropriate optimizers and loss functions
- Training and validating the model
- Monitoring key training metrics
- Strategies for enhancing model performance
- Preventing overfitting
- Implementing regularization and dropout techniques
Implementing a State-of-the-Art Image Classifier
- Fundamentals of image classification tasks
- Preparing image datasets for training
- Normalizing and augmenting image data
- Understanding convolutional neural networks
- The roles of convolution and pooling layers
- Designing an effective image classification architecture
- Concepts of transfer learning
- Utilizing pretrained models
- Fine-tuning pretrained networks for specific tasks
- Building a sophisticated image classifier
- Evaluating the performance of the classifier
Training the Model
- Configuring essential training parameters
- Setting batch sizes and number of epochs
- Choosing the right optimizer
- Implementing learning-rate scheduling
- Using training callbacks for control
- Applying early stopping techniques
- Checkpointing models during training
- Monitoring the progress of training
- Detecting signs of overfitting
- Improving overall training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Architectural differences between CPU, GPU, and TPU
- Benefits of hardware acceleration
- Configuring TensorFlow for GPU-based training
- Understanding TPU-based training environments
- Selecting appropriate hardware for specific workloads
- Transferring computations between different devices
- Managing memory and computational resources efficiently
- Comparing training performance across hardware types
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting appropriate metrics for evaluation
- Metric analysis: Accuracy, precision, recall, and F1 score
- Metrics for evaluating regression models
- Interpreting confusion matrices
- Strategies for model validation
- Evaluating the performance of classification models
- Assessing the generalization ability of the model
- Identifying areas where the model may underperform
- Comparing performance across different model configurations
Making Predictions
- Utilizing trained models for inference tasks
- Preparing new input data for prediction
- Performing both batch and individual predictions
- Interpreting the outputs of the model
- Analyzing classification probabilities
- Processing regression predictions
- Constructing a robust inference workflow
- Handling previously unseen data effectively
- Managing prediction pipelines in production
Evaluating the Predictions
- Analyzing the quality of predictions made
- Comparing predicted results against expected outcomes
- Identifying false positives and false negatives
- Conducting detailed error analysis
- Evaluating the confidence levels of the model
- Visualizing results for better insight
- Detecting potential biases in data and predictions
- Refining model performance based on prediction analysis
Debugging the Model
- Identifying common issues during the training phase
- Diagnosing the causes of incorrect predictions
- Debugging issues within data pipelines
- Investigating the behavior of loss and metrics
- Detecting exploding and vanishing gradient problems
- Diagnosing overfitting and underfitting conditions
- Inspecting model layers and their outputs
- Leveraging TensorFlow debugging and profiling tools
- Enhancing model stability and overall performance
Saving a Model
- Methods for saving trained models
- Understanding the TensorFlow SavedModel format
- Saving and restoring model weights
- Persisting model architecture and configuration details
- Loading saved models for inference
- Implementing model versioning strategies
- Exporting models for deployment scenarios
- Managing model artifacts effectively
- Preparing models for production environments
Deploying a Model to the Cloud
- Introduction to deploying models in cloud environments
- Preparing TensorFlow models for production use
- Serving models via API interfaces
- Core concepts of model serving
- Containerizing TensorFlow applications
- Implementing cloud-based inference
- Scaling model-serving workloads efficiently
- Monitoring models after deployment
- Managing different versions of models
- Key considerations for production deployment
Deploying a Model to a Mobile Device
- Challenges specific to mobile machine learning
- Overview of TensorFlow Lite
- Converting TensorFlow models for mobile platforms
- Optimizing model size and performance
- Techniques for quantization
- Executing inference on mobile devices
- Managing resources on mobile hardware
- Integrating models into mobile applications
- Testing the performance of mobile inference
Deploying a Model to an Embedded System (IoT)
- Implementing machine learning on embedded devices
- Using TensorFlow Lite for embedded applications
- Navigating resource constraints and optimization needs
- Reducing model size and computational demands
- Concepts of edge inference
- Processing sensor data and real-time streams
- Running predictions locally on devices
- Considerations for power consumption and memory usage
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Ensuring TensorFlow model interoperability
- Serving models via API endpoints
- Using TensorFlow models across different programming environments
- Techniques for Python-based model integration
- Integrating models into web applications
- Model inference via REST-based services
- Integrating TensorFlow into existing software stacks
- Handling data exchange and serialization
- Considerations for production-grade integration
Troubleshooting
- Diagnosing issues related to TensorFlow installation
- Troubleshooting errors in model construction
- Debugging problems in data preprocessing
- Resolving failures during the training process
- Investigating configuration issues with GPU and TPU
- Diagnosing memory management and performance bottlenecks
- Troubleshooting model loading and saving procedures
- Debugging issues encountered during deployment
- Engaging in practical troubleshooting exercises
Summary and Conclusion
- Review of key TensorFlow 2.x concepts
- Recap of neural network and deep learning workflows
- Review of data preparation and model development strategies
- Summary of image classification techniques
- Review of training and evaluation methodologies
- Recap of model debugging and optimization practices
- Review of deployment strategies for cloud, mobile, and IoT
- Best practices for TensorFlow development
- Final practical exercise
- Open questions and group discussion
Requirements
- Programming proficiency in Python.
- 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.