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
- Fundamentals of TensorFlow and deep learning
- Practical applications and use cases for TensorFlow
- The broader TensorFlow ecosystem and associated tools
- Workflows for machine learning and deep learning
- Course objectives and overview of hands-on exercises
TensorFlow 2.x vs Previous Versions — Key Updates
- Distinctions between TensorFlow 1.x and 2.x
- Mechanics of eager execution
- Enhanced usability through simplified APIs
- Evolutions in model building and training processes
- Introduction to Keras as the high-level interface
- Strategies for migrating existing TensorFlow applications
- Recommended best practices for TensorFlow 2.x
Setting up TensorFlow 2.x
- Installation procedures for TensorFlow
- Setting up the Python development environment
- Verifying the TensorFlow setup
- Managing necessary dependencies
- Configuration for CPU and GPU environments
- Utilizing TensorFlow within Jupyter notebooks
- Essential TensorFlow commands and operations
- Resolving installation and configuration challenges
Overview of TensorFlow 2.x Features and Architecture
- Core components and TensorFlow architecture
- Manipulation of tensors and tensor operations
- Handling variables and constants
- Computational graphs versus eager execution
- Concepts 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
- Development workflow within the TensorFlow ecosystem
How Neural Networks Work
- Basics of artificial neural networks
- Structure of neurons, layers, and network architectures
- Role of activation functions
- The process of forward propagation
- Selection and application of loss functions
- Understanding backpropagation
- Optimization via gradient descent
- Strategies for learning rates and optimization
- Distinguishing between overfitting and underfitting
- Application of regularization techniques
- Dataset partitioning for training, validation, and testing
Using TensorFlow 2.x to Create Deep Learning Models
- Generating tensors and variables
- Constructing neural networks with Keras
- Utilizing Sequential and functional model APIs
- Defining custom models and layers
- Optimization configuration
- Choosing suitable loss functions
- Model training via
fit() - Implementing custom training loops
- Monitoring training with callbacks
- Management of model checkpoints
Analyzing Data
- Characteristics of datasets for machine learning
- Investigating structured and unstructured data
- Techniques for data visualization
- Detection of patterns and anomalies
- Handling missing or inconsistent data points
- Partitioning data for training, validation, and testing
- Feature selection methods
- Preparing datasets for TensorFlow integration
Preprocessing Data
- Normalization and standardization of data
- Encoding methods for categorical data
- Strategies for handling missing values
- Feature scaling techniques
- Preprocessing steps for image data
- Preprocessing steps for text data
- Application of data augmentation
- Constructing efficient input pipelines
- Implementation of
tf.data - Optimizing via batching, shuffling, caching, and prefetching
- Finalizing data for model training
Building a Model
- Selecting the appropriate neural network architecture
- Defining model inputs and outputs
- Creating dense neural networks
- Selecting activation functions
- Configuring the model for the training phase
- Choosing optimizers and loss functions
- Conducting model training and validation
- Tracking training metrics
- Strategies to enhance model performance
- Mitigating overfitting
- Applying regularization and dropout
Implementing a State-of-the-Art Image Classifier
- Core principles of image classification
- Preparation of image datasets
- Image normalization and augmentation strategies
- Understanding convolutional neural networks
- Function of convolution and pooling layers
- Designing an image classification architecture
- Application of transfer learning
- Leveraging pretrained models
- Fine-tuning pretrained networks
- Development of an advanced image classifier
- Assessment of classification performance
Training the Model
- Configuration of training parameters
- Management of batch size and epochs
- Selection of optimizers
- Implementation of learning-rate scheduling
- Use of training callbacks
- Application of early stopping
- Model checkpointing strategies
- Monitoring training progress
- Detection of overfitting
- Improving 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 training
- Insights into TPU-based training
- Hardware selection for various workloads
- Managing computations across devices
- Optimization of memory and computational resources
- Performance comparison of training setups
- Strategies for distributed and accelerated training
Evaluating the Model
- Selection of appropriate evaluation metrics
- Analysis of accuracy, precision, recall, and F1 score
- Metrics for regression evaluation
- Interpretation of confusion matrices
- Validation methodologies
- Assessment of classification models
- Evaluation of model generalization capabilities
- Identification of model limitations
- Comparison of different model configurations
Making Predictions
- Inference using trained models
- Preparation of new input data
- Execution of batch and individual predictions
- Interpretation of model outputs
- Analysis of classification probabilities
- Assessment of regression predictions
- Construction of an inference workflow
- Handling unseen data
- Management of prediction pipelines
Evaluating the Predictions
- Analysis of prediction quality
- Comparison of predictions against expected outcomes
- Identification of false positives and false negatives
- Conducting error analysis
- Assessment of model confidence
- Visualization of prediction results
- Detection of data and prediction bias
- Enhancing model performance based on prediction analysis
Debugging the Model
- Identification of common training issues
- Diagnosis of incorrect predictions
- Debugging data pipelines
- Investigation of loss and metric behavior
- Detection of exploding and vanishing gradients
- Diagnosis of overfitting and underfitting
- Inspection of model layers and outputs
- Utilization of TensorFlow debugging and profiling tools
- Improvement of model stability and performance
Saving a Model
- Storage of trained models
- Use of the TensorFlow SavedModel format
- Saving and restoring model weights
- Preservation of model architecture and configuration
- Loading models for inference
- Model versioning practices
- Exporting models for deployment
- Management of model artifacts
- Preparation 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
- Concepts in model serving
- Containerization of TensorFlow applications
- Cloud-based inference processes
- Scaling of model-serving workloads
- Monitoring of deployed models
- Management of model versions
- Considerations for production deployment
Deploying a Model to a Mobile Device
- Challenges specific to mobile machine learning
- Introduction to TensorFlow Lite
- Conversion of TensorFlow models for mobile
- Model optimization and size reduction
- Application of quantization
- Inference on mobile devices
- Management of mobile device resources
- Integration of models into mobile apps
- Testing of mobile inference performance
Deploying a Model to an Embedded System (IoT)
- Machine learning on embedded devices
- Application of TensorFlow Lite in embedded systems
- Addressing resource constraints and optimization
- Reduction of model size and computational needs
- Concepts of edge inference
- Processing of sensor and real-time data
- Local execution of predictions
- Considerations for power and memory
- Integration of TensorFlow models into IoT workflows
- Testing and monitoring of edge deployments
Integrating a Model with Different Languages
- TensorFlow model interoperability
- Serving models through APIs
- Using TensorFlow models in diverse programming environments
- Integration via Python
- Incorporation into web applications
- Inference via REST-based services
- Integration into existing applications
- Data exchange and serialization methods
- Considerations for production integration
Troubleshooting
- Diagnosis of TensorFlow installation issues
- Resolution of model-building errors
- Debugging of data preprocessing problems
- Resolution of training failures
- Investigation of GPU and TPU configuration issues
- Diagnosis of memory and performance problems
- Troubleshooting of model saving and loading
- Debugging of deployment challenges
- Practical troubleshooting exercises
Summary and Conclusion
- Recap of TensorFlow 2.x concepts
- Review of neural network and deep learning workflows
- Review of data preparation and model development
- Review of image classification processes
- Review of training and evaluation techniques
- Review of model debugging and optimization
- Review of cloud, mobile, and IoT deployment
- Best practices for TensorFlow development
- Final practical exercise
- Q&A and discussion
Requirements
- Programming proficiency in Python.
- Practical experience with the Linux command line.
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.