向深度學(xué)習(xí)勇敢邁出下一步吧,這種機(jī)器學(xué)習(xí)方法正在改變我們周?chē)氖澜。通過(guò)這本實(shí)用的參考書(shū),你將學(xué)會(huì)使用Facebook的開(kāi)源PyTorch框架快速了解深度學(xué)習(xí)的關(guān)鍵思想,掌握創(chuàng)建一個(gè)神經(jīng)網(wǎng)絡(luò)所需的最新技能。伊恩?波特(Ian Pointer)首先會(huì)為你展示如何在云計(jì)算環(huán)境中設(shè)置PyTorch,然后介紹如何創(chuàng)建神經(jīng)網(wǎng)絡(luò),以便對(duì)圖像、聲音、文本等進(jìn)行處理。最后他還會(huì)介紹將遷移學(xué)習(xí)應(yīng)用于圖像處理、模型調(diào)試以及將PyTorch部署到生產(chǎn)環(huán)境的關(guān)鍵內(nèi)容。
Preface
1. Getting Started with PyTorch
Building a Custom Deep Learning Machine
GPU
CPU/Motherboard
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。╝nd 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
Inception/GoogLeNet
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