Course Outline
Introduction
- Introductory overview of TensorFlow and deep learning
- Key use cases and real-world applications of TensorFlow
- The TensorFlow ecosystem and associated tooling
- Workflows for machine learning and deep learning
- Overview of course goals and hands-on exercises
TensorFlow 2.x vs Previous Versions \u2014 What's New
- Major differences between TensorFlow 1.x and 2.x
- Eager execution mode
- Simplified APIs and enhanced usability
- Updates to model construction and training processes
- Introduction to Keras as the high-level interface
- Considerations for migrating existing TensorFlow applications
- Best practices for TensorFlow 2.x development
Setting up TensorFlow 2.x
- Installing TensorFlow
- Configuring the Python environment
- Verifying the TensorFlow installation
- Managing necessary dependencies
- Setting up CPU and GPU environments
- Working with TensorFlow in Jupyter notebooks
- Essential TensorFlow commands and operations
- Resolving installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and core components
- Tensors and tensor operations
- Handling variables and constants
- Computational graphs and the benefits of eager execution
- Automatic differentiation
- TensorFlow APIs and modular structure
- Integration with Keras
- Constructing data pipelines using
tf.data - Model serialization and the TensorFlow SavedModel format
- The TensorFlow ecosystem and standard development workflow
How Neural Networks Work
- Fundamentals of artificial neural networks
- Neurons, layers, and network structures
- Role of activation functions
- Forward propagation mechanism
- Selection and application of loss functions
- The process of backpropagation
- Gradient descent and optimization techniques
- Learning rates and optimization strategies
- Understanding overfitting and underfitting
- Techniques for regularization
- Managing training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating tensors and defining variables
- Constructing neural networks with Keras
- Utilizing Sequential and Functional model APIs
- Defining custom models and layers
- Configuring optimizers
- Choosing appropriate loss functions
- Training models using
fit() - Implementing custom training loops
- Using callbacks for training monitoring
- Managing model checkpoints
Analyzing Data
- Understanding datasets suitable for machine learning
- Exploring both structured and unstructured data
- Data visualization techniques
- Identifying patterns and detecting anomalies
- Handling missing and inconsistent data points
- Splitting data into training, validation, and test sets
- Selecting relevant features
- Preparing datasets for TensorFlow models
Preprocessing Data
- Data normalization and standardization
- Encoding categorical data
- Strategies for handling missing values
- Feature scaling methods
- Image preprocessing techniques
- Text preprocessing workflows
- Implementing data augmentation
- Building efficient input pipelines
- Leveraging
tf.data - Batching, shuffling, caching, and prefetching data
- Preparing data for model training
Building a Model
- Selecting the appropriate neural network architecture
- Defining model inputs and outputs
- Creating dense neural networks
- Choosing suitable activation functions
- Configuring the model for the training phase
- 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 image datasets
- Image normalization and augmentation
- Convolutional neural networks (CNNs)
- Convolution and pooling layers
- Designing an image classification architecture
- Utilizing transfer learning
- Working with pretrained models
- Fine-tuning pretrained networks
- Building an advanced image classifier
- Evaluating classification performance
Training the Model
- Configuring training parameters
- Setting batch size and epochs
- Selecting the right optimizer
- Learning-rate scheduling
- Implementing training callbacks
- Using early stopping
- Checkpointing models
- Monitoring training progress
- Detecting signs of overfitting
- Enhancing training performance
- Considerations for distributed training
Training on a GPU vs a TPU
- Architectures of CPU, GPU, and TPU
- Benefits of hardware acceleration
- Configuring TensorFlow for GPU training
- Understanding TPU-based training
- Selecting appropriate hardware for various 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 suitable evaluation metrics
- Metrics for accuracy, precision, recall, and F1 score
- Evaluation metrics for regression tasks
- Interpreting confusion matrices
- Validation strategies
- Evaluating classification models
- Assessing model generalization
- Identifying model weaknesses
- Comparing different model configurations
Making Predictions
- Using trained models for inference
- Preparing new input data
- Performing both batch and individual predictions
- Interpreting model outputs
- Understanding classification probabilities
- Generating regression predictions
- Building a robust inference workflow
- Handling 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 error analysis
- Evaluating model confidence
- Visualizing prediction outcomes
- Detecting bias in data and predictions
- Enhancing model performance based on prediction analysis
Debugging the Model
- Identifying common training issues
- Diagnosing incorrect predictions
- Debugging data pipeline problems
- Investigating the behavior of loss and metrics
- Detecting exploding and vanishing gradients
- Diagnosing overfitting and underfitting
- Inspecting model layers and outputs
- Utilizing TensorFlow debugging and profiling tools
- Improving model stability and overall performance
Saving a Model
- Saving trained models
- Using the TensorFlow SavedModel format
- Saving and restoring model weights
- Saving model architecture and configuration
- Loading models for inference
- Model versioning practices
- 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
- Serving models via APIs
- Core concepts of model serving
- Containerizing TensorFlow applications
- Cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models
- Managing 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 models and reducing size
- Quantization techniques
- Running inference on mobile devices
- Managing resources on mobile devices
- Integrating models into mobile applications
- Testing 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 demands
- Edge inference
- Processing sensor and real-time data
- Running predictions locally
- Considering power and memory limitations
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- Interoperability of TensorFlow models
- Serving models through APIs
- Utilizing TensorFlow models in various programming environments
- Python-based model integration
- Integrating models into web applications
- Model inference via REST-based services
- Integrating TensorFlow into existing applications
- Data exchange and serialization
- Considerations for production integration
Troubleshooting
- Diagnosing TensorFlow installation issues
- Troubleshooting errors in model building
- Debugging problems in data preprocessing
- Resolving training failures
- Investigating GPU and TPU configuration issues
- Diagnosing memory and performance bottlenecks
- Troubleshooting model loading and saving
- Debugging deployment challenges
- Practical troubleshooting exercises
Summary and Conclusion
- Review of TensorFlow 2.x core concepts
- Review of neural network and deep learning workflows
- Review of data preparation and model development
- Review of image classification techniques
- Review of training and evaluation methods
- Review of model debugging and optimization
- Review of deployment to cloud, mobile, and IoT
- Best practices for TensorFlow development
- Final practical exercise
- Open questions and discussion
Requirements
- Programming experience in Python.
- Familiarity with the Linux command line.
Target Audience
- Developers
- Data Scientists
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 4800 € + VAT*
Contact us for an exact quote and to hear our latest promotions
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.