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
- Overview of TensorFlow and deep learning concepts
- Real-world use cases and applications for TensorFlow
- Exploring the TensorFlow ecosystem and associated tooling
- Workflows in machine learning and deep learning
- Course objectives and an introduction to practical exercises
TensorFlow 2.x vs Previous Versions: What's New
- Key distinctions between TensorFlow 1.x and 2.x
- The mechanics of eager execution
- Simplified APIs and enhanced usability features
- Evolution 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
- Step-by-step installation of TensorFlow
- Configuring a Python development environment
- Verifying the integrity of the TensorFlow installation
- Managing and installing necessary dependencies
- Optimizing CPU and GPU environments
- Leveraging TensorFlow with Jupyter notebooks
- Fundamental TensorFlow commands and operations
- Troubleshooting common installation and configuration challenges
Overview of TensorFlow 2.x Features and Architecture
- Core components and the overall TensorFlow architecture
- Working with tensors and tensor operations
- Managing variables and constants
- Computational graphs versus eager execution
- Understanding automatic differentiation
- Exploring TensorFlow APIs and various modules
- Integration with Keras
- Building efficient data pipelines using
tf.data - Model serialization via the TensorFlow SavedModel format
- The broader TensorFlow ecosystem and development workflow
How Neural Networks Work
- Foundational concepts of artificial neural networks
- Neurons, layers, and various network architectures
- Selection and application of activation functions
- The process of forward propagation
- Evaluating performance with loss functions
- The mechanics of backpropagation
- Gradient descent and optimization techniques
- Strategies for learning rates and optimization
- Understanding overfitting and underfitting
- Applying regularization techniques
- Managing training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating and manipulating tensors and variables
- Constructing neural networks using Keras
- Choosing between Sequential and functional model APIs
- Defining custom models and specialized layers
- Configuring the most effective optimizers
- Selecting appropriate loss functions for your task
- Training models utilizing the
fit()method - Implementing custom training loops
- Monitoring training through callbacks
- Effective management of model checkpoints
Analyzing Data
- Understanding datasets specific to machine learning tasks
- Exploring both structured and unstructured data formats
- Techniques for effective data visualization
- Identifying key patterns and detecting anomalies
- Handling missing values and inconsistent data entries
- Splitting data into training, validation, and test sets
- Selecting the most relevant features
- Preparing datasets specifically for TensorFlow models
Preprocessing Data
- Techniques for data normalization and standardization
- Encoding categorical data for model consumption
- Strategies for handling missing values
- Appropriate feature scaling methods
- Specific image preprocessing workflows
- Text data preprocessing techniques
- Implementing data augmentation strategies
- Building efficient input pipelines
- Leveraging
tf.datafor data handling - Optimizing with batching, shuffling, caching, and prefetching
- Final data preparation steps for model training
Building a Model
- Selecting the most suitable neural network architecture
- Defining model inputs and expected outputs
- Constructing dense neural networks
- Choosing the right activation functions
- Configuring the model for the training phase
- Selecting optimal optimizers and loss functions
- Training and validating the model effectively
- Monitoring key training metrics
- Strategies for improving model performance
- Preventing overfitting in models
- Implementing regularization and dropout layers
Implementing a State-of-the-Art Image Classifier
- Core fundamentals of image classification
- Preparing robust image datasets
- Applying image normalization and augmentation
- Understanding Convolutional Neural Networks (CNNs)
- Utilizing Convolution and pooling layers
- Designing a robust image classification architecture
- The concept of transfer learning
- Leveraging pretrained models
- Fine-tuning pretrained networks for specific tasks
- Building an advanced image classifier from scratch
- Evaluating and benchmarking classification performance
Training the Model
- Configuring essential training parameters
- Optimizing batch size and epoch counts
- Selecting the right optimizer for your model
- Implementing learning-rate scheduling strategies
- Utilizing training callbacks for control
- Implementing early stopping to prevent overfitting
- Effective checkpointing of models
- Monitoring training progress in real-time
- Detecting signs of overfitting during training
- Enhancing overall training performance
- Considerations for distributed training environments
Training on a GPU vs a TPU
- Comparing CPU, GPU, and TPU architectures
- The advantages of hardware acceleration
- Configuring TensorFlow specifically for GPU training
- Understanding TPU-based training workflows
- Selecting the right hardware for different workloads
- Efficiently moving computations between devices
- Managing memory and computational resources
- Comparing training performance across hardware types
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting the most appropriate evaluation metrics
- Assessing Accuracy, precision, recall, and F1 score
- Utilizing regression evaluation metrics
- Interpreting confusion matrices
- Applying robust validation strategies
- Evaluating classification models effectively
- Assessing model generalization capabilities
- Identifying potential model weaknesses
- Comparing different model configurations
Making Predictions
- Utilizing trained models for inference tasks
- Preparing new input data for prediction
- Performing both batch and individual predictions
- Interpreting and understanding model outputs
- Understanding classification probabilities
- Generating regression predictions
- Building a streamlined inference workflow
- Handling unseen or out-of-distribution data
- Managing efficient prediction pipelines
Evaluating the Predictions
- Analyzing the quality of predictions
- Comparing predictions against expected results
- Identifying false positives and false negatives
- Conducting thorough error analysis
- Evaluating model confidence levels
- Visualizing prediction results for better insight
- Detecting data and prediction bias
- Improving model performance based on prediction analysis
Debugging the Model
- Identifying common training pitfalls and problems
- Diagnosing the root causes of incorrect predictions
- Debugging complex data pipelines
- Investigating unusual loss and metric behavior
- Detecting exploding and vanishing gradients
- Diagnosing symptoms of overfitting and underfitting
- Inspecting specific model layers and outputs
- Leveraging TensorFlow debugging and profiling tools
- Improving model stability and overall performance
Saving a Model
- Strategies for saving trained models
- Using the TensorFlow SavedModel format
- Saving and restoring model weights effectively
- Preserving model architecture and configuration
- Loading models efficiently for inference
- Implementing model versioning practices
- Exporting models ready for deployment
- Managing model artifacts securely
- 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 APIs
- Key concepts in model serving
- Containerizing TensorFlow applications
- Executing cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models in the cloud
- Managing multiple model versions
- 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 deployment
- Optimizing model size and performance
- Applying quantization techniques
- Running inference efficiently on mobile devices
- Managing mobile device resource constraints
- Integrating models into mobile applications
- Testing and benchmarking 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
- Implementing edge inference strategies
- Processing sensor and real-time data
- Running predictions locally on-device
- Managing power and memory considerations
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Understanding TensorFlow model interoperability
- Serving models through various APIs
- Using TensorFlow models from different programming environments
- Python-based model integration techniques
- Integrating models into web applications
- Executing model inference through REST-based services
- Integrating TensorFlow into existing application stacks
- Managing data exchange and serialization
- Production integration considerations
Troubleshooting
- Diagnosing TensorFlow installation problems
- Troubleshooting errors during model building
- Debugging data preprocessing issues
- Resolving common training failures
- Investigating GPU and TPU configuration problems
- Diagnosing memory and performance bottlenecks
- Troubleshooting model loading and saving issues
- Debugging deployment problems
- 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 processes
- Recap of image classification techniques
- Review of training and evaluation techniques
- Summary of model debugging and optimization strategies
- Review of deployment methods for cloud, mobile, and IoT
- Best practices for TensorFlow development
- Final practical exercise
- Open floor for questions and discussion
Requirements
- 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.