We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Update lasso example
**Description**
The lasso example references heat.ml.regression.lasso

**To Reproduce**
Steps to reproduce the behavior:
1. Which module/class/function is affected?
  examples/lasso/demo.py
2. What are the circumstances under which the bug appears?
  run demo.py
3. What is the exact error-message/errorous behavious?
  `Traceback (most recent call last):
  File "demo.py", line 10, in <module>
    import heat.ml.regression.lasso as lasso
ModuleNotFoundError: No module named 'heat.ml'`

**Expected behavior**
Should import heat.core.regression.lasso

**Version Info**
 Which version are you using?
0.2.1

Update lasso example
**Description**
The lasso example references heat.ml.regression.lasso

**To Reproduce**
Steps to reproduce the behavior:
1. Which module/class/function is affected?
  examples/lasso/demo.py
2. What are the circumstances under which the bug appears?
  run demo.py
3. What is the exact error-message/errorous behavious?
  `Traceback (most recent call last):
  File "demo.py", line 10, in <module>
    import heat.ml.regression.lasso as lasso
ModuleNotFoundError: No module named 'heat.ml'`

**Expected behavior**
Should import heat.core.regression.lasso

**Version Info**
 Which version are you using?
0.2.1


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `examples/lasso/demo.py`
Content:
```
1 import numpy as np
2 import torch
3 import sys
4 
5 sys.path.append("../../")
6 
7 import heat as ht
8 from matplotlib import pyplot as plt
9 from sklearn import datasets
10 import heat.ml.regression.lasso as lasso
11 import plotfkt
12 
13 # read scikit diabetes data set
14 diabetes = datasets.load_diabetes()
15 
16 # load diabetes dataset from hdf5 file
17 X = ht.load_hdf5("../../heat/datasets/data/diabetes.h5", dataset="x", split=0)
18 y = ht.load_hdf5("../../heat/datasets/data/diabetes.h5", dataset="y", split=0)
19 
20 # normalize dataset #DoTO this goes into the lasso fit routine soon as issue #106 is solved
21 X = X / ht.sqrt((ht.mean(X ** 2, axis=0)))
22 
23 # HeAT lasso instance
24 estimator = lasso.HeatLasso(max_iter=100)
25 
26 # List  lasso model parameters
27 theta_list = list()
28 
29 # Range of lambda values
30 lamda = np.logspace(0, 4, 10) / 10
31 
32 # compute the lasso path
33 for l in lamda:
34     estimator.lam = l
35     estimator.fit(X, y)
36     theta_list.append(estimator.theta.numpy().flatten())
37 
38 # Stack estimated model parameters into one numpy array
39 theta_lasso = np.stack(theta_list).T
40 
41 # Stack into numpy array
42 theta_lasso = np.stack(theta_list).T[1:, :]
43 
44 
45 # plot lasso paths
46 plt.subplot(3, 1, 1)
47 plotfkt.plot_lasso_path(
48     lamda, theta_lasso, diabetes.feature_names, title="Lasso Paths - HeAT implementation"
49 )
50 
51 if X.is_distributed():
52     distributed = X.comm.rank
53 else:
54     distributed = False
55 
56 # Now the same stuff in numpy
57 X = diabetes.data.astype("float32")
58 y = diabetes.target.astype("float32")
59 
60 m, _ = X.shape
61 X = np.concatenate((np.ones((m, 1)).astype("float32"), X), axis=1)
62 
63 # normalize dataset
64 X = X / np.sqrt((np.mean(X ** 2, axis=0)))
65 
66 # Numpy lasso instance
67 estimator = lasso.NumpyLasso(max_iter=100)
68 
69 # List  lasso model parameters
70 theta_list = list()
71 
72 # Range of lambda values
73 lamda = np.logspace(0, 4, 10) / 10
74 
75 # compute the lasso path
76 for l in lamda:
77     estimator.lam = l
78     estimator.fit(X, y)
79     theta_list.append(estimator.theta.flatten())
80 
81 # Stack estimated model parameters into one numpy array
82 theta_lasso = np.stack(theta_list).T
83 
84 # Stack into numpy array
85 theta_lasso = np.stack(theta_list).T[1:, :]
86 
87 # plot lasso paths
88 plt.subplot(3, 1, 2)
89 plotfkt.plot_lasso_path(
90     lamda, theta_lasso, diabetes.feature_names, title="Lasso Paths - Numpy implementation"
91 )
92 
93 # Now the same stuff again in PyTorch
94 X = torch.tensor(X)
95 y = torch.tensor(y)
96 
97 # HeAT lasso instance
98 estimator = lasso.PytorchLasso(max_iter=100)
99 
100 # List lasso model parameters
101 theta_list = list()
102 
103 # Range of lambda values
104 lamda = np.logspace(0, 4, 10) / 10
105 
106 # compute the lasso path
107 for l in lamda:
108     estimator.lam = l
109     estimator.fit(X, y)
110     theta_list.append(estimator.theta.numpy().flatten())
111 
112 # Stack estimated model parameters into one numpy array
113 theta_lasso = np.stack(theta_list).T
114 
115 # Stack into numpy array
116 theta_lasso = np.stack(theta_list).T[1:, :]
117 
118 # plot lasso paths
119 plt.subplot(3, 1, 3)
120 plotfkt.plot_lasso_path(
121     lamda, theta_lasso, diabetes.feature_names, title="Lasso Paths - PyTorch implementation"
122 )
123 
124 # plot only with first rank
125 if distributed is False:
126     plt.show()
127 elif distributed == 0:
128     plt.show()
129
```
--- 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/examples/lasso/demo.py b/examples/lasso/demo.py
--- a/examples/lasso/demo.py
+++ b/examples/lasso/demo.py
@@ -7,7 +7,7 @@
 import heat as ht
 from matplotlib import pyplot as plt
 from sklearn import datasets
