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.
Course Outline
Introduction
- Foundations of TensorFlow and deep learning principles
- Real-world use cases and practical applications
- Exploring the TensorFlow ecosystem and associated tooling
- Workflows in machine learning and deep learning
- Course objectives and an overview of practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Distinct differences between TensorFlow 1.x and 2.x
- The mechanics of eager execution
- Enhanced usability through simplified APIs
- Evolution in model construction and training processes
- Keras introduced as the primary high-level API
- Strategies for migrating existing TensorFlow applications
- Best practices for TensorFlow 2.x development
Setting up TensorFlow 2.x
- Installing the TensorFlow framework
- Configuring an optimal Python environment
- Verifying the integrity of the TensorFlow installation
- Managing required dependencies
- Setting up CPU and GPU environments
- Utilising TensorFlow within Jupyter notebooks
- Core TensorFlow commands and basic operations
- Resolving common installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- Architectural components and core functionality
- Working with tensors and tensor operations
- Managing variables and constants
- Computational graphs vs. eager execution
- Automatic differentiation
- Key TensorFlow APIs and modules
- Deep dive into Keras integration
- Constructing efficient data pipelines using
tf.data - Model serialisation and the TensorFlow SavedModel format
- Development workflow within the TensorFlow ecosystem
How Neural Networks Work
- Core concepts of artificial neural networks
- Structure of neurons, layers, and network architectures
- Selection of activation functions
- The process of forward propagation
- Understanding loss functions
- Mechanisms of backpropagation
- Gradient descent and optimisation methods
- Strategies for learning rates and optimisation
- Diagnosing overfitting and underfitting
- Applying regularisation techniques
- Utilising training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Generating tensors and variables
- Constructing neural networks using Keras
- Comparing Sequential and Functional model APIs
- Designing custom models and layers
- Configuring optimisers effectively
- Selecting suitable loss functions
- Training models via the
fit()method - Creating custom training loops
- Implementing callbacks and monitoring training
- Managing model checkpoints
Analyzing Data
- Curating datasets for machine learning
- Exploring structured and unstructured data types
- Techniques for data visualisation
- Identifying meaningful patterns and anomalies
- Addressing missing or inconsistent data points
- Partitioning data into training, validation, and test sets
- Feature selection strategies
- Preparing datasets specifically for TensorFlow models
Preprocessing Data
- Data normalisation and standardisation
- Encoding categorical variables
- Strategies for handling missing values
- Feature scaling methods
- Image preprocessing techniques
- Text data preprocessing
- Implementing data augmentation
- Building high-performance input pipelines
- Leveraging
tf.data - Techniques for batching, shuffling, caching, and prefetching
- Final preparation of data for model training
Building a Model
- Selecting the appropriate neural network architecture
- Defining model inputs and outputs
- Constructing dense neural networks
- Choosing the right activation functions
- Configuring the model for optimal training
- Selecting optimisers and loss functions
- Training and validating the model
- Monitoring key training metrics
- Enhancing model performance
- Mitigating overfitting
- Implementing regularisation and dropout
Implementing a State-of-the-Art Image Classifier
- Essentials of image classification
- Preparing image datasets
- Image normalisation and augmentation
- Convolutional Neural Networks (CNNs)
- Understanding convolution and pooling layers
- Designing an effective image classification architecture
- The concept of transfer learning
- Utilising pretrained models
- Fine-tuning pretrained networks
- Constructing an advanced image classifier
- Evaluating classification accuracy and performance
Training the Model
- Configuring training parameters
- Optimising batch size and epoch counts
- Selecting the appropriate optimiser
- Implementing learning-rate scheduling
- Utilising training callbacks
- Applying early stopping techniques
- Checkpointing models during training
- Monitoring training progress
- Detecting signs of overfitting
- Enhancing training efficiency
- 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 utilisation
- Understanding TPU-based training
- Matching hardware to specific workloads
- Offloading computations to appropriate devices
- Managing memory and computational resources
- Comparing performance across different hardware
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting relevant evaluation metrics
- Assessing accuracy, precision, recall, and F1 score
- Metrics for regression tasks
- Interpreting confusion matrices
- Validating model robustness
- Evaluating classification performance
- Assessing generalisation capabilities
- Identifying potential model weaknesses
- Comparing various model configurations
Making Predictions
- Utilising trained models for inference
- Preparing new input data
- Executing batch and individual predictions
- Interpreting model outputs
- Understanding classification probabilities
- Generating regression predictions
- Constructing a reliable inference workflow
- Handling unseen data scenarios
- Managing prediction pipelines
Evaluating the Predictions
- Analyzing the quality of predictions
- Comparing predictions against expected outcomes
- Identifying false positives and false negatives
- Conducting detailed error analysis
- Assessing model confidence
- Visualising prediction results
- Detecting bias in data and predictions
- Refining model performance based on prediction insights
Debugging the Model
- Identifying common training bottlenecks
- Diagnosing the root causes of incorrect predictions
- Debugging data pipeline issues
- Analyzing loss and metric trends
- Detecting exploding and vanishing gradients
- Diagnosing overfitting and underfitting
- Inspecting internal model layers and outputs
- Leveraging TensorFlow debugging and profiling tools
- Improving model stability and overall performance
Saving a Model
- Preserving trained models
- Using the TensorFlow SavedModel format
- Saving and restoring model weights
- Storing model architecture and configuration
- Loading models for subsequent inference
- Implementing model versioning
- Exporting models for deployment
- Managing model artefacts
- Preparing models for production environments
Deploying a Model to the Cloud
- Overview of cloud-based model deployment
- Preparing TensorFlow models for production readiness
- Serving models via APIs
- Core concepts of model serving
- Containerising TensorFlow applications
- Implementing cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models in real-time
- Managing model versions in the cloud
- Key considerations for production deployment
Deploying a Model to a Mobile Device
- Challenges specific to mobile machine learning
- Introduction to TensorFlow Lite
- Converting TensorFlow models for mobile use
- Optimising model size and efficiency
- Applying quantisation techniques
- Running inference on mobile hardware
- Managing mobile device resource constraints
- Integrating models into mobile applications
- Testing mobile inference performance
Deploying a Model to an Embedded System (IoT)
- Machine learning applications on embedded devices
- Using TensorFlow Lite for embedded scenarios
- Navigating resource constraints and optimisation
- Reducing model footprint and computational load
- Implementing edge inference
- Processing sensor and real-time data
- Executing local predictions
- Considering power and memory limitations
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Interoperability of TensorFlow models
- Serving models through various APIs
- Accessing TensorFlow models from different programming environments
- Python-based model integration
- Integrating models into web applications
- Performing model inference via REST services
- Incorporating TensorFlow into existing application stacks
- Data exchange and serialisation protocols
- Considerations for production-level integration
Troubleshooting
- Diagnosing TensorFlow installation issues
- Resolving model-building errors
- Debugging data preprocessing complications
- Addressing training failures
- Investigating GPU and TPU configuration conflicts
- Diagnosing memory and performance bottlenecks
- Troubleshooting model loading and saving
- Resolving deployment-related issues
- Practical troubleshooting exercises
Summary and Conclusion
- Recap of key TensorFlow 2.x concepts
- Review of neural network and deep learning workflows
- Summary of data preparation and model development
- Reflection on image classification techniques
- Review of training and evaluation strategies
- Summary of model debugging and optimisation
- Overview of cloud, mobile, and IoT deployment
- Best practices for TensorFlow development
- Final practical exercise
- Open floor for questions and discussion
Requirements
- Demonstrated proficiency in Python programming.
- Familiarity with the Linux command line interface.
Target Audience
- Software Developers
- Data Scientists
21 Hours
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.