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()

```

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**:

{"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"}]}