diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 0bdadc036..f0399f624 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 78e86a9caf7acb193f064f97ea2f4572 +config: 38bd5d82efdab9011af8239531f26d1f tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/dev/extensions.rst b/docs/build/html/_sources/dev/extensions.rst index 9aae931a3..0a134e7f5 100644 --- a/docs/build/html/_sources/dev/extensions.rst +++ b/docs/build/html/_sources/dev/extensions.rst @@ -15,7 +15,7 @@ Introducing the Example ----------------------- Let's say that you would like an operation that takes in two arrays, -``x`` and ``y``, scales them both by some coefficents ``alpha`` and ``beta`` +``x`` and ``y``, scales them both by some coefficients ``alpha`` and ``beta`` respectively, and then adds them together to get the result ``z = alpha * x + beta * y``. Well, you can very easily do that by just writing out a function as follows: @@ -69,7 +69,7 @@ C++ API: .. code-block:: C++ /** - * Scale and sum two vectors elementwise + * Scale and sum two vectors element-wise * z = alpha * x + beta * y * * Follow numpy style broadcasting between x and y @@ -230,7 +230,7 @@ Let's re-implement our operation now in terms of our :class:`Axpby` primitive. This operation now handles the following: -#. Upcast inputs and resolve the the output data type. +#. Upcast inputs and resolve the output data type. #. Broadcast the inputs and resolve the output shape. #. Construct the primitive :class:`Axpby` using the given stream, ``alpha``, and ``beta``. #. Construct the output :class:`array` using the primitive and the inputs. @@ -284,14 +284,14 @@ pointwise. This is captured in the templated function :meth:`axpby_impl`. T alpha = static_cast(alpha_); T beta = static_cast(beta_); - // Do the elementwise operation for each output + // Do the element-wise operation for each output for (size_t out_idx = 0; out_idx < out.size(); out_idx++) { // Map linear indices to offsets in x and y auto x_offset = elem_to_loc(out_idx, x.shape(), x.strides()); auto y_offset = elem_to_loc(out_idx, y.shape(), y.strides()); // We allocate the output to be contiguous and regularly strided - // (defaults to row major) and hence it doesn't need additonal mapping + // (defaults to row major) and hence it doesn't need additional mapping out_ptr[out_idx] = alpha * x_ptr[x_offset] + beta * y_ptr[y_offset]; } } @@ -305,7 +305,7 @@ if we encounter an unexpected type. /** Fall back implementation for evaluation on CPU */ void Axpby::eval(const std::vector& inputs, array& out) { - // Check the inputs (registered in the op while contructing the out array) + // Check the inputs (registered in the op while constructing the out array) assert(inputs.size() == 2); auto& x = inputs[0]; auto& y = inputs[1]; @@ -485,7 +485,7 @@ each data type. instantiate_axpby(float32, float); instantiate_axpby(float16, half); - instantiate_axpby(bflot16, bfloat16_t); + instantiate_axpby(bfloat16, bfloat16_t); instantiate_axpby(complex64, complex64_t); This kernel will be compiled into a metal library ``mlx_ext.metallib`` as we @@ -537,7 +537,7 @@ below. compute_encoder->setComputePipelineState(kernel); // Kernel parameters are registered with buffer indices corresponding to - // those in the kernel decelaration at axpby.metal + // those in the kernel declaration at axpby.metal int ndim = out.ndim(); size_t nelem = out.size(); @@ -568,7 +568,7 @@ below. // Fix the 3D size of the launch grid (in terms of threads) MTL::Size grid_dims = MTL::Size(nelem, 1, 1); - // Launch the grid with the given number of threads divded among + // Launch the grid with the given number of threads divided among // the given threadgroups compute_encoder->dispatchThreads(grid_dims, group_dims); } @@ -581,7 +581,7 @@ to give us the active metal compute command encoder instead of building a new one and calling :meth:`compute_encoder->end_encoding` at the end. MLX keeps adding kernels (compute pipelines) to the active command encoder until some specified limit is hit or the compute encoder needs to be flushed -for synchronization. MLX also handles enqueuing and commiting the associated +for synchronization. MLX also handles enqueuing and committing the associated command buffers as needed. We suggest taking a deeper dive into :class:`metal::Device` if you would like to study this routine further. @@ -601,8 +601,8 @@ us the following :meth:`Axpby::jvp` and :meth:`Axpby::vjp` implementations. const std::vector& tangents, const std::vector& argnums) { // Forward mode diff that pushes along the tangents - // The jvp transform on the the primitive can built with ops - // that are scheduled on the same stream as the primtive + // The jvp transform on the primitive can built with ops + // that are scheduled on the same stream as the primitive // If argnums = {0}, we only push along x in which case the // jvp is just the tangent scaled by alpha @@ -642,7 +642,7 @@ own :class:`Primitive`. .. code-block:: C++ - /** Vectorize primitve along given axis */ + /** Vectorize primitive along given axis */ std::pair Axpby::vmap( const std::vector& inputs, const std::vector& axes) { @@ -666,7 +666,7 @@ Let's look at the overall directory structure first. | └── setup.py * ``extensions/axpby/`` defines the C++ extension library -* ``extensions/mlx_sample_extensions`` sets out the strucutre for the +* ``extensions/mlx_sample_extensions`` sets out the structure for the associated python package * ``extensions/bindings.cpp`` provides python bindings for our operation * ``extensions/CMakeLists.txt`` holds CMake rules to build the library and @@ -697,7 +697,7 @@ are already provided, adding our :meth:`axpby` becomes very simple! py::kw_only(), "stream"_a = py::none(), R"pbdoc( - Scale and sum two vectors elementwise + Scale and sum two vectors element-wise ``z = alpha * x + beta * y`` Follows numpy style broadcasting between ``x`` and ``y`` @@ -840,7 +840,7 @@ This will result in a directory structure as follows: | ... When you try to install using the command ``python -m pip install .`` -(in ``extensions/``), the package will be installed with the same strucutre as +(in ``extensions/``), the package will be installed with the same structure as ``extensions/mlx_sample_extensions`` and the C++ and metal library will be copied along with the python binding since they are specified as ``package_data``. diff --git a/docs/build/html/_sources/index.rst b/docs/build/html/_sources/index.rst index ac4932f10..9f0445a18 100644 --- a/docs/build/html/_sources/index.rst +++ b/docs/build/html/_sources/index.rst @@ -19,7 +19,7 @@ The main differences between MLX and NumPy are: The design of MLX is inspired by frameworks like `PyTorch `_, `Jax `_, and -`ArrayFire `_. A noteable difference from these +`ArrayFire `_. A notable difference from these frameworks and MLX is the *unified memory model*. Arrays in MLX live in shared memory. Operations on MLX arrays can be performed on any of the supported device types without performing data copies. Currently supported device types @@ -57,6 +57,7 @@ are the CPU and GPU. python/random python/transforms python/fft + python/linalg python/nn python/optimizers python/tree_utils diff --git a/docs/build/html/_sources/indexing.rst b/docs/build/html/_sources/indexing.rst new file mode 100644 index 000000000..093fb1f58 --- /dev/null +++ b/docs/build/html/_sources/indexing.rst @@ -0,0 +1,12 @@ +.. _indexing: + +Indexing Arrays +=============== + +.. currentmodule:: mlx.core + +For the most part, indexing an MLX :obj:`array` works the same as indexing a +NumPy :obj:`numpy.ndarray`. See the `NumPy documentation +`_ for more details on +how that works + diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.array.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.array.rst index 1a56a5822..65b6384cc 100644 --- a/docs/build/html/_sources/python/_autosummary/mlx.core.array.rst +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.array.rst @@ -63,6 +63,8 @@ ~array.T ~array.dtype + ~array.itemsize + ~array.nbytes ~array.ndim ~array.shape ~array.size diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.norm.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.norm.rst new file mode 100644 index 000000000..56453d7a2 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.norm.rst @@ -0,0 +1,6 @@ +mlx.core.linalg.norm +==================== + +.. currentmodule:: mlx.core.linalg + +.. autofunction:: norm \ No newline at end of file diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.repeat.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.repeat.rst new file mode 100644 index 000000000..80d308dc8 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.repeat.rst @@ -0,0 +1,6 @@ +mlx.core.repeat +=============== + +.. currentmodule:: mlx.core + +.. autofunction:: repeat \ No newline at end of file diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.save_safetensors.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.save_safetensors.rst new file mode 100644 index 000000000..d0fff8dc1 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.save_safetensors.rst @@ -0,0 +1,6 @@ +mlx.core.save\_safetensors +========================== + +.. currentmodule:: mlx.core + +.. autofunction:: save_safetensors \ No newline at end of file diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.tensordot.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.tensordot.rst new file mode 100644 index 000000000..a0630f7b9 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.tensordot.rst @@ -0,0 +1,6 @@ +mlx.core.tensordot +================== + +.. currentmodule:: mlx.core + +.. autofunction:: tensordot \ No newline at end of file diff --git a/docs/build/html/_sources/python/linalg.rst b/docs/build/html/_sources/python/linalg.rst new file mode 100644 index 000000000..27746441e --- /dev/null +++ b/docs/build/html/_sources/python/linalg.rst @@ -0,0 +1,11 @@ +.. _linalg: + +Linear Algebra +============== + +.. currentmodule:: mlx.core.linalg + +.. autosummary:: + :toctree: _autosummary + + norm diff --git a/docs/build/html/_sources/python/nn.rst b/docs/build/html/_sources/python/nn.rst index bc19a8162..496c27823 100644 --- a/docs/build/html/_sources/python/nn.rst +++ b/docs/build/html/_sources/python/nn.rst @@ -123,7 +123,7 @@ To get more detailed information on the arrays in a :class:`Module` you can use all the parameters in a :class:`Module` do: .. code-block:: python - + from mlx.utils import tree_map shapes = tree_map(lambda p: p.shape, mlp.parameters()) @@ -131,7 +131,7 @@ As another example, you can count the number of parameters in a :class:`Module` with: .. code-block:: python - + from mlx.utils import tree_flatten num_params = sum(v.size for _, v in tree_flatten(mlp.parameters())) @@ -170,14 +170,13 @@ In detail: :meth:`mlx.core.value_and_grad` .. autosummary:: - :recursive: :toctree: _autosummary value_and_grad - Module .. toctree:: + nn/module nn/layers nn/functions nn/losses diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.ALiBi.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.ALiBi.rst new file mode 100644 index 000000000..284b453cf --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.ALiBi.rst @@ -0,0 +1,8 @@ +mlx.nn.ALiBi +============ + +.. currentmodule:: mlx.nn + +.. autoclass:: ALiBi + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.BatchNorm.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.BatchNorm.rst new file mode 100644 index 000000000..b94d82e7f --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.BatchNorm.rst @@ -0,0 +1,8 @@ +mlx.nn.BatchNorm +================ + +.. currentmodule:: mlx.nn + +.. autoclass:: BatchNorm + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout.rst new file mode 100644 index 000000000..d1a68e793 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout.rst @@ -0,0 +1,8 @@ +mlx.nn.Dropout +============== + +.. currentmodule:: mlx.nn + +.. autoclass:: Dropout + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout2d.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout2d.rst new file mode 100644 index 000000000..8bf18deb8 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout2d.rst @@ -0,0 +1,8 @@ +mlx.nn.Dropout2d +================ + +.. currentmodule:: mlx.nn + +.. autoclass:: Dropout2d + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout3d.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout3d.rst new file mode 100644 index 000000000..d513a3d61 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Dropout3d.rst @@ -0,0 +1,8 @@ +mlx.nn.Dropout3d +================ + +.. currentmodule:: mlx.nn + +.. autoclass:: Dropout3d + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.InstanceNorm.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.InstanceNorm.rst new file mode 100644 index 000000000..92152b356 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.InstanceNorm.rst @@ -0,0 +1,8 @@ +mlx.nn.InstanceNorm +=================== + +.. currentmodule:: mlx.nn + +.. autoclass:: InstanceNorm + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply.rst new file mode 100644 index 000000000..fb55d08c7 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.apply +=================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.apply \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.rst new file mode 100644 index 000000000..16441c445 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.apply_to_modules.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.apply\_to\_modules +================================ + +.. currentmodule:: mlx.nn + +.. automethod:: Module.apply_to_modules \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.children.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.children.rst new file mode 100644 index 000000000..ba6ebff9e --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.children.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.children +====================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.children \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.eval.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.eval.rst new file mode 100644 index 000000000..c9b035583 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.eval.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.eval +================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.eval \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.filter_and_map.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.filter_and_map.rst new file mode 100644 index 000000000..106d2578e --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.filter_and_map.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.filter\_and\_map +============================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.filter_and_map \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.freeze.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.freeze.rst new file mode 100644 index 000000000..cb06451c1 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.freeze.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.freeze +==================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.freeze \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.leaf_modules.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.leaf_modules.rst new file mode 100644 index 000000000..7b609a8c2 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.leaf_modules.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.leaf\_modules +=========================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.leaf_modules \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.load_weights.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.load_weights.rst new file mode 100644 index 000000000..3ac3a519d --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.load_weights.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.load\_weights +=========================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.load_weights \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.modules.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.modules.rst new file mode 100644 index 000000000..bf6d3b454 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.modules.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.modules +===================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.modules \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.named_modules.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.named_modules.rst new file mode 100644 index 000000000..470744ad6 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.named_modules.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.named\_modules +============================ + +.. currentmodule:: mlx.nn + +.. automethod:: Module.named_modules \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.parameters.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.parameters.rst new file mode 100644 index 000000000..15f0f4679 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.parameters.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.parameters +======================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.parameters \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.save_weights.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.save_weights.rst new file mode 100644 index 000000000..05ae2221a --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.save_weights.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.save\_weights +=========================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.save_weights \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.train.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.train.rst new file mode 100644 index 000000000..4021bd60e --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.train.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.train +=================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.train \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.rst new file mode 100644 index 000000000..4057161fb --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.trainable_parameters.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.trainable\_parameters +=================================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.trainable_parameters \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.training.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.training.rst new file mode 100644 index 000000000..e8fe75e5c --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.training.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.training +====================== + +.. currentmodule:: mlx.nn + +.. autoproperty:: Module.training \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.unfreeze.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.unfreeze.rst new file mode 100644 index 000000000..6e6ef8ab4 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.unfreeze.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.unfreeze +====================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.unfreeze \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update.rst new file mode 100644 index 000000000..88b240f86 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.update +==================== + +.. currentmodule:: mlx.nn + +.. automethod:: Module.update \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update_modules.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update_modules.rst new file mode 100644 index 000000000..6e58a1c24 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Module.update_modules.rst @@ -0,0 +1,6 @@ +mlx.nn.Module.update\_modules +============================= + +.. currentmodule:: mlx.nn + +.. automethod:: Module.update_modules \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.rst new file mode 100644 index 000000000..bfdd633a5 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.rst @@ -0,0 +1,8 @@ +mlx.nn.SinusoidalPositionalEncoding +=================================== + +.. currentmodule:: mlx.nn + +.. autoclass:: SinusoidalPositionalEncoding + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Transformer.rst b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Transformer.rst new file mode 100644 index 000000000..01dc3a841 --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary/mlx.nn.Transformer.rst @@ -0,0 +1,8 @@ +mlx.nn.Transformer +================== + +.. currentmodule:: mlx.nn + +.. autoclass:: Transformer + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.rst b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.rst new file mode 100644 index 000000000..3b94ae64c --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.rst @@ -0,0 +1,8 @@ +mlx.nn.losses.hinge\_loss +========================= + +.. currentmodule:: mlx.nn.losses + +.. autoclass:: hinge_loss + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.rst b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.rst new file mode 100644 index 000000000..5b5dc918e --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.rst @@ -0,0 +1,8 @@ +mlx.nn.losses.huber\_loss +========================= + +.. currentmodule:: mlx.nn.losses + +.. autoclass:: huber_loss + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.rst b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.rst new file mode 100644 index 000000000..b00c1a51f --- /dev/null +++ b/docs/build/html/_sources/python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.rst @@ -0,0 +1,8 @@ +mlx.nn.losses.log\_cosh\_loss +============================= + +.. currentmodule:: mlx.nn.losses + +.. autoclass:: log_cosh_loss + + \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/layers.rst b/docs/build/html/_sources/python/nn/layers.rst index fab3ff785..4b2107446 100644 --- a/docs/build/html/_sources/python/nn/layers.rst +++ b/docs/build/html/_sources/python/nn/layers.rst @@ -9,7 +9,7 @@ Layers :toctree: _autosummary :template: nn-module-template.rst - Embedding + Sequential ReLU PReLU GELU @@ -17,13 +17,21 @@ Layers Step SELU Mish + Embedding Linear + QuantizedLinear Conv1d Conv2d + BatchNorm LayerNorm RMSNorm GroupNorm - RoPE + InstanceNorm + Dropout + Dropout2d + Dropout3d + Transformer MultiHeadAttention - Sequential - QuantizedLinear + ALiBi + RoPE + SinusoidalPositionalEncoding diff --git a/docs/build/html/_sources/python/nn/losses.rst b/docs/build/html/_sources/python/nn/losses.rst index b6a202d4a..3fb7589f8 100644 --- a/docs/build/html/_sources/python/nn/losses.rst +++ b/docs/build/html/_sources/python/nn/losses.rst @@ -16,4 +16,7 @@ Loss Functions mse_loss nll_loss smooth_l1_loss - triplet_loss \ No newline at end of file + triplet_loss + hinge_loss + huber_loss + log_cosh_loss \ No newline at end of file diff --git a/docs/build/html/_sources/python/nn/module.rst b/docs/build/html/_sources/python/nn/module.rst new file mode 100644 index 000000000..042a88028 --- /dev/null +++ b/docs/build/html/_sources/python/nn/module.rst @@ -0,0 +1,36 @@ +Module +====== + +.. currentmodule:: mlx.nn + +.. autoclass:: Module + + .. rubric:: Attributes + + .. autosummary:: + :toctree: _autosummary + + Module.training + + .. rubric:: Methods + + .. autosummary:: + :toctree: _autosummary + + Module.apply + Module.apply_to_modules + Module.children + Module.eval + Module.filter_and_map + Module.freeze + Module.leaf_modules + Module.load_weights + Module.modules + Module.named_modules + Module.parameters + Module.save_weights + Module.train + Module.trainable_parameters + Module.unfreeze + Module.update + Module.update_modules diff --git a/docs/build/html/_sources/python/ops.rst b/docs/build/html/_sources/python/ops.rst index 7e391ec4c..4e399524e 100644 --- a/docs/build/html/_sources/python/ops.rst +++ b/docs/build/html/_sources/python/ops.rst @@ -77,12 +77,14 @@ Operations quantize quantized_matmul reciprocal + repeat reshape round rsqrt save savez savez_compressed + save_safetensors sigmoid sign sin @@ -102,6 +104,7 @@ Operations take_along_axis tan tanh + tensordot transpose tri tril diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 14cb7e611..61add5d14 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.0.6', + VERSION: '0.0.7', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/cpp/ops.html b/docs/build/html/cpp/ops.html index 0509907bd..bf7b16533 100644 --- a/docs/build/html/cpp/ops.html +++ b/docs/build/html/cpp/ops.html @@ -9,7 +9,7 @@ - Operations — MLX 0.0.6 documentation + Operations — MLX 0.0.7 documentation @@ -134,8 +134,8 @@ - MLX 0.0.6 documentation - Home - + MLX 0.0.7 documentation - Home + @@ -278,12 +278,14 @@
  • mlx.core.quantize
  • mlx.core.quantized_matmul
  • mlx.core.reciprocal
  • +
  • mlx.core.repeat
  • mlx.core.reshape
  • mlx.core.round
  • mlx.core.rsqrt
  • mlx.core.save
  • mlx.core.savez
  • mlx.core.savez_compressed
  • +
  • mlx.core.save_safetensors
  • mlx.core.sigmoid
  • mlx.core.sign
  • mlx.core.sin
  • @@ -303,6 +305,7 @@
  • mlx.core.take_along_axis
  • mlx.core.tan
  • mlx.core.tanh
  • +
  • mlx.core.tensordot
  • mlx.core.transpose
  • mlx.core.tri
  • mlx.core.tril
  • @@ -351,11 +354,35 @@
  • mlx.core.fft.irfftn
  • -
  • Neural Networks