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 the fundamentals of deep learning
- Key use cases and real-world applications of TensorFlow
- The TensorFlow ecosystem and associated tools
- Workflows in machine learning and deep learning
- Course objectives and an introduction to practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Major distinctions between TensorFlow 1.x and 2.x
- The concept of eager execution
- Simplified APIs and enhanced usability
- Evolutions in model construction and training processes
- Introduction to Keras as the high-level API
- Key considerations when migrating existing TensorFlow applications
- Best practices for utilizing TensorFlow 2.x
Setting up TensorFlow 2.x
- Installation procedures for TensorFlow
- Configuration of a Python development environment
- Verifying the success of the TensorFlow installation
- Managing and installing necessary dependencies
- Setup for CPU and GPU environments
- Utilizing TensorFlow within Jupyter notebooks
- Essential TensorFlow commands and operations
- Addressing common installation and configuration challenges
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
- Automated differentiation
- Exploring TensorFlow APIs and modules
- 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
- Foundations of artificial neural networks
- Neurons, layers, and network architecture design
- Role of activation functions
- The process of forward propagation
- Selection and application of loss functions
- Understanding backpropagation
- Gradient descent and optimization algorithms
- Strategies for learning rates and optimization
- Addressing overfitting and underfitting
- Techniques for regularization
- Management of training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creation of tensors and variables
- Building neural networks utilizing Keras
- Comparison of Sequential and Functional model APIs
- Defining custom models and layers
- Configuration of optimizers
- Choosing suitable loss functions
- Training models using the
fit()method - Implementation of custom training loops
- Use of callbacks and monitoring training processes
- Management of model checkpoints
Analyzing Data
- Understanding datasets relevant to machine learning
- Exploring both structured and unstructured data
- Techniques for data visualization
- Identifying patterns and anomalies in data
- Managing missing and inconsistent data points
- Partitioning data into training, validation, and test sets
- Selection of relevant features
- Preparing datasets for integration with TensorFlow models
Preprocessing Data
- Data normalization and standardization techniques
- Encoding of categorical data
- Handling missing values effectively
- Feature scaling methods
- Preprocessing images for machine learning
- Text data preprocessing strategies
- Application of data augmentation
- Construction of efficient input pipelines
- Utilizing the
tf.datamodule - Techniques for batching, shuffling, caching, and prefetching
- Preparing data for optimal model training
Building a Model
- Selecting an appropriate neural network architecture
- Defining model inputs and outputs
- Creation of dense neural networks
- Choice of activation functions
- Configuring the model for training
- Selection of optimizers and loss functions
- Training and validating the constructed model
- Monitoring key training metrics
- Strategies to enhance model performance
- Prevention of overfitting
- Implementation of regularization and dropout techniques
Implementing a State-of-the-Art Image Classifier
- Fundamentals of image classification tasks
- Preparation of image datasets
- Image normalization and augmentation strategies
- Understanding Convolutional Neural Networks (CNNs)
- Application of convolution and pooling layers
- Designing an effective image classification architecture
- Concepts of transfer learning
- Leveraging pretrained models
- Fine-tuning of pretrained networks
- Development of an advanced image classifier
- Assessment of classification performance
Training the Model
- Configuration of training parameters
- Optimization of batch size and epochs
- Selection of the most suitable optimizer
- Implementation of learning-rate scheduling
- Use of training callbacks
- Application of early stopping
- Checkpointing models during training
- Monitoring training progress
- Detection of overfitting issues
- Improving overall training performance
- 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-based training
- Understanding TPU-based training workflows
- Selecting appropriate hardware for 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
- Selection of appropriate evaluation metrics
- Analysis of accuracy, precision, recall, and F1 score
- Metrics for evaluating regression models
- Interpretation of confusion matrices
- Strategies for validation
- Evaluation of classification models
- Assessing model generalization capabilities
- Identification of model weaknesses
- Comparison of different model configurations
Making Predictions
- Utilizing trained models for inference tasks
- Preparation of new input data
- Execution of batch and individual predictions
- Interpretation of model outputs
- Analysis of classification probabilities
- Processing regression predictions
- Construction of an inference workflow
- Handling of unseen data
- Management of prediction pipelines
Evaluating the Predictions
- Analysis of prediction quality
- Comparison of predictions against expected results
- Identification of false positives and false negatives
- Conducting error analysis
- Evaluation of model confidence levels
- Visualization of prediction results
- Detection of data and prediction bias
- Improving model performance based on prediction analysis
Debugging the Model
- Identification of common training issues
- Diagnosis of incorrect predictions
- Debugging of 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
- Use of TensorFlow debugging and profiling tools
- Enhancing model stability and 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
- Implementation of model versioning
- Exporting models for deployment
- Management of model artifacts
- Preparing models for production environments
Deploying a Model to the Cloud
- Introduction to cloud-based model deployment
- Preparation of TensorFlow models for production
- Serving models via APIs
- Core concepts 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
- Key considerations for production deployment
Deploying a Model to a Mobile Device
- Challenges associated with mobile machine learning
- Overview of TensorFlow Lite
- Conversion of TensorFlow models for mobile deployment
- Model optimization and size reduction techniques
- Application of quantization
- Execution of inference on mobile devices
- 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 in embedded applications
- Managing resource constraints and optimization
- Reduction of model size and computational demands
- 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
- TensorFlow model interoperability
- Serving models through APIs
- Utilization of TensorFlow models across different programming environments
- Integration of Python-based models
- Incorporating models into web applications
- Model inference via REST-based services
- Integration of TensorFlow into existing applications
- Data exchange and serialization techniques
- 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 challenges
- Troubleshooting model loading and saving operations
- Debugging of deployment issues
- 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
- Summary of image classification techniques
- Review of training and evaluation methodologies
- Recap of model debugging and optimization
- Review of deployment strategies for cloud, mobile, and IoT
- Best practices for TensorFlow development
- Final practical exercise
- Q&A and discussion
Requirements
- Programming proficiency in Python.
- 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.