向深度学习勇敢迈出下一步吧,这种机器学习方法正在改变我们周围的世界。通过这本实用的参考书,你将学会使用Facebook的开源PyTorch框架快速了解深度学习的关键思想,掌握创建你自己的神经网络所需的新技能。
Ian Pointer首先为你展示如何在基于云的环境中设置PyTorch,然后通过深入了解每个元素,带领你创建有助于对图像、声音、文本等进行操作的神经网络架构。他还介绍了将迁移学习应用于图像、调试模型以及生产环境中的PyTorch的关键概念。
目錄:
Preface
1. Getting Started with PyTorch
Building a Custom Deep Learning Machine
GPU
CPUMotherboard
RAM
Storage
Deep Learning in the Cloud
Google Colaboratory
Cloud Providers
Which Cloud Provider Should I Use?
Using Jupyter Notebook
Installing PyTorch from Scratch
Download CUDA
Anaconda
Finally, PyTorch!(and Jupyter Notebook)
Tensors
Tensor Operations
Tensor Broadcasting
Conclusion
Further Reading
2. Image Classification with PyTorch
Our Classification Problem
Traditional Challenges
But First, Data
PyTorch and Data Loaders
Building a Training Dataset
Building Validation and Test Datasets
Finally, a Neural Network!
Activation Functions
Creating a Network
Loss Functions
Optimizing
Training
Making It Work on the GPU
Putting It All Together
Making Predictions
Model Saving
Conclusion
Further Reading
3. Convolutional Neural Networks
Our First Convolutional Model
Convolutions
Pooling
Dropout
History of CNN Architectures
AlexNet
InceptionGoogLeNet
VGG
ResNet
Other Architectures Are Available!
Using Pretrained Models in PyTorch
Examining a Model''s Structure
BatchNorm
Which Model Should You Use?
One-Stop Shopping for Models: PyTorch Hub
Conclusion
Further Reading
4. Transfer Learning and Other Tricks
Transfer Learning with ResNet
Finding That Learning Rate
Differential Learning Rates
Data Augmentation
Torchvision Transforms
Color Spaces and Lambda Transforms
Custom Transform Classes
Start Small and Get Bigger!
Ensembles
Conclusion
Further Reading
5. Text Classificati0n
Recurrent Neural Networks
Long Short-Term Memory Networks
Gated Recurrent Units
biLSTM
Embeddings
torchtext
Getting Our Data: Tweets!
Defining Fields
Building a Vocabulary
Creating Our Model
Updating the Training Loop
Classifying Tweets
Data Augmentation
Random Insertion
Random Deletion
Random Swap
Back Translation
Augmentation and torchtext
Transfer Learning?
Conclusion
Further Reading
6. A Journey into Sound
Sound
The ESC-50 Dataset
Obtaining the Dataset
Playing Audio in Jupyter
Exploring ESC-50
SoX and LibROSA
torchaudio
Building an ESC-50 Dataset
A CNN Model for ESC-50
This Frequency Is My Universe
Mel Spectrograms
A New Dataset
A Wild ResNet Appears
Finding a Learning Rate
Audio Data Augmentation
torchaudio Transforms
SoX Effect Chains
SpecAugment
Further Experiments
Conclusion
Further Reading
7. Debugging PyTorch Models
It''s 3 a.m. What Is Your Data Doing?
TensorBoard
Installing TensorBoard
Sending Data to TensorBoard
PyTorch Hooks
Plotting Mean and Standard Deviation
Class Activation Mapping
Flame Graphs
Installing py-spy
Reading Flame Graphs
Fixing a Slow Transformation
Debugging GPU Issues
Checking Your GPU
Gradient Checkpointing
Conclusion
Further Reading
8. PyTorch in Production
Model Serving
Building a Flask Service
Setting Up the Model Parameters
Building the Docker Container
Local Versus Cloud Storage
Logging and Telemetry
Deploying on Kubernetes
Setting Up on Google Kubernetes Engine
Creating a k8s Cluster
Scaling Services
Updates and Cleaning Up
TorchScript
Tracing
Scripting
TorchScript Limitations
Working with libTorch
Obtaining libTorch and Hello World
Importing a TorchScript Model
Conclusion
Further Reading
9. PyTorch in the Wild
Data Augmentation: Mixed and Smoothed
mixup
Label Smoothing
Computer, Enhance!
Introduction to Super-Resolution
An Introduction to GANs
The Forger and the Critic
Training a GAN
The Dangers of Mode Collapse
ESRGAN
Further Adventures in Image Detection
Object Detection
Faster R-CNN and Mask R-CNN
Adversarial Samples
Black-Box Attacks
Defending Against Adversarial Attacks
More Than Meets the Eye: The Transformer Architecture
Paying Attention
Attention Is All You Need
BERT
FastBERT
GPT-2
Generating Text with GPT-2
ULMFiT
What to Use?
Conclusion
Further Reading
Index