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
- Key use cases and applications for TensorFlow
- The TensorFlow ecosystem and associated tooling
- Workflows for machine learning and deep learning
- Overview of course goals and practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Key distinctions between TensorFlow 1.x and 2.x
- The concept of eager execution
- Streamlined APIs and enhanced user experience
- Updates to model construction and training processes
- Introduction to Keras as the high-level API
- Considerations for migrating existing TensorFlow applications
- Best practices for TensorFlow 2.x development
Setting up TensorFlow 2.x
- Installation procedures for TensorFlow
- Configuring the Python environment
- Verifying a successful TensorFlow installation
- Installing and managing necessary dependencies
- Setting up CPU and GPU environments
- Utilizing TensorFlow within Jupyter notebooks
- Basic TensorFlow commands and operations
- Addressing common installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and core components
- Tensors and tensor-based operations
- Managing variables and constants
- Computational graphs and the eager execution model
- Automatic differentiation mechanisms
- TensorFlow APIs and functional modules
- Integration with Keras
- Constructing data pipelines using
tf.data - Model serialization via TensorFlow SavedModel
- The broader TensorFlow ecosystem and development lifecycle
How Neural Networks Work
- Core principles of artificial neural networks
- Structure of neurons, layers, and network architectures
- Selection and function of activation functions
- The process of forward propagation
- Types and purposes of loss functions
- Mechanics of backpropagation
- Gradient descent and optimization algorithms
- Adjusting learning rates and optimization strategies
- Understanding overfitting and underfitting
- Application of regularization techniques
- Partitioning data into training, validation, and test sets
Using TensorFlow 2.x to Create Deep Learning Models
- Creation of tensors and variables
- Building neural network structures with Keras
- Utilizing Sequential and Functional model APIs
- Defining custom models and specialized layers
- Configuration of optimizers
- Selecting suitable loss functions
- Training models using the
fit()method - Implementing custom training loops
- Monitoring training via callbacks
- Managing model checkpoints
Analyzing Data
- Understanding datasets suitable for machine learning
- Exploring both structured and unstructured data formats
- Techniques for data visualization
- Identifying underlying patterns and anomalies
- Managing missing or inconsistent data points
- Splitting data into training, validation, and test subsets
- Feature selection processes
- Preparing datasets for ingestion by TensorFlow models
Preprocessing Data
- Data normalization and standardization techniques
- Encoding strategies for categorical data
- Strategies for handling missing values
- Feature scaling methods
- Preprocessing techniques for images
- Text data preprocessing
- Applying data augmentation
- Building efficient input data pipelines
- Utilizing
tf.datafor data handling - Techniques for batching, shuffling, caching, and prefetching
- Final data preparation steps for model training
Building a Model
- Selecting an appropriate neural network architecture
- Defining model input and output specifications
- Constructing dense neural networks
- Choosing effective activation functions
- Configuring the model for the training phase
- Selecting optimal optimizers and loss functions
- Executing model training and validation
- Monitoring key training metrics
- Strategies for enhancing model performance
- Methods to prevent overfitting
- Implementing regularization and dropout techniques
Implementing a State-of-the-Art Image Classifier
- Basics of image classification tasks
- Preparation of image datasets
- Image normalization and augmentation strategies
- Overview of convolutional neural networks (CNNs)
- Role of convolution and pooling layers
- Designing robust image classification architectures
- Concepts of transfer learning
- Utilization of pretrained models
- Fine-tuning pretrained network weights
- Construction of an advanced image classifier
- Evaluation of classification accuracy and performance
Training the Model
- Configuration of training hyperparameters
- Setting batch sizes and epoch counts
- Selecting the appropriate optimizer
- Implementing learning-rate schedules
- Utilizing training callbacks
- Applying early stopping techniques
- Implementing model checkpointing
- Tracking training progress
- Detection of overfitting indicators
- Optimizing training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Architectural differences between CPUs, GPUs, and TPUs
- Benefits of hardware acceleration
- Configuring TensorFlow for GPU-based training
- Understanding TPU-centric training workflows
- Hardware selection based on workload requirements
- Managing computations across different devices
- Optimizing memory and computational resource usage
- Comparative analysis of training performance
- Strategies for distributed and accelerated training
Evaluating the Model
- Selecting relevant evaluation metrics
- Interpreting accuracy, precision, recall, and F1 scores
- Metrics for regression tasks
- Analysis using confusion matrices
- Implementation of validation strategies
- Evaluation techniques for classification models
- Assessing model generalization capabilities
- Identifying areas of model weakness
- Comparison of various model configurations
Making Predictions
- Utilizing trained models for inference tasks
- Preparation of new input data
- Executing batch and individual predictions
- Interpretation of model outputs
- Analysis of classification probabilities
- Generation of regression predictions
- Establishing an inference workflow
- Handling previously 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 levels
- Visualization of prediction results
- Detection of data and prediction biases
- Enhancing model performance based on prediction insights
Debugging the Model
- Identification of common training issues
- Diagnosis of incorrect prediction outputs
- Debugging of data pipeline errors
- Investigation of loss function and metric behavior
- Detection of exploding and vanishing gradient issues
- Diagnosis of overfitting and underfitting
- Inspection of model layers and intermediate outputs
- Use of TensorFlow 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
- Persistence of model architecture and configuration
- Loading models for inference purposes
- Implementing model versioning
- Exporting models for deployment
- Management of model artifacts
- Preparation of models for production environments
Deploying a Model to the Cloud
- Introduction to cloud-based model deployment
- Preparation of TensorFlow models for production use
- Serving models via API endpoints
- Fundamentals of model serving
- Containerization of TensorFlow applications
- Execution of cloud-based inference
- Scaling of model-serving workloads
- Monitoring of deployed models
- Management of model versions in the cloud
- Considerations for production-grade deployment
Deploying a Model to a Mobile Device
- Challenges inherent to mobile machine learning
- Overview of TensorFlow Lite
- Conversion of TensorFlow models for mobile environments
- Model optimization and size reduction techniques
- Application of quantization
- Execution of inference on mobile hardware
- Management of mobile device resources
- Integration of models into mobile applications
- Testing of mobile inference performance
Deploying a Model to an Embedded System (IoT)
- Machine learning on embedded devices
- Use of TensorFlow Lite for embedded applications
- Addressing resource constraints and optimization
- Reduction of model size and computational load
- Concepts of edge inference
- Processing of sensor and real-time data
- Execution of local predictions
- Considerations for power and memory usage
- Integration of TensorFlow models into IoT workflows
- Testing and monitoring of edge deployments
Integrating a Model with Different Languages
- Interoperability of TensorFlow models
- Serving models through API interfaces
- Utilization of TensorFlow models in various programming environments
- Python-based model integration techniques
- Integration of models into web applications
- Model inference via REST-based services
- Incorporating TensorFlow into existing applications
- Strategies for data exchange and serialization
- Considerations for production-level integration
Troubleshooting
- Diagnosis of TensorFlow installation issues
- Troubleshooting of model-building errors
- Debugging of data preprocessing problems
- Resolution of training failures
- Investigation of GPU and TPU configuration errors
- Diagnosis of memory and performance bottlenecks
- Troubleshooting of model loading and saving issues
- Debugging of deployment-related problems
- Practical troubleshooting exercises
Summary and Conclusion
- Review of core TensorFlow 2.x concepts
- Recap of neural network and deep learning workflows
- Review of data preparation and model development processes
- Summary of image classification techniques
- Review of training and evaluation methodologies
- Recap of model debugging and optimization strategies
- Summary of cloud, mobile, and IoT deployment practices
- Best practices for TensorFlow development
- Final practical exercise
- Open questions and discussion
Requirements
- Programming proficiency in Python.
- Familiarity with the Linux command line.
Audience
- 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.