Documentação ============ .. raw:: html
mxnetpytorchtensorflow
.. raw:: html
Devido a restrições na extensão deste livro, não podemos apresentar todas as funções e classes do MXNet (e você provavelmente não gostaria que o fizéssemos). A documentação da API e os tutoriais e exemplos adicionais fornecem muita documentação além do livro. Nesta seção, fornecemos algumas orientações para explorar a API MXNet. .. raw:: html
.. raw:: html
Devido a restrições na extensão deste livro, não podemos apresentar todas as funções e classes do PyTorch (e você provavelmente não gostaria que o fizéssemos). A documentação da API e os tutoriais e exemplos adicionais fornecem muita documentação além do livro. Nesta seção, fornecemos algumas orientações para explorar a API PyTorch. .. raw:: html
.. raw:: html
Devido a restrições na extensão deste livro, não podemos apresentar todas as funções e classes do TensorFlow (e você provavelmente não gostaria que o fizéssemos). A documentação da API e os tutoriais e exemplos adicionais fornecem muita documentação além do livro. Nesta seção, fornecemos algumas orientações para explorar a API TensorFlow. .. raw:: html
.. raw:: html
Encontrando Todas as Funções e Classes em um Módulo --------------------------------------------------- Para saber quais funções e classes podem ser chamadas em um módulo, nós invoque a função ``dir``. Por exemplo, podemos consultar todas as propriedades no módulo para gerar números aleatórios: .. raw:: html
mxnetpytorchtensorflow
.. raw:: html
.. code:: python from mxnet import np print(dir(np.random)) .. parsed-literal:: :class: output ['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_mx_nd_np', 'beta', 'chisquare', 'choice', 'exponential', 'gamma', 'gumbel', 'logistic', 'lognormal', 'multinomial', 'multivariate_normal', 'normal', 'pareto', 'power', 'rand', 'randint', 'randn', 'rayleigh', 'shuffle', 'uniform', 'weibull'] .. raw:: html
.. raw:: html
.. code:: python import torch print(dir(torch.distributions)) .. parsed-literal:: :class: output ['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'] .. raw:: html
.. raw:: html
.. code:: python import tensorflow as tf print(dir(tf.random)) .. parsed-literal:: :class: output ['Algorithm', 'Generator', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_sys', 'all_candidate_sampler', 'categorical', 'create_rng_state', 'experimental', 'fixed_unigram_candidate_sampler', 'gamma', 'get_global_generator', 'learned_unigram_candidate_sampler', 'log_uniform_candidate_sampler', 'normal', 'poisson', 'set_global_generator', 'set_seed', 'shuffle', 'stateless_binomial', 'stateless_categorical', 'stateless_gamma', 'stateless_normal', 'stateless_parameterized_truncated_normal', 'stateless_poisson', 'stateless_truncated_normal', 'stateless_uniform', 'truncated_normal', 'uniform', 'uniform_candidate_sampler'] .. raw:: html
.. raw:: html
Geralmente, podemos ignorar funções que começam e terminam com ``__`` (objetos especiais em Python) ou funções que começam com um único ``_`` (normalmente funções internas). Com base nos nomes de funções ou atributos restantes, podemos arriscar um palpite de que este módulo oferece vários métodos para gerar números aleatórios, incluindo amostragem da distribuição uniforme (``uniforme``), distribuição normal (``normal``) e distribuição multinomial (``multinomial``). Buscando o Uso de Funções e Classes Específicas ----------------------------------------------- Para obter instruções mais específicas sobre como usar uma determinada função ou classe, podemos invocar a função ``help``. Como um exemplo, vamos explorar as instruções de uso para a função ``ones`` dos tensores. .. raw:: html
mxnetpytorchtensorflow
.. raw:: html
.. code:: python help(np.ones) .. parsed-literal:: :class: output Help on function ones in module mxnet.numpy: ones(shape, dtype=, order='C', ctx=None) Return a new array of given shape and type, filled with ones. This function currently only supports storing multi-dimensional data in row-major (C-style). Parameters ---------- shape : int or tuple of int The shape of the empty array. dtype : str or numpy.dtype, optional An optional value type. Default is `numpy.float32`. Note that this behavior is different from NumPy's `ones` function where `float64` is the default value, because `float32` is considered as the default data type in deep learning. order : {'C'}, optional, default: 'C' How to store multi-dimensional data in memory, currently only row-major (C-style) is supported. ctx : Context, optional An optional device context (default is the current default context). Returns ------- out : ndarray Array of ones with the given shape, dtype, and ctx. Examples -------- >>> np.ones(5) array([1., 1., 1., 1., 1.]) >>> np.ones((5,), dtype=int) array([1, 1, 1, 1, 1], dtype=int64) >>> np.ones((2, 1)) array([[1.], [1.]]) >>> s = (2,2) >>> np.ones(s) array([[1., 1.], [1., 1.]]) .. raw:: html
.. raw:: html
.. code:: python help(torch.ones) .. parsed-literal:: :class: output 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.]) .. raw:: html
.. raw:: html
.. code:: python help(tf.ones) .. parsed-literal:: :class: output Help on function ones in module tensorflow.python.ops.array_ops: ones(shape, dtype=tf.float32, name=None) Creates a tensor with all elements set to one (1). See also `tf.ones_like`, `tf.zeros`, `tf.fill`, `tf.eye`. This operation returns a tensor of type `dtype` with shape `shape` and all elements set to one. >>> tf.ones([3, 4], tf.int32) Args: shape: A `list` of integers, a `tuple` of integers, or a 1-D `Tensor` of type `int32`. dtype: Optional DType of an element in the resulting `Tensor`. Default is `tf.float32`. name: Optional string. A name for the operation. Returns: A `Tensor` with all elements set to one (1). .. raw:: html
.. raw:: html
A partir da documentação, podemos ver que a função ``ones`` cria um novo tensor com a forma especificada e define todos os elementos com o valor de 1. Sempre que possível, você deve executar um teste rápido para confirmar seu interpretação: .. raw:: html
mxnetpytorchtensorflow
.. raw:: html
.. code:: python np.ones(4) .. parsed-literal:: :class: output array([1., 1., 1., 1.]) .. raw:: html
.. raw:: html
.. code:: python torch.ones(4) .. parsed-literal:: :class: output tensor([1., 1., 1., 1.]) .. raw:: html
.. raw:: html
.. code:: python tf.ones(4) .. parsed-literal:: :class: output .. raw:: html
.. raw:: html
No bloco de notas Jupyter, podemos usar ``?`` para exibir o documento em outra janela. Por exemplo, ``list?`` criará conteúdo que é quase idêntico a ``help(list)``, exibindo-o em um novo navegador janela. Além disso, se usarmos dois pontos de interrogação, como ``list??``, o código Python que implementa a função também será exibido. Sumário ------- - A documentação oficial fornece muitas descrições e exemplos que vão além deste livro. - Podemos consultar a documentação para o uso de uma API chamando as funções ``dir`` e\ ``help``, ou ``?`` E ``??`` em blocos de notas Jupyter. Exercícios ---------- 1. Procure a documentação de qualquer função ou classe na estrutura de *Deep Learning*. Você também pode encontrar a documentação no site oficial do framework? .. raw:: html
mxnetpytorchtensorflow
.. raw:: html
`Discussions `__ .. raw:: html
.. raw:: html
`Discussions `__ .. raw:: html
.. raw:: html
`Discussions `__ .. raw:: html
.. raw:: html
.. raw:: html