Course Outline
Introduction
- Introduction to TensorFlow and deep learning
- TensorFlow use cases and applications
- TensorFlow ecosystem and tooling
- Machine learning and deep learning workflows
- Overview of the course objectives and practical exercises
TensorFlow 2.x vs Previous Versions — What's New
- Key differences between TensorFlow 1.x and 2.x
- Eager execution
- Simplified APIs and improved usability
- Changes to model construction and training
- Introduction to Keras as the high-level API
- Migration considerations for existing TensorFlow applications
- TensorFlow 2.x best practices
Setting up TensorFlow 2.x
- Installing TensorFlow
- Configuring a Python environment
- Verifying the TensorFlow installation
- Installing and managing required dependencies
- Configuring CPU and GPU environments
- Using TensorFlow with Jupyter notebooks
- Basic TensorFlow commands and operations
- Troubleshooting installation and configuration issues
Overview of TensorFlow 2.x Features and Architecture
- TensorFlow architecture and core components
- Tensors and tensor operations
- Variables and constants
- Computational graphs and eager execution
- Automatic differentiation
- TensorFlow APIs and modules
- Keras integration
- Data pipelines with
tf.data - Model serialization and TensorFlow SavedModel
- TensorFlow ecosystem and development workflow
How Neural Networks Work
- Fundamentals of artificial neural networks
- Neurons, layers, and network architectures
- Activation functions
- Forward propagation
- Loss functions
- Backpropagation
- Gradient descent and optimization
- Learning rates and optimization strategies
- Overfitting and underfitting
- Regularization techniques
- Training, validation, and test datasets
Using TensorFlow 2.x to Create Deep Learning Models
- Creating tensors and variables
- Building neural networks with Keras
- Sequential and functional model APIs
- Defining custom models and layers
- Configuring optimizers
- Selecting appropriate loss functions
- Training models with
fit() - Custom training loops
- Callbacks and training monitoring
- Managing model checkpoints
Analyzing Data
- Understanding datasets for machine learning
- Exploring structured and unstructured data
- Data visualization
- Identifying patterns and anomalies
- Handling missing and inconsistent data
- 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
- Handling missing values
- Feature scaling
- Image preprocessing
- Text preprocessing
- Data augmentation
- Building efficient input pipelines
- Using
tf.data - Batching, shuffling, caching, and prefetching
- Preparing data for model training
Building a Model
- Selecting an appropriate neural network architecture
- Defining model inputs and outputs
- Creating dense neural networks
- Choosing activation functions
- Configuring the model for training
- Selecting optimizers and loss functions
- Training and validating the model
- Monitoring training metrics
- 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
- Convolution and pooling layers
- Designing an image classification architecture
- Transfer learning
- Using pretrained models
- Fine-tuning pretrained networks
- Building an advanced image classifier
- Evaluating classification performance
Training the Model
- Configuring training parameters
- Batch size and epochs
- Optimizer selection
- Learning-rate scheduling
- Training callbacks
- Early stopping
- Checkpointing models
- Monitoring training progress
- Detecting overfitting
- Improving training performance
- Distributed training considerations
Training on a GPU vs a TPU
- CPU, GPU, and TPU architectures
- Advantages of hardware acceleration
- Configuring TensorFlow for GPU training
- Understanding TPU-based training
- Selecting hardware for different workloads
- Moving computations between devices
- Managing memory and computational resources
- Comparing training performance
- Distributed and accelerated training strategies
Evaluating the Model
- Selecting appropriate evaluation metrics
- Accuracy, precision, recall, and F1 score
- Regression evaluation metrics
- Confusion matrices
- Validation strategies
- Evaluating classification models
- Evaluating model generalization
- Identifying model weaknesses
- Comparing different model configurations
Making Predictions
- Using trained models for inference
- Preparing new input data
- Performing batch and individual predictions
- Interpreting model outputs
- Classification probabilities
- Regression predictions
- Building an inference workflow
- Handling unseen data
- Managing prediction pipelines
Evaluating the Predictions
- Analyzing prediction quality
- Comparing predictions with expected results
- Identifying false positives and false negatives
- Error analysis
- Evaluating model confidence
- Visualizing prediction results
- Detecting data and prediction bias
- Improving model performance based on prediction analysis
Debugging the Model
- Identifying common training problems
- Diagnosing incorrect predictions
- Debugging data pipelines
- Investigating loss and metric behavior
- Detecting exploding and vanishing gradients
- Diagnosing overfitting and underfitting
- Inspecting model layers and outputs
- Using TensorFlow debugging and profiling tools
- Improving model stability and performance
Saving a Model
- Saving trained models
- TensorFlow SavedModel format
- Saving and restoring model weights
- Saving model architecture and configuration
- Loading models for inference
- 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
- Serving models through APIs
- Model serving concepts
- Containerizing TensorFlow applications
- Cloud-based inference
- Scaling model-serving workloads
- Monitoring deployed models
- Managing model versions
- Production deployment considerations
Deploying a Model to a Mobile Device
- Challenges of mobile machine learning
- TensorFlow Lite
- Converting TensorFlow models for mobile deployment
- Model optimization and size reduction
- Quantization
- Running inference on mobile devices
- Managing mobile device resources
- Integrating models into mobile applications
- Testing mobile inference performance
Deploying a Model to an Embedded System (IoT)
- Machine learning on embedded devices
- TensorFlow Lite for embedded applications
- Resource constraints and optimization
- Reducing model size and computational requirements
- Edge inference
- Sensor and real-time data processing
- Running predictions locally
- Power and memory considerations
- Integrating TensorFlow models into IoT workflows
- Testing and monitoring edge deployments
Integrating a Model with Different Languages
- TensorFlow model interoperability
- Serving models through APIs
- Using TensorFlow models from different programming environments
- Python-based model integration
- Integrating models into web applications
- Model inference through REST-based services
- Integrating TensorFlow into existing applications
- Data exchange and serialization
- Production integration considerations
Troubleshooting
- Diagnosing TensorFlow installation problems
- Troubleshooting model-building errors
- Debugging data preprocessing issues
- Resolving training failures
- Investigating GPU and TPU configuration problems
- Diagnosing memory and performance issues
- Troubleshooting model loading and saving
- Debugging deployment problems
- Practical troubleshooting exercises
Summary and Conclusion
- Review of TensorFlow 2.x concepts
- Review of neural network and deep learning workflows
- Review of data preparation and model development
- Review of image classification
- 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
- Questions and discussion
Requirements
- Programming experience in Python.
- Experience with the Linux command line.
Audience
- Developers
- Data Scientists
Testimonials (7)
A wealth of expert knowledge, clear and specific answers from the trainer to questions. Content tailored to our needs. Well-organized knowledge.
Augustyn - Samsung Electronics Polska Sp. z o.o.
Course - Deep Learning with TensorFlow 2
Machine Translated
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
Pleasant atmosphere, extensive knowledge of the trainer, exhaustive answers to questions, even those going beyond the scope of the training.
Mateusz Pilecki - AGH
Course - Deep Learning with TensorFlow 2
Machine Translated
Various examples of how to apply neural networks in different contexts. The notebooks were at a high level. One could also learn a bit about other tools useful for working with Machine Learning.
Dominik Zurek - AGH
Course - Deep Learning with TensorFlow 2
Machine Translated
Enjoy the diversity of approaches, data, and problems to solve. There is a vast space for asking questions on technical topics as well as industry-related issues.
Karol Talaga - AGH
Course - Deep Learning with TensorFlow 2
Machine Translated