torchvision
" The torchvision package consists of popular datasets, model architectures, and common image transformations for computer vision. "
- torchvision.datasets主要包含了一些我们在计算机视觉中常见的数据集
- torchvision.transforms中就包含了许多这样的操作:
- 获取的数据是格式或者大小不一的图片,需要进行归一化和大小缩放等操作
- 图片数据有限时,需要通过对现有图片数据进行各种变换,如缩小或放大、水平或垂直翻转等
- torchvision.models:为了提高训练效率,减少不必要的重复劳动,PyTorch官方也提供了一些预训练好的模型供我们使用
- torchvision.io提供了视频、图片和文件的 IO 操作的功能,它们包括读取、写入、编解码处理操作。随着torchvision的发展,io也增加了更多底层的高效率的API。
- torchvision.ops 为我们提供了许多计算机视觉的特定操作,包括但不仅限于NMS,RoIAlign(MASK R-CNN中应用的一种方法),RoIPool(Fast R-CNN中用到的一种方法)。
- torchvision.utils 为我们提供了一些可视化的方法,可以帮助我们将若干张图片拼接在一起、可视化检测和分割的效果。
PyTorchVideo
PyTorchVideo 是一个专注于视频理解工作的深度学习库。PytorchVideo提供了加速视频理解研究所需的可重用、模块化和高效的组件。PyTorchVideo是使用PyTorch开发的,支持不同的深度学习视频组件,如视频模型、视频数据集和视频特定转换。
安装:
pip install pytorchvideo
PyTorchVideo提供了三种使用方法,并且给每一种都配备了tutorial
- TorchHub,这些模型都已经在TorchHub存在。我们可以根据实际情况来选择需不需要使用预训练模型。除此之外,官方也给出了TorchHub使用的 tutorial 。
- PySlowFast,使用 PySlowFast workflow 去训练或测试PyTorchVideo models/datasets.
- PyTorch Lightning建立一个工作流进行处理
torchtext
torchtext是PyTorch官方用于自然语言处理(NLP)的工具包
主要包含了以下的主要组成部分:
- 数据处理工具 torchtext.data.functional、torchtext.data.utils
- 数据集 torchtext.data.datasets
- 词表工具 torchtext.vocab
- 评测指标 torchtext.metrics
安装:
pip install torchtext
torchaudio
torchaduio是PyTorch官方用于语音处理的工具包
主要包括以下几个部分:
- torchaudio.io:有关音频的I/O
- torchaudio.backend:提供了音频处理的后端,包括:sox,soundfile等
- torchaudio.functional:包含了常用的语音数据处理方法,如:spectrogram,create_fb_matrix等
- torchaudio.transforms:包含了常用的语音数据预处理方法,如:MFCC,MelScale,AmplitudeToDB等
- torchaudio.datasets:包含了常用的语音数据集,如:VCTK,LibriSpeech,yesno等
- torchaudio.models:包含了常用的语音模型,如:Wav2Letter,DeepSpeech等
- torchaudio.models.decoder:包含了常用的语音解码器,如:GreedyDecoder,BeamSearchDecoder等
- torchaudio.pipelines:包含了常用的语音处理流水线,如:SpeechRecognitionPipeline,SpeakerRecognitionPipeline等
- torchaudio.sox_effects:包含了常用的语音处理方法,如:apply_effects_tensor,apply_effects_file等
- torchaudio.compliance.kaldi:包含了与Kaldi工具兼容的方法,如:load_kaldi_fst,load_kaldi_ark等
- torchaudio.kalid_io:包含了与Kaldi工具兼容的方法,如:read_vec_flt_scp,read_vec_int_scp等
- torchaudio.utils:包含了常用的语音工具方法,如:get_audio_backend,set_audio_backend等
安装:
pip install torchaudio # conda install torchaudio
torchaudio中对于一些公共数据集,我们可以主要通过torchaudio.datasets来实现。对于私有数据集,我们也可以通过继承torch.utils.data.Dataset来构建自己的数据集。数据集的读取和处理,我们可以通过torch.utils.data.DataLoader来实现
import torchaudio
import torch
# 公共数据集的构建
yesno_data = torchaudio.datasets.YESNO('.', download=True)
data_loader = torch.utils.data.DataLoader(
yesno_data,
batch_size=1,
shuffle=True,
num_workers=4)
Kaldi是一个用于语音识别研究的工具箱,由CMU开发,开源免费。它包含了构建语音识别系统所需的全部组件,是语音识别领域最流行和影响力最大的开源工具之一。torchaudio中提供了一些与Kaldi工具兼容的方法,这些方法分别属于torchaduio.compliance.kaldi,torchaduio.kaldi_io
在torchaudio.compliance.kaldi中,torchaudio提供了以下三种方法:
- torchaudio.compliance.kaldi.spectrogram:从语音信号中提取Spectrogram特征
- torchaudio.compliance.kaldi.fbank:从语音信号中提取FBank特征
- torchaduio.compliance.kaldi.mfcc:从语音信号中提取MFCC特征
torchaduio.kaldi_io是一个torchaudio的子模块,用于读取和写入Kaldi的数据集格式。
主要接口包括:
- torchaudio.kaldi_io.read_vec_int_ark:从Kaldi的scp文件中读取float类型的数据
- torchaudio.kaldi_io.read_vec_flt_scp
- torchaudio.kaldi_io.read_vec_flt_ark
- torchaudio.kaldi_io.read_mat_scp
- torchaudio.kaldi_io.read_mat_ark