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 concepts
- Practical use cases and real-world applications of TensorFlow
- Exploring the TensorFlow ecosystem and associated tooling
- Standard workflows in machine learning and deep learning
- Overview of course goals and practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Major distinctions between TensorFlow 1.x and 2.x
- The shift to eager execution
- Streamlined APIs and enhanced usability
- Evolution in model construction and training processes
- Introduction to Keras as the preferred high-level API
- Considerations for migrating existing TensorFlow applications
- Best practices for working with TensorFlow 2.x
Setting up TensorFlow 2.x
- Installing the TensorFlow package
- Configuring the Python development environment
- Verifying a successful TensorFlow installation
- Installing and managing necessary dependencies
- Setting up CPU and GPU environments
- Integrating TensorFlow with Jupyter notebooks
- Essential TensorFlow commands and core operations
- Resolving common installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- Understanding TensorFlow's architecture and core components
- Working with tensors and tensor operations
- Managing variables and constants
- Concepts of computational graphs and eager execution
- The role of automatic differentiation
- Navigating TensorFlow APIs and modules
- Seamless integration with Keras
- Constructing data pipelines using
tf.data - Model serialization and the TensorFlow SavedModel format
- The broader TensorFlow ecosystem and development workflows
How Neural Networks Work
- Core principles of artificial neural networks
- Structure of neurons, layers, and network architectures
- The function of activation functions
- The process of forward propagation
- Understanding loss functions
- The mechanism of backpropagation
- Optimization via gradient descent
- Strategies for setting learning rates
- Identifying overfitting and underfitting
- Techniques for regularization
- Managing training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating and manipulating tensors and variables
- Building neural networks using Keras
- Utilizing Sequential and Functional model APIs
- Defining custom models and layers
- Configuring optimizers for training
- Selecting the most suitable loss functions
- Training models using the
fit()method - Writing custom training loops
- Using callbacks to monitor training progress
- Managing model checkpoints
Analyzing Data
- Understanding datasets relevant to machine learning
- Exploring both structured and unstructured data types
- Techniques for data visualization
- Identifying underlying patterns and anomalies
- Handling missing or inconsistent data entries
- Splitting data into training, validation, and test sets
- Selecting relevant features for the model
- Preparing datasets for TensorFlow consumption
Preprocessing Data
- Applying data normalization and standardization
- Encoding categorical variables
- Strategies for handling missing values
- Techniques for feature scaling
- Specifics of image preprocessing
- Methods for text preprocessing
- Implementing data augmentation
- Constructing efficient input pipelines
- Leveraging
tf.datafor data handling - Optimizing batching, shuffling, caching, and prefetching
- Final preparations for model training
Building a Model
- Selecting the appropriate neural network architecture
- Defining model inputs and expected outputs
- Creating dense neural networks
- Choosing suitable activation functions
- Configuring the model for the training phase
- Selecting 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
- Basics of image classification tasks
- Preparing and organizing image datasets
- Applying image normalization and augmentation
- Understanding Convolutional Neural Networks (CNNs)
- Using convolution and pooling layers
- Designing a robust image classification architecture
- Applying transfer learning concepts
- Utilizing pretrained models
- Fine-tuning pretrained networks for specific tasks
- Building an advanced image classifier
- Evaluating classification accuracy and performance
Training the Model
- Configuring essential training parameters
- Setting batch sizes and epoch counts
- Selecting the right optimizer
- Implementing learning-rate scheduling
- Utilizing training callbacks
- Applying early stopping mechanisms
- Checkpointing models for recovery
- Monitoring training progress in real-time
- Detecting signs of overfitting
- Improving overall training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Comparing CPU, GPU, and TPU architectures
- Benefits of hardware acceleration
- Configuring TensorFlow for GPU-based training
- Understanding TPU-accelerated training
- Selecting appropriate hardware for specific workloads
- Moving computations between different devices
- Managing memory and computational resources
- Comparing training speed and efficiency
- Strategies for distributed and accelerated training
Evaluating the Model
- Choosing appropriate evaluation metrics
- Interpreting accuracy, precision, recall, and F1 score
- Metrics specific to regression tasks
- Analyzing confusion matrices
- Implementing validation strategies
- Evaluating classification model performance
- Assessing model generalization ability
- Identifying potential model weaknesses
- Comparing different model configurations
Making Predictions
- Using trained models for inference tasks
- Preparing new input data for prediction
- Performing both batch and individual predictions
- Interpreting and understanding model outputs
- Analyzing classification probabilities
- Handling regression predictions
- Building a streamlined inference workflow
- Handling previously unseen data
- Managing the end-to-end prediction pipeline
Evaluating the Predictions
- Analyzing the quality of predictions
- Comparing predictions against expected results
- Identifying false positives and false negatives
- Conducting detailed error analysis
- Evaluating model confidence levels
- Visualizing prediction outcomes
- Detecting biases in data and predictions
- Improving model performance based on prediction insights
Debugging the Model
- Identifying common training pitfalls
- Diagnosing the root causes of incorrect predictions
- Debugging data pipeline issues
- Investigating behavior of loss and metrics
- Detecting exploding and vanishing gradient problems
- Diagnosing overfitting and underfitting scenarios
- Inspecting model layers and intermediate outputs
- Using TensorFlow's debugging and profiling tools
- Improving model stability and overall performance
Saving a Model
- Procedures for saving trained models
- Understanding the TensorFlow SavedModel format
- Saving and restoring model weights
- Preserving model architecture and configuration
- Loading models for subsequent inference
- Implementing model versioning
- Exporting models for deployment scenarios
- Managing various model artifacts
- Preparing models for production environments
Deploying a Model to the Cloud
- Introduction to cloud-based model deployment
- Preparing TensorFlow models for production use
- Serving models via API endpoints
- Core concepts of model serving
- Containerizing TensorFlow applications
- Performing cloud-based inference
- Scaling model-serving workloads
- Monitoring models once deployed
- Managing different model versions
- 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 platforms
- Optimizing models and reducing their size
- Applying quantization techniques
- Running inference on mobile hardware
- Managing resource constraints on mobile devices
- 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 demand
- Implementing edge inference
- Processing sensor and real-time data
- Running predictions locally on the device
- Considering power and memory limitations
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Ensuring TensorFlow model interoperability
- Serving models through standard APIs
- Using TensorFlow models from diverse programming environments
- Python-based model integration techniques
- Integrating models into web applications
- Performing model inference via REST-based services
- Integrating TensorFlow into existing application stacks
- Handling data exchange and serialization
- Considerations for production-level integration
Troubleshooting
- Diagnosing TensorFlow installation issues
- Troubleshooting errors during model building
- Debugging data preprocessing problems
- Resolving training failure issues
- Investigating GPU and TPU configuration errors
- Diagnosing memory leaks and performance bottlenecks
- Troubleshooting model loading and saving issues
- Debugging deployment-related problems
- Practical troubleshooting exercises
Summary and Conclusion
- Recap of TensorFlow 2.x core concepts
- Review of neural network and deep learning workflows
- Summary of data preparation and model development steps
- Review of image classification techniques
- Recap of training and evaluation methods
- Review of model debugging and optimization strategies
- Summary of cloud, mobile, and IoT deployment processes
- Best practices for TensorFlow development
- Final practical exercise
- Open Q&A and discussion
Requirements
- Proficiency in Python programming.
- Practical experience using the Linux command line.
Target Audience
- Software 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.