prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Rewrite Docs with Low-Level Building Blocks: Python API
  # Rewrite Docs with Low-Level Building Blocks: Main Concepts
  
  The [Python API](https://docs.lightly.ai/lightly.html) pages still contain mid- and high-level building blocks.
  
  - [x] Remove the documentation for the mid-level building blocks
  - [x] Remove the documentation for the high-level building blocks
  
  Related to #493.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `lightly/__init__.py`
  Content:
  ```
  1 """Lightly is a computer vision framework for self-supervised learning.
  2 
  3 With Lightly you can train deep learning models using
  4 self-supervision. This means, that you don't require
  5 any labels to train a model. Lightly has been built
  6 to help you understand and work with large unlabeled datasets.
  7 It is built on top of PyTorch and therefore fully compatible 
  8 with other frameworks such as Fast.ai.
  9 
  10 The framework is structured into the following modules:
  11 
  12 - **api**: 
  13 
  14   The lightly.api module handles communication with the Lightly web-app.
  15 
  16 - **cli**:
  17 
  18   The lightly.cli module provides a command-line interface for training 
  19   self-supervised models and embedding images. Furthermore, the command-line
  20   tool can be used to upload and download images from/to the Lightly web-app.
  21 
  22 - **core**:
  23 
  24   The lightly.core module offers one-liners for simple self-supervised learning.
  25 
  26 - **data**:
  27 
  28   The lightly.data module provides a dataset wrapper and collate functions. The
  29   collate functions are in charge of the data augmentations which are crucial for
  30   self-supervised learning.
  31 
  32 - **embedding**:
  33 
  34   The lightly.embedding module combines the self-supervised models with a dataloader,
  35   optimizer, and loss function to provide a simple pytorch-lightning trainable.
  36 
  37 - **loss**:
  38 
  39   The lightly.loss module contains implementations of popular self-supervised training
  40   loss functions.
  41 
  42 - **models**:
  43 
  44   The lightly.models module holds the implementation of the ResNet as well as self-
  45   supervised methods. Currently implements:
  46 
  47   - SimCLR
  48 
  49   - MoCo
  50 
  51   - SimSiam
  52 
  53   - Barlow Twins
  54 
  55   - BYOL
  56 
  57   - NNCLR
  58 
  59 - **transforms**:
  60 
  61   The lightly.transforms module implements custom data transforms. Currently implements:
  62 
  63   - Gaussian Blur
  64 
  65   - Random Rotation
  66 
  67   - Random Solarization
  68 
  69 - **utils**:
  70 
  71   The lightly.utils package provides global utility methods.
  72   The io module contains utility to save and load embeddings in a format which is
  73   understood by the Lightly library.
  74 
  75 """
  76 
  77 # Copyright (c) 2020. Lightly AG and its affiliates.
  78 # All Rights Reserved
  79 
  80 __name__ = 'lightly'
  81 __version__ = '1.1.22'
  82 
  83 import os
  84 
  85 try:
  86     # See (https://github.com/PyTorchLightning/pytorch-lightning)
  87     # This variable is injected in the __builtins__ by the build
  88     # process. It used to enable importing subpackages of skimage when
  89     # the binaries are not built
  90     __LIGHTLY_SETUP__
  91 except NameError:
  92     __LIGHTLY_SETUP__ = False
  93 
  94 
  95 if __LIGHTLY_SETUP__:
  96     # setting up lightly
  97     msg = f'Partial import of {__name__}=={__version__} during build process.' 
  98     print(msg)
  99 else:
  100     # see if prefetch_generator is available
  101     try:
  102         import prefetch_generator
  103     except ImportError:
  104         _prefetch_generator_available = False
  105     else:
  106         _prefetch_generator_available = True
  107 
  108     def _is_prefetch_generator_available():
  109         return _prefetch_generator_available
  110 
  111     from lightly.core import *
  112     from lightly import active_learning
  113     from lightly import api
  114     from lightly import data
  115     from lightly import embedding
  116     from lightly import loss
  117     from lightly import models
  118     from lightly import openapi_generated
  119     from lightly import transforms
  120     from lightly import utils
  121     
  122     from lightly.api.version_checking import do_version_check
  123 
  124     if os.getenv('LIGHTLY_DID_VERSION_CHECK', 'False') == 'False':
  125         os.environ['LIGHTLY_DID_VERSION_CHECK'] = 'True'
  126 
  127         try:
  128             do_version_check(current_version=__version__)
  129         except Exception as e:
  130             pass
  131 
  132 
  133 
  134
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/lightly/__init__.py b/lightly/__init__.py
  --- a/lightly/__init__.py
  +++ b/lightly/__init__.py
  @@ -29,11 +29,6 @@
     collate functions are in charge of the data augmentations which are crucial for
     self-supervised learning.
   
  -- **embedding**:
  -
  -  The lightly.embedding module combines the self-supervised models with a dataloader,
  -  optimizer, and loss function to provide a simple pytorch-lightning trainable.
  -
   - **loss**:
   
     The lightly.loss module contains implementations of popular self-supervised training
  @@ -41,20 +36,22 @@
   
   - **models**:
   
  -  The lightly.models module holds the implementation of the ResNet as well as self-
  -  supervised methods. Currently implements:
  -
  -  - SimCLR
  -
  -  - MoCo
  -
  -  - SimSiam
  +  The lightly.models module holds the implementation of the ResNet as well as heads
  +  for self-supervised methods. It currently implements the heads of:
   
     - Barlow Twins
   
     - BYOL
  -
  +  
  +  - MoCo
  +  
     - NNCLR
  +  
  +  - SimCLR
  +  
  +  - SimSiam
  +  
  +  - SwaV
   
   - **transforms**:
  
verification_info: {"golden_diff": "diff --git a/lightly/__init__.py b/lightly/__init__.py\n--- a/lightly/__init__.py\n+++ b/lightly/__init__.py\n@@ -29,11 +29,6 @@\n   collate functions are in charge of the data augmentations which are crucial for\n   self-supervised learning.\n \n-- **embedding**:\n-\n-  The lightly.embedding module combines the self-supervised models with a dataloader,\n-  optimizer, and loss function to provide a simple pytorch-lightning trainable.\n-\n - **loss**:\n \n   The lightly.loss module contains implementations of popular self-supervised training\n@@ -41,20 +36,22 @@\n \n - **models**:\n \n-  The lightly.models module holds the implementation of the ResNet as well as self-\n-  supervised methods. Currently implements:\n-\n-  - SimCLR\n-\n-  - MoCo\n-\n-  - SimSiam\n+  The lightly.models module holds the implementation of the ResNet as well as heads\n+  for self-supervised methods. It currently implements the heads of:\n \n   - Barlow Twins\n \n   - BYOL\n-\n+  \n+  - MoCo\n+  \n   - NNCLR\n+  \n+  - SimCLR\n+  \n+  - SimSiam\n+  \n+  - SwaV\n \n - **transforms**:\n", "issue": "Rewrite Docs with Low-Level Building Blocks: Python API\n# Rewrite Docs with Low-Level Building Blocks: Main Concepts\r\n\r\nThe [Python API](https://docs.lightly.ai/lightly.html) pages still contain mid- and high-level building blocks.\r\n\r\n- [x] Remove the documentation for the mid-level building blocks\r\n- [x] Remove the documentation for the high-level building blocks\r\n\r\nRelated to #493.\n", "before_files": [{"content": "\"\"\"Lightly is a computer vision framework for self-supervised learning.\n\nWith Lightly you can train deep learning models using\nself-supervision. This means, that you don't require\nany labels to train a model. Lightly has been built\nto help you understand and work with large unlabeled datasets.\nIt is built on top of PyTorch and therefore fully compatible \nwith other frameworks such as Fast.ai.\n\nThe framework is structured into the following modules:\n\n- **api**: \n\n  The lightly.api module handles communication with the Lightly web-app.\n\n- **cli**:\n\n  The lightly.cli module provides a command-line interface for training \n  self-supervised models and embedding images. Furthermore, the command-line\n  tool can be used to upload and download images from/to the Lightly web-app.\n\n- **core**:\n\n  The lightly.core module offers one-liners for simple self-supervised learning.\n\n- **data**:\n\n  The lightly.data module provides a dataset wrapper and collate functions. The\n  collate functions are in charge of the data augmentations which are crucial for\n  self-supervised learning.\n\n- **embedding**:\n\n  The lightly.embedding module combines the self-supervised models with a dataloader,\n  optimizer, and loss function to provide a simple pytorch-lightning trainable.\n\n- **loss**:\n\n  The lightly.loss module contains implementations of popular self-supervised training\n  loss functions.\n\n- **models**:\n\n  The lightly.models module holds the implementation of the ResNet as well as self-\n  supervised methods. Currently implements:\n\n  - SimCLR\n\n  - MoCo\n\n  - SimSiam\n\n  - Barlow Twins\n\n  - BYOL\n\n  - NNCLR\n\n- **transforms**:\n\n  The lightly.transforms module implements custom data transforms. Currently implements:\n\n  - Gaussian Blur\n\n  - Random Rotation\n\n  - Random Solarization\n\n- **utils**:\n\n  The lightly.utils package provides global utility methods.\n  The io module contains utility to save and load embeddings in a format which is\n  understood by the Lightly library.\n\n\"\"\"\n\n# Copyright (c) 2020. Lightly AG and its affiliates.\n# All Rights Reserved\n\n__name__ = 'lightly'\n__version__ = '1.1.22'\n\nimport os\n\ntry:\n    # See (https://github.com/PyTorchLightning/pytorch-lightning)\n    # This variable is injected in the __builtins__ by the build\n    # process. It used to enable importing subpackages of skimage when\n    # the binaries are not built\n    __LIGHTLY_SETUP__\nexcept NameError:\n    __LIGHTLY_SETUP__ = False\n\n\nif __LIGHTLY_SETUP__:\n    # setting up lightly\n    msg = f'Partial import of {__name__}=={__version__} during build process.' \n    print(msg)\nelse:\n    # see if prefetch_generator is available\n    try:\n        import prefetch_generator\n    except ImportError:\n        _prefetch_generator_available = False\n    else:\n        _prefetch_generator_available = True\n\n    def _is_prefetch_generator_available():\n        return _prefetch_generator_available\n\n    from lightly.core import *\n    from lightly import active_learning\n    from lightly import api\n    from lightly import data\n    from lightly import embedding\n    from lightly import loss\n    from lightly import models\n    from lightly import openapi_generated\n    from lightly import transforms\n    from lightly import utils\n    \n    from lightly.api.version_checking import do_version_check\n\n    if os.getenv('LIGHTLY_DID_VERSION_CHECK', 'False') == 'False':\n        os.environ['LIGHTLY_DID_VERSION_CHECK'] = 'True'\n\n        try:\n            do_version_check(current_version=__version__)\n        except Exception as e:\n            pass\n\n\n\n", "path": "lightly/__init__.py"}], "after_files": [{"content": "\"\"\"Lightly is a computer vision framework for self-supervised learning.\n\nWith Lightly you can train deep learning models using\nself-supervision. This means, that you don't require\nany labels to train a model. Lightly has been built\nto help you understand and work with large unlabeled datasets.\nIt is built on top of PyTorch and therefore fully compatible \nwith other frameworks such as Fast.ai.\n\nThe framework is structured into the following modules:\n\n- **api**: \n\n  The lightly.api module handles communication with the Lightly web-app.\n\n- **cli**:\n\n  The lightly.cli module provides a command-line interface for training \n  self-supervised models and embedding images. Furthermore, the command-line\n  tool can be used to upload and download images from/to the Lightly web-app.\n\n- **core**:\n\n  The lightly.core module offers one-liners for simple self-supervised learning.\n\n- **data**:\n\n  The lightly.data module provides a dataset wrapper and collate functions. The\n  collate functions are in charge of the data augmentations which are crucial for\n  self-supervised learning.\n\n- **loss**:\n\n  The lightly.loss module contains implementations of popular self-supervised training\n  loss functions.\n\n- **models**:\n\n  The lightly.models module holds the implementation of the ResNet as well as heads\n  for self-supervised methods. It currently implements the heads of:\n\n  - Barlow Twins\n\n  - BYOL\n  \n  - MoCo\n  \n  - NNCLR\n  \n  - SimCLR\n  \n  - SimSiam\n  \n  - SwaV\n\n- **transforms**:\n\n  The lightly.transforms module implements custom data transforms. Currently implements:\n\n  - Gaussian Blur\n\n  - Random Rotation\n\n  - Random Solarization\n\n- **utils**:\n\n  The lightly.utils package provides global utility methods.\n  The io module contains utility to save and load embeddings in a format which is\n  understood by the Lightly library.\n\n\"\"\"\n\n# Copyright (c) 2020. Lightly AG and its affiliates.\n# All Rights Reserved\n\n__name__ = 'lightly'\n__version__ = '1.1.22'\n\nimport os\n\ntry:\n    # See (https://github.com/PyTorchLightning/pytorch-lightning)\n    # This variable is injected in the __builtins__ by the build\n    # process. It used to enable importing subpackages of skimage when\n    # the binaries are not built\n    __LIGHTLY_SETUP__\nexcept NameError:\n    __LIGHTLY_SETUP__ = False\n\n\nif __LIGHTLY_SETUP__:\n    # setting up lightly\n    msg = f'Partial import of {__name__}=={__version__} during build process.' \n    print(msg)\nelse:\n    # see if prefetch_generator is available\n    try:\n        import prefetch_generator\n    except ImportError:\n        _prefetch_generator_available = False\n    else:\n        _prefetch_generator_available = True\n\n    def _is_prefetch_generator_available():\n        return _prefetch_generator_available\n\n    from lightly.core import *\n    from lightly import active_learning\n    from lightly import api\n    from lightly import data\n    from lightly import embedding\n    from lightly import loss\n    from lightly import models\n    from lightly import openapi_generated\n    from lightly import transforms\n    from lightly import utils\n    \n    from lightly.api.version_checking import do_version_check\n\n    if os.getenv('LIGHTLY_DID_VERSION_CHECK', 'False') == 'False':\n        os.environ['LIGHTLY_DID_VERSION_CHECK'] = 'True'\n\n        try:\n            do_version_check(current_version=__version__)\n        except Exception as e:\n            pass\n\n\n\n", "path": "lightly/__init__.py"}]}