3.7. 查阅文档

3.7.1. 查找模块中的所有函数和类

为了知道模块中可以调用哪些函数和类,可以调用dir函数。 例如,我们可以查询随机数生成模块中的所有属性:

import mlx.core as mx

print(dir(mx.random))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'bernoulli', 'categorical', 'gumbel', 'key', 'laplace', 'multivariate_normal', 'normal', 'permutation', 'randint', 'seed', 'split', 'state', 'truncated_normal', 'uniform']

通常可以忽略以“__”(双下划线)开始和结束的函数,它们是Python中的特殊对象, 或以单个“_”(单下划线)开始的函数,它们通常是内部函数。 根据剩余的函数名或属性名,我们可能会猜测这个模块提供了各种生成随机数的方法, 包括从均匀分布(uniform)、正态分布(normal)和多项分布(multinomial)中采样。

3.7.2. 查找特定函数和类的用法

有关如何使用给定函数或类的更具体说明,可以调用help函数。 例如,我们来查看张量ones函数的用法。

help(mx.ones)
Help on nb_func in module mlx.core:

ones = <nanobind.nb_func object>
    ones(shape: Union[int, Sequence[int]], dtype: Optional[Dtype] = float32, *, stream: Union[None, Stream, Device] = None) -> array

    Construct an array of ones.

    Args:
        shape (int or list(int)): The shape of the output array.
        dtype (Dtype, optional): Data type of the output array. If
          unspecified the output type defaults to float32.

    Returns:
        array: The array of ones with the specified shape.

从文档中,我们可以看到ones函数创建一个具有指定形状的新张量,并将所有元素值设置为1。 下面来运行一个快速测试来确认这一解释:

mx.ones(4)
array([1, 1, 1, 1], dtype=float32)

在Jupyter记事本中,我们可以使用?指令在另一个浏览器窗口中显示文档。 例如,list?指令将创建与help(list)指令几乎相同的内容,并在新的浏览器窗口中显示它。 此外,如果我们使用两个问号,如list??,将显示实现该函数的Python代码。

3.7.3. 小结

  • 官方文档提供了本书之外的大量描述和示例。

  • 可以通过调用dirhelp函数或在Jupyter记事本中使用???查看API的用法文档。

3.7.4. 练习

  1. 在深度学习框架中查找任何函数或类的文档。请尝试在这个框架的官方网站上找到文档。