翻译: 2.7. 如何利用帮助文档 深入神经网络 pytorch
Posted AI架构师易筋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译: 2.7. 如何利用帮助文档 深入神经网络 pytorch相关的知识,希望对你有一定的参考价值。
由于本书篇幅的限制,我们不可能介绍每一个 PyTorch 函数和类(你可能不希望我们这样做)。API 文档和其他教程和示例提供了本书之外的大量文档。在本节中,我们为您提供一些探索 PyTorch API 的指导。
2.7.1 查找模块中的所有函数和类
为了知道可以在模块中调用哪些函数和类,我们调用该dir
函数。例如,我们可以查询模块中的所有属性以生成随机数:
import torch
print(dir(torch.distributions))
['AbsTransform', 'AffineTransform', 'Bernoulli', 'Beta', 'Binomial', 'CatTransform', 'Categorical', 'Cauchy', 'Chi2', 'ComposeTransform', 'ContinuousBernoulli', 'CorrCholeskyTransform', 'Dirichlet', 'Distribution', 'ExpTransform', 'Exponential', 'ExponentialFamily', 'FisherSnedecor', 'Gamma', 'Geometric', 'Gumbel', 'HalfCauchy', 'HalfNormal', 'Independent', 'IndependentTransform', 'Kumaraswamy', 'LKJCholesky', 'Laplace', 'LogNormal', 'LogisticNormal', 'LowRankMultivariateNormal', 'LowerCholeskyTransform', 'MixtureSameFamily', 'Multinomial', 'MultivariateNormal', 'NegativeBinomial', 'Normal', 'OneHotCategorical', 'OneHotCategoricalStraightThrough', 'Pareto', 'Poisson', 'PowerTransform', 'RelaxedBernoulli', 'RelaxedOneHotCategorical', 'ReshapeTransform', 'SigmoidTransform', 'SoftmaxTransform', 'StackTransform', 'StickBreakingTransform', 'StudentT', 'TanhTransform', 'Transform', 'TransformedDistribution', 'Uniform', 'VonMises', 'Weibull', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'bernoulli', 'beta', 'biject_to', 'binomial', 'categorical', 'cauchy', 'chi2', 'constraint_registry', 'constraints', 'continuous_bernoulli', 'dirichlet', 'distribution', 'exp_family', 'exponential', 'fishersnedecor', 'gamma', 'geometric', 'gumbel', 'half_cauchy', 'half_normal', 'identity_transform', 'independent', 'kl', 'kl_divergence', 'kumaraswamy', 'laplace', 'lkj_cholesky', 'log_normal', 'logistic_normal', 'lowrank_multivariate_normal', 'mixture_same_family', 'multinomial', 'multivariate_normal', 'negative_binomial', 'normal', 'one_hot_categorical', 'pareto', 'poisson', 'register_kl', 'relaxed_bernoulli', 'relaxed_categorical', 'studentT', 'transform_to', 'transformed_distribution', 'transforms', 'uniform', 'utils', 'von_mises', 'weibull']
通常,我们可以忽略以单个开头和结尾的函数__
(Python 中的特殊对象)或以单个开头的 _
函数(通常是内部函数)。根据剩余的函数或属性名称,我们可能会猜测该模块提供了各种生成随机数的方法,包括从均匀分布 ( uniform)、正态分布 ( normal) 和多项分布 ( multinomial) 中抽样。
2.7.2. 查找特定函数和类的用法
有关如何使用给定函数或类的更具体说明,我们可以调用该help函数。作为一个例子,让我们探索一下张量ones函数的使用说明。
help(torch.ones)
Help on built-in function ones:
ones(...)
ones(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) -> Tensor
Returns a tensor filled with the scalar value `1`, with the shape defined
by the variable argument :attr:`size`.
Args:
size (int...): a sequence of integers defining the shape of the output tensor.
Can be a variable number of arguments or a collection like a list or tuple.
Keyword arguments:
out (Tensor, optional): the output tensor.
dtype (:class:`torch.dtype`, optional): the desired data type of returned tensor.
Default: if ``None``, uses a global default (see :func:`torch.set_default_tensor_type`).
layout (:class:`torch.layout`, optional): the desired layout of returned Tensor.
Default: ``torch.strided``.
device (:class:`torch.device`, optional): the desired device of returned tensor.
Default: if ``None``, uses the current device for the default tensor type
(see :func:`torch.set_default_tensor_type`). :attr:`device` will be the CPU
for CPU tensor types and the current CUDA device for CUDA tensor types.
requires_grad (bool, optional): If autograd should record operations on the
returned tensor. Default: ``False``.
Example::
>>> torch.ones(2, 3)
tensor([[ 1., 1., 1.],
[ 1., 1., 1.]])
>>> torch.ones(5)
tensor([ 1., 1., 1., 1., 1.])
从文档中,我们可以看到该ones函数创建了一个具有指定形状的新张量,并将所有元素的值设置为 1。只要有可能,您应该运行快速测试以确认您的解释:
torch.ones(5)
tensor([ 1., 1., 1., 1., 1.])
在 Jupyter notebook 中,我们可以使用?在另一个窗口中显示文档。例如,list?将创建与 几乎相同的内容,并将help(list)其显示在新的浏览器窗口中。另外,如果我们使用两个问号,比如list??,实现该功能的 Python 代码也会显示出来。
2.7.3. 概括
官方文档提供了大量本书之外的描述和示例。
我们可以通过调用 dirandhelp函数或?在??Jupyter 笔记本中查找 API 使用的文档。
2.7.4. 练习
在深度学习框架中查找任何函数或类的文档。你也可以在框架的官方网站上找到文档吗?
参考
https://d2l.ai/chapter_preliminaries/lookup-api.html
以上是关于翻译: 2.7. 如何利用帮助文档 深入神经网络 pytorch的主要内容,如果未能解决你的问题,请参考以下文章