-import heat.ml.regression.lasso as lasso
+import heat.core.regression.lasso as lasso
 import plotfkt
 
 # read scikit diabetes data set

{"golden_diff": "diff --git a/examples/lasso/demo.py b/examples/lasso/demo.py\n--- a/examples/lasso/demo.py\n+++ b/examples/lasso/demo.py\n@@ -7,7 +7,7 @@\n import heat as ht\n from matplotlib import pyplot as plt\n from sklearn import datasets\n-import heat.ml.regression.lasso as lasso\n+import heat.core.regression.lasso as lasso\n import plotfkt\n \n # read scikit diabetes data set\n", "issue": "Update lasso example\n**Description**\r\nThe lasso example references heat.ml.regression.lasso\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Which module/class/function is affected?\r\n  examples/lasso/demo.py\r\n2. What are the circumstances under which the bug appears?\r\n  run demo.py\r\n3. What is the exact error-message/errorous behavious?\r\n  `Traceback (most recent call last):\r\n  File \"demo.py\", line 10, in <module>\r\n    import heat.ml.regression.lasso as lasso\r\nModuleNotFoundError: No module named 'heat.ml'`\r\n\r\n**Expected behavior**\r\nShould import heat.core.regression.lasso\r\n\r\n**Version Info**\r\n Which version are you using?\r\n0.2.1\r\n\nUpdate lasso example\n**Description**\r\nThe lasso example references heat.ml.regression.lasso\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Which module/class/function is affected?\r\n  examples/lasso/demo.py\r\n2. What are the circumstances under which the bug appears?\r\n  run demo.py\r\n3. What is the exact error-message/errorous behavious?\r\n  `Traceback (most recent call last):\r\n  File \"demo.py\", line 10, in <module>\r\n    import heat.ml.regression.lasso as lasso\r\nModuleNotFoundError: No module named 'heat.ml'`\r\n\r\n**Expected behavior**\r\nShould import heat.core.regression.lasso\r\n\r\n**Version Info**\r\n Which version are you using?\r\n0.2.1\r\n\n", "before_files": [{"content": "import numpy as np\nimport torch\nimport sys\n\nsys.path.append(\"../../\")\n\nimport heat as ht\nfrom matplotlib import pyplot as plt\nfrom sklearn import datasets\nimport heat.ml.regression.lasso as lasso\nimport plotfkt\n\n# read scikit diabetes data set\ndiabetes = datasets.load_diabetes()\n\n# load diabetes dataset from hdf5 file\nX = ht.load_hdf5(\"../../heat/datasets/data/diabetes.h5\", dataset=\"x\", split=0)\ny = ht.load_hdf5(\"../../heat/datasets/data/diabetes.h5\", dataset=\"y\", split=0)\n\n# normalize dataset #DoTO this goes into the lasso fit routine soon as issue #106 is solved\nX = X / ht.sqrt((ht.mean(X ** 2, axis=0)))\n\n# HeAT lasso instance\nestimator = lasso.HeatLasso(max_iter=100)\n\n# List  lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.numpy().flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n\n# plot lasso paths\nplt.subplot(3, 1, 1)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - HeAT implementation\"\n)\n\nif X.is_distributed():\n    distributed = X.comm.rank\nelse:\n    distributed = False\n\n# Now the same stuff in numpy\nX = diabetes.data.astype(\"float32\")\ny = diabetes.target.astype(\"float32\")\n\nm, _ = X.shape\nX = np.concatenate((np.ones((m, 1)).astype(\"float32\"), X), axis=1)\n\n# normalize dataset\nX = X / np.sqrt((np.mean(X ** 2, axis=0)))\n\n# Numpy lasso instance\nestimator = lasso.NumpyLasso(max_iter=100)\n\n# List  lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n# plot lasso paths\nplt.subplot(3, 1, 2)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - Numpy implementation\"\n)\n\n# Now the same stuff again in PyTorch\nX = torch.tensor(X)\ny = torch.tensor(y)\n\n# HeAT lasso instance\nestimator = lasso.PytorchLasso(max_iter=100)\n\n# List lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.numpy().flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n# plot lasso paths\nplt.subplot(3, 1, 3)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - PyTorch implementation\"\n)\n\n# plot only with first rank\nif distributed is False:\n    plt.show()\nelif distributed == 0:\n    plt.show()\n", "path": "examples/lasso/demo.py"}], "after_files": [{"content": "import numpy as np\nimport torch\nimport sys\n\nsys.path.append(\"../../\")\n\nimport heat as ht\nfrom matplotlib import pyplot as plt\nfrom sklearn import datasets\nimport heat.core.regression.lasso as lasso\nimport plotfkt\n\n# read scikit diabetes data set\ndiabetes = datasets.load_diabetes()\n\n# load diabetes dataset from hdf5 file\nX = ht.load_hdf5(\"../../heat/datasets/data/diabetes.h5\", dataset=\"x\", split=0)\ny = ht.load_hdf5(\"../../heat/datasets/data/diabetes.h5\", dataset=\"y\", split=0)\n\n# normalize dataset #DoTO this goes into the lasso fit routine soon as issue #106 is solved\nX = X / ht.sqrt((ht.mean(X ** 2, axis=0)))\n\n# HeAT lasso instance\nestimator = lasso.HeatLasso(max_iter=100)\n\n# List  lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.numpy().flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n\n# plot lasso paths\nplt.subplot(3, 1, 1)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - HeAT implementation\"\n)\n\nif X.is_distributed():\n    distributed = X.comm.rank\nelse:\n    distributed = False\n\n# Now the same stuff in numpy\nX = diabetes.data.astype(\"float32\")\ny = diabetes.target.astype(\"float32\")\n\nm, _ = X.shape\nX = np.concatenate((np.ones((m, 1)).astype(\"float32\"), X), axis=1)\n\n# normalize dataset\nX = X / np.sqrt((np.mean(X ** 2, axis=0)))\n\n# Numpy lasso instance\nestimator = lasso.NumpyLasso(max_iter=100)\n\n# List  lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n# plot lasso paths\nplt.subplot(3, 1, 2)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - Numpy implementation\"\n)\n\n# Now the same stuff again in PyTorch\nX = torch.tensor(X)\ny = torch.tensor(y)\n\n# HeAT lasso instance\nestimator = lasso.PytorchLasso(max_iter=100)\n\n# List lasso model parameters\ntheta_list = list()\n\n# Range of lambda values\nlamda = np.logspace(0, 4, 10) / 10\n\n# compute the lasso path\nfor l in lamda:\n    estimator.lam = l\n    estimator.fit(X, y)\n    theta_list.append(estimator.theta.numpy().flatten())\n\n# Stack estimated model parameters into one numpy array\ntheta_lasso = np.stack(theta_list).T\n\n# Stack into numpy array\ntheta_lasso = np.stack(theta_list).T[1:, :]\n\n# plot lasso paths\nplt.subplot(3, 1, 3)\nplotfkt.plot_lasso_path(\n    lamda, theta_lasso, diabetes.feature_names, title=\"Lasso Paths - PyTorch implementation\"\n)\n\n# plot only with first rank\nif distributed is False:\n    plt.show()\nelif distributed == 0:\n    plt.show()\n", "path": "examples/lasso/demo.py"}]}