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
- Introduction to TensorFlow and the principles of deep learning
- Real-world use cases and applications for TensorFlow
- The TensorFlow ecosystem and associated tooling
- Workflows for machine learning and deep learning
- Overview of course objectives and practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Key differences distinguishing TensorFlow 1.x from 2.x
- The concept of eager execution
- Simplified APIs and enhanced usability features
- Changes in model construction and training processes
- Introduction to Keras as the high-level API
- Considerations for migrating existing TensorFlow applications
- Best practices for utilizing TensorFlow 2.x
Setting up TensorFlow 2.x
- Installing TensorFlow
- Configuring the Python environment
- Verifying the TensorFlow installation
- Installing and managing necessary dependencies
- Setting up CPU and GPU environments
- Utilizing TensorFlow with Jupyter notebooks
- Basic TensorFlow commands and core operations
- Troubleshooting common installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and its core components
- Understanding tensors and tensor operations
- Working with variables and constants
- Computational graphs and the mechanics of eager execution
- Automatic differentiation techniques
- TensorFlow APIs and module structure
- Integration with Keras
- Creating data pipelines using
tf.data - Model serialization and the TensorFlow SavedModel format
- The TensorFlow ecosystem and development workflow
How Neural Networks Work
- Fundamentals of artificial neural networks
- Neurons, layers, and network architecture design
- The role of activation functions
- Understanding forward propagation
- Selection and application of loss functions
- The process of backpropagation
- Gradient descent and optimization methods
- Adjusting learning rates and optimization strategies
- Addressing 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
- Working with Sequential and Functional model APIs
- Defining custom models and layers
- Configuring optimizers for training
- Selecting appropriate loss functions
- Training models using the
fit()method - Implementing custom training loops
- Utilizing callbacks for training monitoring
- Managing model checkpoints
Analyzing Data
- Understanding datasets suitable for machine learning
- Exploring both structured and unstructured data
- Techniques for data visualization
- Identifying patterns and anomalies in data
- Handling missing and inconsistent data points
- Splitting data into training, validation, and test sets
- Selecting relevant features for the model
- Preparing datasets specifically for TensorFlow models
Preprocessing Data
- Data normalization and standardization techniques
- Encoding categorical data
- Strategies for handling missing values
- Feature scaling methods
- Image preprocessing workflows
- Text preprocessing pipelines
- Data augmentation techniques
- Building efficient input pipelines
- Utilizing
tf.datafor data handling - 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 effective activation functions
- Configuring the model for the training process
- Selecting optimizers and loss functions
- Training and validating the model
- Monitoring key 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 and structuring image datasets
- Image normalization and augmentation strategies
- Understanding Convolutional Neural Networks (CNNs)
- Applying convolution and pooling layers
- Designing an effective image classification architecture
- The concept of transfer learning
- Leveraging pretrained models
- Fine-tuning pretrained networks
- Building an advanced image classifier
- Evaluating classification performance
Training the Model
- Configuring essential training parameters
- Managing batch size and epochs
- Selecting the appropriate optimizer
- Implementing learning-rate scheduling
- Utilizing training callbacks
- Applying early stopping techniques
- Checkpointing models during training
- Monitoring training progress
- Detecting signs of overfitting
- Improving overall training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Architectural differences between CPUs, GPUs, and TPUs
- Advantages of hardware acceleration
- Configuring TensorFlow for GPU-based training
- Understanding TPU-based training processes
- Selecting hardware based on specific workloads
- Moving computations between different devices
- Managing memory and computational resources
- Comparing training performance across hardware
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting appropriate evaluation metrics
- Understanding accuracy, precision, recall, and F1 score
- Metrics for regression evaluation
- Interpreting confusion matrices
- Validation strategies for model testing
- Evaluating classification models specifically
- Assessing model generalization capabilities
- 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 model outputs effectively
- Understanding classification probabilities
- Processing regression predictions
- Building a robust inference workflow
- Handling previously unseen data
- Managing 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
- Detecting data and prediction bias
- Improving model performance based on prediction analysis
Debugging the Model
- Identifying common training issues
- Diagnosing sources of incorrect predictions
- Debugging data pipeline errors
- Investigating loss and metric behavior
- Detecting exploding and vanishing gradients
- Diagnosing cases of overfitting and underfitting
- Inspecting model layers and their outputs
- Utilizing TensorFlow debugging and profiling tools
- Improving model stability and performance
Saving a Model
- Methods for saving trained models
- The TensorFlow SavedModel format
- Saving and restoring model weights
- Persisting model architecture and configuration
- Loading models for subsequent inference
- Implementing model versioning
- 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 use
- Serving models via APIs
- Core concepts of model serving
- Containerizing TensorFlow applications
- Implementing cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models
- Managing multiple 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 deployment
- Optimizing model size and performance
- Applying quantization techniques
- Running inference on mobile hardware
- Managing mobile device resources
- Integrating models into mobile applications
- Testing inference performance on mobile devices
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 demands
- 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
- Model interoperability within TensorFlow
- Serving models through API interfaces
- Accessing TensorFlow models from various programming environments
- Python-based model integration
- Integrating models into web applications
- Model inference via REST-based services
- Integrating TensorFlow into existing application stacks
- Data exchange and serialization methods
- Considerations for production-level integration
Troubleshooting
- Diagnosing TensorFlow installation issues
- Troubleshooting errors in model building
- Debugging data preprocessing problems
- Resolving training failures
- Investigating GPU and TPU configuration errors
- Diagnosing memory and performance bottlenecks
- Troubleshooting model loading and saving processes
- Debugging deployment-related issues
- Practical troubleshooting exercises
Summary and Conclusion
- Review of key TensorFlow 2.x concepts
- Recap of neural network and deep learning workflows
- Summary of data preparation and model development
- 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 practices
- Best practices for TensorFlow development
- Final practical exercise
- Questions and 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.