diff --git a/36_nodes.edges b/eval/36_nodes.edges similarity index 100% rename from 36_nodes.edges rename to eval/36_nodes.edges diff --git a/eval/80_nodes.edges b/eval/80_nodes.edges new file mode 100644 index 0000000000000000000000000000000000000000..d047c0bffe2fb882b08318955583c6153178a840 --- /dev/null +++ b/eval/80_nodes.edges @@ -0,0 +1,507 @@ +80 +0 1 +0 3 +0 60 +0 47 +0 79 +0 21 +0 53 +0 28 +1 0 +1 2 +1 70 +1 20 +1 61 +1 30 +2 33 +2 1 +2 3 +2 4 +2 68 +3 0 +3 2 +3 4 +3 14 +3 19 +3 20 +3 25 +3 59 +4 2 +4 3 +4 5 +4 78 +4 16 +5 4 +5 6 +5 7 +5 10 +5 76 +5 79 +5 24 +5 60 +6 17 +6 26 +6 5 +6 7 +7 5 +7 6 +7 8 +7 54 +7 61 +8 7 +8 9 +8 16 +8 19 +8 57 +8 63 +9 68 +9 8 +9 10 +9 77 +9 54 +9 24 +9 27 +9 30 +10 69 +10 5 +10 9 +10 11 +10 45 +10 47 +10 55 +11 10 +11 19 +11 12 +11 71 +12 37 +12 74 +12 11 +12 13 +12 63 +13 65 +13 71 +13 39 +13 76 +13 45 +13 14 +13 12 +13 51 +13 53 +13 54 +13 63 +14 32 +14 64 +14 3 +14 70 +14 13 +14 15 +14 51 +14 23 +14 60 +15 69 +15 40 +15 44 +15 14 +15 16 +15 19 +15 53 +15 22 +15 27 +16 4 +16 70 +16 8 +16 77 +16 15 +16 17 +16 60 +16 31 +17 32 +17 6 +17 40 +17 16 +17 18 +18 32 +18 46 +18 17 +18 19 +18 20 +18 24 +19 3 +19 8 +19 11 +19 75 +19 78 +19 15 +19 18 +19 20 +19 21 +19 55 +19 58 +20 1 +20 65 +20 3 +20 70 +20 18 +20 19 +20 21 +20 22 +21 0 +21 38 +21 46 +21 19 +21 20 +21 22 +21 24 +22 15 +22 51 +22 20 +22 21 +22 23 +22 63 +23 36 +23 14 +23 79 +23 22 +23 24 +24 5 +24 38 +24 37 +24 9 +24 18 +24 21 +24 23 +24 25 +24 61 +25 66 +25 3 +25 58 +25 40 +25 24 +25 26 +26 6 +26 53 +26 25 +26 27 +26 29 +27 71 +27 9 +27 15 +27 48 +27 52 +27 54 +27 26 +27 28 +27 62 +28 0 +28 40 +28 46 +28 56 +28 27 +28 29 +29 48 +29 26 +29 28 +29 30 +30 65 +30 1 +30 34 +30 68 +30 9 +30 29 +30 31 +31 16 +31 32 +31 43 +31 30 +32 33 +32 38 +32 41 +32 44 +32 14 +32 17 +32 18 +32 57 +32 31 +33 32 +33 2 +33 34 +33 69 +33 54 +33 63 +34 38 +34 33 +34 35 +34 30 +35 34 +35 36 +35 38 +35 39 +35 46 +36 35 +36 37 +36 42 +36 46 +36 54 +36 23 +37 36 +37 38 +37 12 +37 76 +37 24 +38 32 +38 34 +38 35 +38 37 +38 39 +38 21 +38 24 +39 40 +39 35 +39 13 +39 38 +40 39 +40 41 +40 15 +40 17 +40 55 +40 25 +40 28 +41 32 +41 42 +41 40 +41 79 +42 64 +42 36 +42 41 +42 43 +42 50 +42 53 +42 55 +42 58 +43 64 +43 68 +43 42 +43 44 +43 31 +44 32 +44 43 +44 45 +44 15 +44 51 +44 62 +45 72 +45 10 +45 44 +45 13 +45 46 +45 50 +46 35 +46 36 +46 76 +46 45 +46 77 +46 47 +46 18 +46 50 +46 21 +46 28 +47 0 +47 10 +47 74 +47 46 +47 48 +48 49 +48 27 +48 29 +48 47 +49 64 +49 48 +49 50 +49 52 +49 54 +50 64 +50 42 +50 76 +50 45 +50 46 +50 49 +50 51 +51 67 +51 72 +51 44 +51 13 +51 14 +51 50 +51 52 +51 22 +51 55 +52 76 +52 49 +52 51 +52 53 +52 27 +53 0 +53 68 +53 42 +53 13 +53 15 +53 52 +53 54 +53 55 +53 26 +54 33 +54 36 +54 7 +54 9 +54 13 +54 49 +54 53 +54 55 +54 57 +54 27 +55 40 +55 10 +55 42 +55 51 +55 19 +55 53 +55 54 +55 56 +56 57 +56 28 +56 55 +57 32 +57 68 +57 8 +57 54 +57 56 +57 58 +58 42 +58 19 +58 25 +58 59 +58 57 +59 64 +59 58 +59 3 +59 60 +60 0 +60 5 +60 74 +60 14 +60 16 +60 59 +60 61 +61 1 +61 68 +61 7 +61 76 +61 24 +61 60 +61 62 +62 70 +62 44 +62 27 +62 61 +62 63 +63 64 +63 33 +63 66 +63 68 +63 8 +63 74 +63 12 +63 13 +63 78 +63 22 +63 62 +64 65 +64 70 +64 42 +64 43 +64 14 +64 49 +64 50 +64 59 +64 63 +65 64 +65 66 +65 13 +65 20 +65 30 +66 65 +66 25 +66 67 +66 63 +67 66 +67 51 +67 68 +68 2 +68 67 +68 69 +68 9 +68 73 +68 43 +68 53 +68 57 +68 61 +68 30 +68 63 +69 33 +69 68 +69 70 +69 10 +69 15 +70 64 +70 1 +70 69 +70 71 +70 14 +70 16 +70 20 +70 62 +71 70 +71 72 +71 11 +71 13 +71 27 +72 73 +72 51 +72 45 +72 71 +73 72 +73 74 +73 68 +74 73 +74 75 +74 12 +74 47 +74 60 +74 63 +75 74 +75 19 +75 76 +76 37 +76 5 +76 75 +76 13 +76 46 +76 77 +76 50 +76 52 +76 61 +77 9 +77 76 +77 46 +77 78 +77 16 +78 4 +78 77 +78 79 +78 19 +78 63 +79 0 +79 5 +79 41 +79 78 +79 23 diff --git a/eval/96_nodes.edges b/eval/96_nodes.edges new file mode 100644 index 0000000000000000000000000000000000000000..e7f88a1e350ce7f8db1142d0f85f0b7c1953d3c8 --- /dev/null +++ b/eval/96_nodes.edges @@ -0,0 +1,531 @@ +96 +0 1 +0 66 +0 8 +0 43 +0 19 +0 58 +0 95 +1 0 +1 2 +1 35 +1 4 +1 80 +1 50 +1 90 +2 56 +2 3 +2 35 +2 1 +3 2 +3 4 +3 5 +3 72 +3 15 +3 86 +3 55 +4 1 +4 3 +4 36 +4 37 +4 38 +4 5 +4 76 +5 3 +5 4 +5 6 +5 49 +5 53 +5 92 +6 67 +6 36 +6 5 +6 7 +6 78 +6 86 +7 64 +7 6 +7 8 +7 41 +7 47 +7 17 +7 87 +8 0 +8 7 +8 9 +8 56 +8 26 +9 8 +9 10 +9 75 +9 77 +9 15 +10 32 +10 36 +10 9 +10 11 +10 12 +10 81 +10 82 +11 32 +11 34 +11 10 +11 12 +11 59 +11 92 +11 61 +12 13 +12 10 +12 11 +12 29 +13 18 +13 12 +13 14 +14 73 +14 91 +14 13 +14 15 +15 3 +15 9 +15 75 +15 14 +15 47 +15 16 +15 27 +15 31 +16 17 +16 66 +16 46 +16 15 +17 16 +17 18 +17 20 +17 7 +18 32 +18 13 +18 79 +18 17 +18 19 +18 93 +19 0 +19 18 +19 20 +19 86 +20 46 +20 80 +20 17 +20 19 +20 21 +20 88 +20 90 +21 20 +21 69 +21 22 +21 23 +22 35 +22 69 +22 79 +22 21 +22 23 +22 58 +23 38 +23 77 +23 21 +23 22 +23 24 +23 89 +23 58 +24 25 +24 58 +24 23 +24 79 +25 36 +25 69 +25 41 +25 42 +25 24 +25 26 +26 8 +26 25 +26 27 +26 87 +27 34 +27 26 +27 28 +27 15 +28 27 +28 46 +28 82 +28 91 +28 29 +28 95 +29 12 +29 28 +29 53 +29 56 +29 60 +29 30 +30 35 +30 45 +30 92 +30 29 +30 31 +31 64 +31 33 +31 32 +31 76 +31 78 +31 15 +31 50 +31 30 +32 33 +32 37 +32 10 +32 11 +32 42 +32 18 +32 31 +33 32 +33 34 +33 31 +34 33 +34 35 +34 75 +34 11 +34 55 +34 27 +35 1 +35 2 +35 34 +35 36 +35 53 +35 22 +35 56 +35 30 +36 89 +36 35 +36 4 +36 37 +36 6 +36 72 +36 10 +36 75 +36 85 +36 25 +37 32 +37 4 +37 36 +37 38 +37 51 +38 4 +38 37 +38 39 +38 43 +38 23 +39 38 +39 40 +39 42 +39 75 +39 94 +40 70 +40 39 +40 41 +40 48 +40 49 +40 54 +40 95 +41 68 +41 7 +41 40 +41 42 +41 43 +41 25 +41 91 +42 32 +42 70 +42 39 +42 41 +42 43 +42 56 +42 25 +42 60 +43 0 +43 38 +43 41 +43 42 +43 44 +44 64 +44 71 +44 43 +44 45 +44 58 +45 46 +45 44 +45 30 +46 45 +46 47 +46 16 +46 48 +46 20 +46 28 +47 48 +47 15 +47 46 +47 7 +48 40 +48 46 +48 47 +48 49 +48 89 +48 62 +48 63 +49 5 +49 71 +49 40 +49 78 +49 48 +49 50 +50 1 +50 51 +50 49 +50 31 +51 67 +51 37 +51 73 +51 50 +51 52 +52 53 +52 51 +52 59 +52 69 +53 35 +53 5 +53 52 +53 54 +53 55 +53 89 +53 29 +53 94 +54 40 +54 82 +54 84 +54 53 +54 55 +55 34 +55 3 +55 53 +55 54 +55 56 +56 2 +56 35 +56 8 +56 42 +56 55 +56 57 +56 29 +57 75 +57 56 +57 58 +57 91 +58 0 +58 44 +58 22 +58 23 +58 24 +58 57 +58 59 +59 58 +59 11 +59 52 +59 60 +60 59 +60 42 +60 61 +60 29 +61 70 +61 11 +61 60 +61 62 +62 79 +62 48 +62 81 +62 86 +62 90 +62 61 +62 63 +63 48 +63 88 +63 64 +63 62 +64 65 +64 7 +64 44 +64 63 +64 31 +65 72 +65 66 +65 64 +66 0 +66 16 +66 67 +66 65 +67 66 +67 68 +67 6 +67 76 +67 51 +68 41 +68 67 +68 69 +68 86 +69 68 +69 70 +69 52 +69 21 +69 22 +69 25 +69 92 +70 69 +70 71 +70 40 +70 42 +70 75 +70 61 +71 70 +71 72 +71 44 +71 49 +71 89 +71 94 +72 65 +72 3 +72 36 +72 71 +72 73 +73 72 +73 74 +73 51 +73 14 +74 73 +74 75 +74 86 +75 34 +75 36 +75 70 +75 39 +75 9 +75 74 +75 76 +75 15 +75 57 +76 67 +76 4 +76 75 +76 77 +76 92 +76 31 +77 9 +77 76 +77 78 +77 23 +78 6 +78 77 +78 79 +78 49 +78 31 +79 78 +79 80 +79 18 +79 22 +79 24 +79 62 +80 1 +80 79 +80 81 +80 82 +80 20 +80 87 +81 80 +81 10 +81 82 +81 62 +82 10 +82 80 +82 81 +82 83 +82 84 +82 54 +82 28 +82 93 +83 82 +83 84 +83 93 +84 82 +84 83 +84 85 +84 54 +84 88 +84 90 +85 36 +85 86 +85 84 +86 3 +86 68 +86 6 +86 74 +86 19 +86 85 +86 87 +86 93 +86 62 +87 7 +87 80 +87 86 +87 88 +87 26 +88 20 +88 84 +88 87 +88 89 +88 63 +89 36 +89 71 +89 48 +89 53 +89 23 +89 88 +89 90 +90 1 +90 20 +90 84 +90 89 +90 91 +90 62 +91 41 +91 14 +91 92 +91 57 +91 90 +91 28 +92 69 +92 5 +92 11 +92 76 +92 91 +92 93 +92 30 +93 18 +93 83 +93 82 +93 86 +93 92 +93 94 +94 71 +94 39 +94 53 +94 93 +94 95 +95 40 +95 0 +95 28 +95 94 diff --git a/config.ini b/eval/config.ini similarity index 73% rename from config.ini rename to eval/config.ini index 07a6d9b754c8bb52f654f77aafe7c1053c8912b1..74b79298ed917774a5cff7aab6776858b58c3e9e 100644 --- a/config.ini +++ b/eval/config.ini @@ -2,9 +2,9 @@ dataset_package = decentralizepy.datasets.Femnist dataset_class = Femnist model_class = CNN -n_procs = 12 -train_dir = leaf/data/femnist/per_user_data/train -test_dir = leaf/data/femnist/data/test +n_procs = 16 +train_dir = /home/risharma/Gitlab/decentralizepy/leaf/data/femnist/per_user_data/train +test_dir = /home/risharma/Gitlab/decentralizepy/leaf/data/femnist/data/test ; python list of fractions below sizes = @@ -25,7 +25,7 @@ loss_class = CrossEntropyLoss [COMMUNICATION] comm_package = decentralizepy.communication.TCP comm_class = TCP -addresses_filepath = ip_addr.json +addresses_filepath = ip_addr_6Machines.json [SHARING] sharing_package = decentralizepy.sharing.Sharing diff --git a/graph.adj b/eval/graph.adj similarity index 100% rename from graph.adj rename to eval/graph.adj diff --git a/ip_addr.json b/eval/ip_addr_3Machines.json similarity index 100% rename from ip_addr.json rename to eval/ip_addr_3Machines.json diff --git a/eval/ip_addr_6Machines.json b/eval/ip_addr_6Machines.json new file mode 100644 index 0000000000000000000000000000000000000000..12eb2052c1a72995fe228925f39ca2ab547c5054 --- /dev/null +++ b/eval/ip_addr_6Machines.json @@ -0,0 +1,8 @@ +{ + "0": "10.90.41.128", + "1": "10.90.41.129", + "2": "10.90.41.130", + "3": "10.90.41.131", + "4": "10.90.41.132", + "5": "10.90.41.133" +} \ No newline at end of file diff --git a/eval/main.ipynb b/eval/main.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..7e0081309431e91f8c63744c04494f889fcd5c54 --- /dev/null +++ b/eval/main.ipynb @@ -0,0 +1,1199 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datasets.Femnist import Femnist\n", + "from graphs import SmallWorld\n", + "from collections import defaultdict\n", + "import os\n", + "import json\n", + "import numpy as np\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "a = FEMNIST\n", + "a" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "b = SmallWorld(6, 2, 2, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "b.adj_list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(12):\n", + " print(b.neighbors(i))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "clients = []" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "num_samples = []\n", + "data = defaultdict(lambda : None)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "datadir = \"./leaf/data/femnist/data/train\"\n", + "files = os.listdir(datadir)\n", + "total_users=0\n", + "users = set()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "files = os.listdir(datadir)[0:1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for f in files:\n", + " file_path = os.path.join(datadir, f)\n", + " print(file_path)\n", + " with open(file_path, 'r') as inf:\n", + " client_data = json.load(inf)\n", + " current_users = len(client_data['users'])\n", + " print(\"Current_Users: \", current_users)\n", + " total_users += current_users\n", + " users.update(client_data['users'])\n", + "\n", + "print(\"total_users: \", total_users)\n", + "print(\"total_users: \", len(users))\n", + "print(client_data['user_data'].keys())\n", + "print(np.array(client_data['user_data']['f3408_47']['x']).shape)\n", + "print(np.array(client_data['user_data']['f3408_47']['y']).shape)\n", + "print(np.array(client_data['user_data']['f3327_11']['x']).shape)\n", + "print(np.array(client_data['user_data']['f3327_11']['y']).shape)\n", + "print(np.unique(np.array(client_data['user_data']['f3327_11']['y'])))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "file = 'run.py'\n", + "with open(file, 'r') as inf:\n", + " print(inf.readline().strip())\n", + " print(inf.readlines())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def f(l):\n", + " l[2] = 'c'\n", + "\n", + "a = ['a', 'a', 'a']\n", + "print(a)\n", + "f(a)\n", + "print(a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "l = ['a', 'b', 'c']\n", + "print(l[:-1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from localconfig import LocalConfig\n", + "\n", + "def read_ini(file_path):\n", + " config = LocalConfig(file_path)\n", + " for section in config:\n", + " print(\"Section: \", section)\n", + " for key, value in config.items(section):\n", + " print((key, value))\n", + " print(dict(config.items('DATASET')))\n", + " return config\n", + " \n", + "config = read_ini(\"config.ini\")\n", + "for section in config:\n", + " print(section)\n", + "#d = dict(config.sections())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def func(a = 1, b = 2, c = 3):\n", + " print(a + b + c)\n", + "\n", + "l = [3, 5, 7]\n", + "\n", + "func(*l)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from torch import multiprocessing as mp\n", + "\n", + "mp.spawn(fn = func, nprocs = 2, args = [], kwargs = {'a': 4, 'b': 5, 'c': 6})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "l = '[0.4, 0.2, 0.3, 0.1]'\n", + "type(eval(l))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.datasets.Femnist import Femnist\n", + "f1 = Femnist(0, 1, 'leaf/data/femnist/data/train')\n", + "ts = f1.get_trainset(1)\n", + "for data, target in ts:\n", + " print(data)\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.datasets.Femnist import Femnist\n", + "from decentralizepy.graphs.SmallWorld import SmallWorld\n", + "from decentralizepy.mappings.Linear import Linear\n", + "\n", + "f = Femnist(2, 'leaf/data/femnist/data/train', sizes=[0.6, 0.4])\n", + "g = SmallWorld(4, 1, 0.5)\n", + "l = Linear(2, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.node.Node import Node\n", + "from torch import multiprocessing as mp\n", + "import logging\n", + "n1 = Node(0, l, g, f, \"./results\", logging.DEBUG)\n", + "n2 = Node(1, l, g, f, \"./results\", logging.DEBUG)\n", + "# mp.spawn(fn = Node, nprocs = 2, args=[l,g,f])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from testing import f" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from torch import multiprocessing as mp\n", + "import torch\n", + "m1 = torch.nn.Linear(1,1)\n", + "o1 = torch.optim.SGD(m1.parameters(), 0.6)\n", + "print(m1)\n", + "\n", + "\n", + "mp.spawn(fn = f, nprocs = 2, args=[m1, o1])\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "o1.param_groups" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with torch.no_grad():\n", + " o1.param_groups[0][\"params\"][0].copy_(torch.zeros(1,))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "o1.param_groups" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m1.state_dict()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "loss = getattr(torch.nn.functional, 'nll_loss')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "loss" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Section: GRAPH\n", + "('package', 'decentralizepy.graphs.SmallWorld')\n", + "('graph_class', 'SmallWorld')\n", + "Section: DATASET\n", + "('dataset_package', 'decentralizepy.datasets.Femnist')\n", + "('dataset_class', 'Femnist')\n", + "('model_class', 'CNN')\n", + "('n_procs', 36)\n", + "('train_dir', 'leaf/data/femnist/per_user_data/train')\n", + "('test_dir', 'leaf/data/femnist/data/test')\n", + "('sizes', '')\n", + "Section: OPTIMIZER_PARAMS\n", + "('optimizer_package', 'torch.optim')\n", + "('optimizer_class', 'Adam')\n", + "('lr', 0.01)\n", + "Section: TRAIN_PARAMS\n", + "('training_package', 'decentralizepy.training.Training')\n", + "('training_class', 'Training')\n", + "('epochs_per_round', 1)\n", + "('batch_size', 1024)\n", + "('shuffle', True)\n", + "('loss_package', 'torch.nn')\n", + "('loss_class', 'CrossEntropyLoss')\n", + "Section: COMMUNICATION\n", + "('comm_package', 'decentralizepy.communication.TCP')\n", + "('comm_class', 'TCP')\n", + "('addresses_filepath', 'ip_addr.json')\n", + "Section: SHARING\n", + "('sharing_package', 'decentralizepy.sharing.Sharing')\n", + "('sharing_class', 'Sharing')\n", + "{'dataset_package': 'decentralizepy.datasets.Femnist', 'dataset_class': 'Femnist', 'model_class': 'CNN', 'n_procs': 36, 'train_dir': 'leaf/data/femnist/per_user_data/train', 'test_dir': 'leaf/data/femnist/data/test', 'sizes': ''}\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "from decentralizepy.node.Node import Node\n", + "from decentralizepy.graphs.SmallWorld import SmallWorld\n", + "from decentralizepy.graphs.Graph import Graph\n", + "from decentralizepy.mappings.Linear import Linear\n", + "from torch import multiprocessing as mp\n", + "import torch\n", + "import logging\n", + "\n", + "from localconfig import LocalConfig\n", + "\n", + "def read_ini(file_path):\n", + " config = LocalConfig(file_path)\n", + " for section in config:\n", + " print(\"Section: \", section)\n", + " for key, value in config.items(section):\n", + " print((key, value))\n", + " print(dict(config.items('DATASET')))\n", + " return config\n", + " \n", + "config = read_ini(\"config.ini\")\n", + "my_config = dict()\n", + "for section in config:\n", + " my_config[section] = dict(config.items(section))\n", + "\n", + "#f = Femnist(2, 'leaf/data/femnist/data/train', sizes=[0.6, 0.4])\n", + "g = Graph()\n", + "g.read_graph_from_file(\"36_nodes.edges\", \"edges\")\n", + "l = Linear(1, 36)\n", + "\n", + "#Node(0, 0, l, g, my_config, 20, \"results\", logging.DEBUG)\n", + "\n", + "mp.spawn(fn = Node, nprocs = g.n_procs, args=[0,l,g,my_config,20,\"results\",logging.INFO])\n", + "\n", + "# mp.spawn(fn = Node, args = [l, g, config, 10, \"results\", logging.DEBUG], nprocs=2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.mappings.Linear import Linear\n", + "from testing import f\n", + "from torch import multiprocessing as mp\n", + "\n", + "l = Linear(1, 2)\n", + "mp.spawn(fn = f, nprocs = 2, args = [0, 2, \"ip_addr.json\", l])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.datasets.Femnist import Femnist\n", + "\n", + "f = Femnist()\n", + "\n", + "f.file_per_user('../leaf/data/femnist/data/train','../leaf/data/femnist/per_user_data/train')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "a = set()\n", + "a.update([2, 3, 4, 5])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{2, 3, 4, 5}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 3 4 5\n" + ] + } + ], + "source": [ + "print(*a)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from decentralizepy.graphs.SmallWorld import SmallWorld\n", + "\n", + "s = SmallWorld(96, 2, .5)\n", + "s.write_graph_to_file('96_nodes.edges')" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['/home/risharma/miniconda3/envs/decpy/lib/python3.9/site-packages/ipykernel_launcher.py',\n", + " '--ip=127.0.0.1',\n", + " '--stdin=9008',\n", + " '--control=9006',\n", + " '--hb=9005',\n", + " '--Session.signature_scheme=\"hmac-sha256\"',\n", + " '--Session.key=b\"eac5d2f8-c460-45f1-a268-1e4b46a6efd6\"',\n", + " '--shell=9007',\n", + " '--transport=\"tcp\"',\n", + " '--iopub=9009',\n", + " '--f=/tmp/tmp-21212479paJaUBJBN84.json']" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sys\n", + "sys.argv" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "m1_state_dict: OrderedDict([('conv1.weight', tensor([[[[-0.0229, -0.1412, -0.1879, -0.1106, 0.1383],\n", + " [-0.0951, -0.0891, -0.0665, 0.0580, 0.1503],\n", + " [ 0.0548, -0.1465, -0.1330, 0.0034, 0.0442],\n", + " [ 0.0647, 0.1041, -0.0606, 0.0304, 0.1865],\n", + " [ 0.1933, -0.1473, -0.0146, 0.1158, -0.1871]]],\n", + "\n", + "\n", + " [[[-0.1394, -0.1527, -0.0536, 0.0266, 0.0947],\n", + " [ 0.1923, 0.1522, 0.0670, 0.0957, 0.1105],\n", + " [ 0.1480, 0.0392, -0.1256, -0.0925, -0.1490],\n", + " [-0.0283, 0.1573, -0.1840, 0.1257, -0.0401],\n", + " [ 0.1835, 0.0560, -0.1895, -0.1500, 0.0887]]],\n", + "\n", + "\n", + " [[[-0.0774, -0.0870, -0.0947, -0.1334, 0.1894],\n", + " [ 0.0948, -0.0605, 0.0826, 0.1156, 0.0111],\n", + " [-0.1094, -0.1074, 0.0999, -0.1194, 0.1004],\n", + " [-0.0173, 0.1559, 0.0715, -0.0290, 0.0097],\n", + " [-0.0547, 0.0237, -0.0429, 0.1555, -0.0716]]],\n", + "\n", + "\n", + " [[[-0.1742, 0.1413, -0.1431, 0.0339, -0.1187],\n", + " [-0.1739, 0.1583, 0.0853, 0.0963, -0.1279],\n", + " [ 0.0941, -0.1236, -0.1247, -0.0534, 0.0822],\n", + " [-0.0420, 0.1833, 0.0420, -0.0185, 0.0723],\n", + " [-0.1710, -0.1717, -0.1689, -0.1454, -0.1634]]],\n", + "\n", + "\n", + " [[[-0.1793, 0.0073, 0.1140, -0.1528, -0.1188],\n", + " [-0.1980, 0.0458, -0.0361, 0.1428, 0.1635],\n", + " [ 0.0007, -0.0679, -0.1566, -0.0512, 0.1546],\n", + " [ 0.0979, 0.1354, 0.1986, -0.1026, 0.0206],\n", + " [ 0.1713, -0.0090, -0.0990, -0.1577, -0.0561]]],\n", + "\n", + "\n", + " [[[ 0.0531, -0.1490, 0.0013, 0.1090, 0.0666],\n", + " [ 0.0604, 0.0964, 0.1117, -0.0058, 0.1389],\n", + " [-0.0228, 0.0183, 0.0797, 0.1482, -0.1976],\n", + " [-0.0633, -0.1305, -0.1355, 0.1928, 0.0251],\n", + " [ 0.1038, 0.1539, -0.1245, -0.1238, -0.1278]]],\n", + "\n", + "\n", + " [[[-0.1392, 0.1037, -0.1825, -0.1580, -0.0792],\n", + " [ 0.0841, 0.0298, -0.0681, -0.0392, 0.1775],\n", + " [ 0.1716, -0.1017, -0.0676, 0.0086, 0.1156],\n", + " [ 0.1659, -0.1998, 0.1957, -0.1146, -0.1235],\n", + " [ 0.1529, -0.1974, 0.0128, -0.0563, 0.1234]]],\n", + "\n", + "\n", + " [[[-0.0504, 0.0855, 0.1083, 0.1809, 0.0631],\n", + " [-0.1540, -0.1761, -0.1962, 0.1521, 0.1945],\n", + " [ 0.0082, -0.1470, 0.1477, 0.0105, 0.0649],\n", + " [-0.0417, -0.0348, 0.1127, 0.1458, -0.0528],\n", + " [ 0.0503, -0.0565, -0.1026, -0.1498, -0.1100]]],\n", + "\n", + "\n", + " [[[ 0.0269, -0.0011, 0.1104, 0.0586, 0.1700],\n", + " [ 0.0510, 0.1185, -0.0363, 0.1386, 0.0394],\n", + " [-0.1133, -0.0371, 0.0734, 0.0324, 0.0490],\n", + " [ 0.1369, -0.1887, 0.0128, -0.1641, -0.1880],\n", + " [-0.1801, -0.1711, 0.0953, 0.0019, -0.0155]]],\n", + "\n", + "\n", + " [[[-0.0658, 0.1422, -0.0990, 0.0745, -0.0602],\n", + " [ 0.1194, 0.1782, 0.1857, -0.1421, 0.1797],\n", + " [ 0.1318, 0.1498, 0.0598, -0.0296, 0.1046],\n", + " [ 0.1479, 0.0303, 0.0832, 0.0793, -0.1085],\n", + " [-0.0348, -0.0243, 0.1281, 0.1019, -0.1861]]],\n", + "\n", + "\n", + " [[[-0.0127, 0.0643, -0.0695, -0.1715, 0.1027],\n", + " [ 0.0106, 0.0895, -0.0900, 0.1267, -0.1861],\n", + " [ 0.0575, -0.0293, -0.0502, 0.0449, 0.0972],\n", + " [ 0.1639, 0.0922, 0.0754, 0.0992, 0.1333],\n", + " [-0.1010, -0.1987, -0.1987, 0.0979, 0.0844]]],\n", + "\n", + "\n", + " [[[ 0.0595, 0.1274, 0.0035, -0.1782, 0.0618],\n", + " [-0.1258, 0.1920, -0.1004, -0.1887, 0.1253],\n", + " [ 0.0305, -0.0963, 0.1010, -0.1703, -0.0220],\n", + " [-0.0885, 0.1817, 0.1438, -0.0833, -0.0235],\n", + " [-0.0957, -0.1052, -0.0988, 0.1519, 0.1797]]],\n", + "\n", + "\n", + " [[[ 0.0704, -0.1125, 0.1092, 0.0502, -0.1922],\n", + " [ 0.1264, -0.1142, -0.0028, 0.1783, 0.1064],\n", + " [ 0.0479, 0.0609, 0.0481, -0.1642, 0.1164],\n", + " [-0.0078, 0.1299, -0.0604, -0.1085, -0.1817],\n", + " [-0.1847, 0.0150, 0.0267, -0.0448, 0.1085]]],\n", + "\n", + "\n", + " [[[ 0.1162, -0.1187, -0.0052, -0.1902, 0.1876],\n", + " [-0.0629, -0.1870, 0.1811, 0.1169, 0.0902],\n", + " [ 0.1260, 0.1220, -0.0269, 0.1645, -0.0277],\n", + " [ 0.0844, -0.1716, -0.1790, -0.1351, -0.1734],\n", + " [-0.1917, -0.0923, 0.1367, 0.0649, -0.1088]]],\n", + "\n", + "\n", + " [[[-0.0812, 0.0060, 0.1412, -0.1781, -0.1559],\n", + " [ 0.1968, 0.0077, -0.1668, -0.0187, 0.0243],\n", + " [ 0.0039, -0.1839, 0.0851, 0.0685, 0.0555],\n", + " [-0.1985, 0.0410, 0.1378, 0.0668, 0.1061],\n", + " [-0.1742, -0.1719, -0.0100, -0.1634, 0.1688]]],\n", + "\n", + "\n", + " [[[-0.1012, -0.1973, -0.0757, 0.0054, -0.1555],\n", + " [-0.1071, -0.1538, -0.0328, 0.0623, -0.1842],\n", + " [ 0.1411, -0.1391, 0.0815, -0.0975, 0.0353],\n", + " [ 0.0047, 0.0009, 0.0916, 0.0259, -0.0072],\n", + " [-0.0594, -0.0094, -0.0396, -0.1560, -0.1354]]],\n", + "\n", + "\n", + " [[[ 0.0084, -0.1336, -0.0328, -0.1315, 0.0229],\n", + " [-0.1683, -0.0804, -0.1505, 0.1407, 0.0267],\n", + " [-0.1622, -0.1326, 0.1872, -0.0500, -0.0283],\n", + " [ 0.0816, -0.1468, -0.1670, 0.0517, 0.0871],\n", + " [ 0.0952, 0.1328, 0.1915, 0.0444, -0.0996]]],\n", + "\n", + "\n", + " [[[-0.1080, -0.0201, 0.1742, -0.1997, -0.0529],\n", + " [ 0.0494, 0.0338, -0.0606, 0.1981, 0.1089],\n", + " [ 0.1071, 0.0330, 0.0973, 0.1393, 0.1783],\n", + " [-0.0267, 0.0777, 0.0048, -0.1587, -0.0907],\n", + " [ 0.1901, 0.0947, 0.0467, -0.0415, -0.1970]]],\n", + "\n", + "\n", + " [[[-0.0452, -0.1996, -0.0107, -0.1986, 0.0665],\n", + " [-0.0549, -0.0272, -0.0993, -0.0788, -0.1093],\n", + " [-0.0612, 0.1818, 0.1108, -0.1628, 0.0810],\n", + " [-0.0778, -0.0030, 0.1858, -0.0210, -0.0162],\n", + " [-0.1393, 0.1149, 0.0684, -0.1721, 0.0747]]],\n", + "\n", + "\n", + " [[[-0.1577, -0.0780, 0.1825, -0.1546, 0.0453],\n", + " [ 0.1300, 0.1881, 0.1711, 0.0382, -0.1831],\n", + " [-0.1404, 0.1899, -0.0056, -0.0250, 0.1982],\n", + " [ 0.0568, 0.0955, -0.1767, -0.1165, -0.1990],\n", + " [ 0.0861, -0.0023, 0.1161, 0.0518, 0.0527]]],\n", + "\n", + "\n", + " [[[ 0.1428, 0.1669, -0.1795, -0.1235, 0.1853],\n", + " [ 0.0413, 0.1310, -0.1435, 0.1138, 0.1319],\n", + " [ 0.0111, 0.1122, 0.0705, -0.1176, 0.0823],\n", + " [ 0.1546, -0.1581, -0.0103, 0.1821, -0.1248],\n", + " [-0.0897, 0.1802, -0.1877, -0.0283, 0.0269]]],\n", + "\n", + "\n", + " [[[ 0.0465, 0.0382, -0.1681, 0.1968, 0.1778],\n", + " [-0.1720, -0.1210, 0.0393, -0.1669, 0.0734],\n", + " [-0.0806, 0.1679, -0.1045, -0.0793, -0.1499],\n", + " [ 0.1467, 0.0118, 0.1104, -0.0798, -0.0674],\n", + " [-0.0927, -0.1603, 0.0296, 0.1935, 0.1357]]],\n", + "\n", + "\n", + " [[[ 0.1372, -0.1376, -0.0391, -0.0653, 0.0170],\n", + " [-0.0567, -0.1158, -0.1480, -0.1212, 0.1692],\n", + " [ 0.0937, -0.1809, -0.0567, 0.0506, 0.0525],\n", + " [ 0.0562, -0.0614, -0.0638, 0.0013, -0.1509],\n", + " [ 0.0072, -0.1710, 0.0440, -0.0052, 0.0619]]],\n", + "\n", + "\n", + " [[[-0.1553, 0.1425, -0.0342, 0.1451, 0.1473],\n", + " [ 0.0821, 0.0459, 0.1424, -0.0007, 0.1109],\n", + " [-0.0524, -0.1669, 0.1309, 0.0343, 0.1138],\n", + " [-0.1504, -0.1105, 0.0658, 0.1788, 0.1652],\n", + " [ 0.0788, -0.1481, 0.0193, -0.1642, 0.0172]]],\n", + "\n", + "\n", + " [[[ 0.1332, 0.0695, 0.0875, -0.0600, 0.0634],\n", + " [ 0.1104, -0.1614, -0.1218, 0.0620, -0.1297],\n", + " [-0.1277, -0.0552, 0.1227, 0.1109, -0.1536],\n", + " [-0.0766, 0.0457, 0.1940, 0.1842, 0.0971],\n", + " [-0.0082, -0.1101, 0.1115, -0.1290, -0.0865]]],\n", + "\n", + "\n", + " [[[-0.1299, -0.1915, 0.1634, 0.0493, 0.0566],\n", + " [ 0.0344, 0.1512, 0.0135, -0.1777, -0.0895],\n", + " [ 0.1464, -0.0986, -0.0579, 0.0195, -0.1212],\n", + " [ 0.1409, 0.1441, 0.1242, 0.0188, 0.0894],\n", + " [-0.1126, 0.1645, -0.1230, -0.1590, -0.1124]]],\n", + "\n", + "\n", + " [[[ 0.1555, -0.1926, -0.1191, 0.1222, -0.0974],\n", + " [ 0.1644, 0.0862, -0.0143, -0.1701, -0.1995],\n", + " [-0.1539, 0.1057, -0.1307, 0.1557, -0.0340],\n", + " [-0.0129, -0.1164, -0.1295, 0.1095, -0.0290],\n", + " [ 0.1101, -0.1810, 0.1917, -0.1686, 0.0950]]],\n", + "\n", + "\n", + " [[[-0.1690, 0.0568, -0.1637, 0.0730, -0.0367],\n", + " [ 0.0448, -0.1867, -0.0437, -0.0910, 0.1377],\n", + " [-0.1711, -0.1999, 0.1172, -0.0130, -0.0112],\n", + " [-0.0746, -0.1525, 0.0172, -0.0057, -0.0764],\n", + " [-0.1980, 0.0976, 0.0478, -0.1308, 0.1491]]],\n", + "\n", + "\n", + " [[[ 0.1074, -0.0291, -0.1445, 0.0290, -0.0274],\n", + " [ 0.0074, 0.0617, 0.1186, 0.0061, -0.1832],\n", + " [ 0.1208, -0.0598, -0.0865, -0.0370, 0.0106],\n", + " [ 0.0883, -0.1854, 0.1796, -0.1775, 0.1580],\n", + " [ 0.1663, -0.0505, -0.0670, 0.0409, 0.0367]]],\n", + "\n", + "\n", + " [[[-0.0615, 0.0207, 0.1398, 0.0686, -0.0128],\n", + " [ 0.0773, 0.1971, 0.1021, -0.0893, 0.0709],\n", + " [-0.1577, 0.0466, -0.1612, 0.1785, 0.1602],\n", + " [-0.0374, 0.0311, 0.1518, 0.1529, -0.0059],\n", + " [ 0.0086, -0.1915, 0.0763, -0.1900, 0.0979]]],\n", + "\n", + "\n", + " [[[-0.1677, -0.0145, -0.1689, -0.0102, -0.1434],\n", + " [-0.1832, 0.1788, -0.1699, -0.0041, -0.1157],\n", + " [-0.1086, -0.0799, -0.0506, -0.1963, 0.1544],\n", + " [ 0.1940, 0.0519, 0.1506, -0.1696, -0.0159],\n", + " [ 0.0024, 0.0046, 0.0818, 0.1044, -0.0604]]],\n", + "\n", + "\n", + " [[[ 0.0605, -0.0014, 0.1496, -0.0587, 0.0858],\n", + " [-0.1680, -0.0135, 0.0629, 0.1832, 0.1535],\n", + " [-0.0072, -0.0376, -0.0897, 0.1623, -0.0962],\n", + " [-0.0958, -0.1683, 0.0390, -0.0637, 0.0455],\n", + " [ 0.1662, 0.1725, 0.1976, -0.0250, -0.0974]]]])), ('conv1.bias', tensor([ 0.1412, -0.1699, -0.0253, -0.1142, 0.0345, -0.1778, 0.0337, -0.1811,\n", + " 0.0301, -0.0841, -0.1326, -0.0041, 0.1206, -0.1253, -0.0549, 0.1375,\n", + " 0.1011, -0.0645, -0.1874, 0.0055, -0.0208, 0.0685, 0.0626, -0.0987,\n", + " -0.0448, -0.0284, 0.1807, 0.0769, 0.0155, 0.0411, -0.1243, -0.0014])), ('conv2.weight', tensor([[[[ 3.2746e-02, 7.6064e-03, 3.3012e-02, -2.6875e-02, -1.6692e-02],\n", + " [-1.9286e-02, -6.8511e-03, -1.4456e-02, -8.0592e-03, -3.1047e-02],\n", + " [-2.7445e-02, 3.1905e-02, -1.9314e-02, -2.7730e-02, 2.0723e-02],\n", + " [ 3.1894e-02, 2.0955e-02, -2.2974e-02, 1.7649e-02, 1.6758e-02],\n", + " [ 1.2061e-02, 3.0052e-02, 3.3479e-02, -5.7044e-03, 2.5757e-02]],\n", + "\n", + " [[ 1.4391e-02, -1.5190e-02, -1.0179e-03, 2.7308e-02, 2.1345e-02],\n", + " [-2.1532e-02, 1.9428e-03, -1.1062e-03, 2.1827e-02, 2.8505e-02],\n", + " [ 3.4529e-02, 3.2408e-02, 9.7295e-03, 9.3658e-03, 6.2646e-03],\n", + " [ 1.5906e-02, 1.4007e-02, -3.4417e-02, 2.2925e-02, -3.3685e-03],\n", + " [-8.7568e-03, 1.2605e-02, -2.5771e-02, -2.2213e-02, -2.3717e-02]],\n", + "\n", + " [[-2.9527e-02, 2.2819e-02, -7.3266e-04, -5.2441e-03, -1.8673e-02],\n", + " [-2.0790e-02, 2.8179e-02, 1.4795e-02, 2.2660e-02, 1.6540e-02],\n", + " [ 2.0379e-02, -2.2184e-02, -2.1391e-02, -2.8546e-02, 1.2025e-02],\n", + " [-1.6028e-02, -2.5776e-02, 2.8277e-03, 1.8941e-02, -1.7032e-02],\n", + " [-2.0459e-02, 3.2729e-02, -3.4816e-02, 2.6955e-02, 1.1083e-02]],\n", + "\n", + " ...,\n", + "\n", + " [[ 2.0854e-03, 8.9433e-03, -3.4360e-02, 2.9036e-02, -1.2978e-02],\n", + " [ 2.2407e-02, 8.8171e-03, 1.4031e-02, 3.2900e-02, 3.5173e-02],\n", + " [-2.0740e-03, 1.1162e-02, 3.1859e-02, -1.1679e-02, -3.2770e-03],\n", + " [-1.5003e-02, 8.3509e-03, -2.1289e-02, -1.8160e-02, -1.7401e-02],\n", + " [ 2.8564e-03, 2.9883e-02, -1.2668e-02, 8.0667e-04, 3.4512e-02]],\n", + "\n", + " [[ 2.4441e-02, -3.2026e-02, 3.4663e-02, 1.3297e-02, -1.9757e-02],\n", + " [-1.9587e-02, 9.0344e-03, -2.2241e-02, -1.1374e-02, -3.2283e-02],\n", + " [ 5.7302e-03, 2.9798e-02, 1.0315e-02, -2.8048e-02, 1.4863e-03],\n", + " [-2.0083e-02, -3.0710e-03, -3.4549e-02, 2.3184e-02, -9.9700e-03],\n", + " [-1.0007e-02, 2.3101e-02, 1.5020e-02, -1.0336e-02, -1.8888e-03]],\n", + "\n", + " [[ 1.8208e-02, -1.9901e-02, 3.0093e-02, 1.9968e-02, 7.0317e-03],\n", + " [-3.3956e-02, -1.7922e-03, -1.4408e-02, 2.8461e-02, 7.6843e-03],\n", + " [-1.1414e-02, 2.6077e-02, -2.3152e-02, 8.8792e-03, -2.0675e-02],\n", + " [ 1.4362e-02, 5.4677e-03, -2.9708e-02, 3.0239e-02, -3.1256e-02],\n", + " [-8.4240e-03, -2.9612e-02, 6.7951e-03, 7.8364e-03, 3.2977e-02]]],\n", + "\n", + "\n", + " [[[ 9.4418e-03, 3.2786e-03, -1.2435e-02, 1.5070e-02, -1.8267e-03],\n", + " [ 1.6058e-03, -9.9090e-03, -1.7479e-02, 1.5799e-02, -1.9801e-03],\n", + " [ 1.5065e-02, -2.1835e-02, 2.9958e-03, -2.2055e-02, 1.7255e-02],\n", + " [-2.4921e-02, -2.3748e-02, 7.5943e-03, -2.8805e-02, 2.4922e-03],\n", + " [-3.1805e-02, -2.5896e-02, -1.7868e-02, 2.7961e-02, -1.2373e-02]],\n", + "\n", + " [[-2.6565e-02, 3.5746e-03, -2.2760e-02, -6.0303e-03, -3.2547e-02],\n", + " [-2.1761e-02, 1.7825e-02, 3.4372e-03, 2.1411e-02, 1.0314e-02],\n", + " [ 1.2855e-02, -1.7095e-02, -3.3342e-02, -2.0678e-02, -1.1955e-02],\n", + " [-6.1599e-03, -1.7464e-02, 4.1114e-03, 1.0711e-02, 3.1798e-02],\n", + " [-1.3857e-02, 9.0615e-03, -6.9174e-03, -3.3586e-02, 1.9395e-02]],\n", + "\n", + " [[-3.0132e-02, -2.2624e-03, -5.9316e-03, -1.7227e-02, -2.4533e-02],\n", + " [-6.2100e-03, -2.3675e-02, 3.0786e-02, 7.8731e-03, 2.2696e-03],\n", + " [-3.3538e-02, 2.7875e-02, -1.9615e-02, 1.6261e-02, 1.3296e-04],\n", + " [-3.4132e-02, -2.4884e-02, 2.0227e-02, 1.8549e-02, -8.0078e-03],\n", + " [-1.4182e-03, 2.7721e-02, -1.1709e-02, -1.0164e-02, 1.3831e-02]],\n", + "\n", + " ...,\n", + "\n", + " [[ 1.5085e-02, 2.1404e-02, 1.1670e-02, 7.9414e-03, -2.3269e-02],\n", + " [ 3.1390e-03, -1.9571e-02, 1.7058e-02, -2.1079e-02, 1.1395e-02],\n", + " [-1.1528e-02, 2.1676e-02, 3.0260e-02, -8.6194e-03, -3.5215e-02],\n", + " [ 1.2097e-02, 1.3447e-02, -3.0891e-02, -3.1753e-02, 2.9082e-03],\n", + " [ 2.6964e-02, -1.8573e-02, -1.7564e-02, -3.2200e-02, 1.8055e-02]],\n", + "\n", + " [[ 1.4695e-02, -2.5493e-02, 1.1962e-02, -3.4501e-02, -2.8435e-02],\n", + " [-2.0480e-02, 1.4531e-03, 2.4348e-02, 2.9468e-02, -2.0317e-02],\n", + " [-1.7271e-02, 3.5342e-03, -1.6577e-03, 3.0479e-02, 7.5468e-03],\n", + " [-4.8140e-03, 1.0219e-02, 3.2605e-02, 9.3662e-03, 1.7923e-02],\n", + " [ 6.7177e-03, -2.4020e-02, -9.6501e-03, -6.1049e-03, -1.5764e-02]],\n", + "\n", + " [[-1.1772e-02, 2.4333e-03, 3.3412e-03, -2.2287e-02, 3.3003e-02],\n", + " [ 7.7133e-03, -2.8402e-02, 3.0503e-02, 2.0268e-02, -2.8774e-02],\n", + " [ 3.2205e-02, 4.7889e-03, 1.4656e-02, 9.9381e-03, 5.1627e-03],\n", + " [ 7.8195e-03, 2.9291e-02, -1.8244e-02, -2.9129e-03, 3.4969e-02],\n", + " [ 1.3522e-02, 1.6393e-02, 3.0487e-02, -1.7014e-02, -1.7204e-02]]],\n", + "\n", + "\n", + " [[[-2.2435e-02, 3.2695e-02, 1.8033e-03, -1.2957e-02, -1.8227e-02],\n", + " [-2.0660e-02, 1.8752e-02, 1.9233e-02, -1.0020e-02, -2.7806e-03],\n", + " [ 1.5691e-03, -1.5605e-02, 2.6992e-02, -3.3455e-02, 1.6912e-02],\n", + " [ 7.3307e-03, -2.2232e-02, -2.6121e-02, -2.3932e-03, 2.7684e-02],\n", + " [ 3.3649e-02, -5.1965e-03, -1.5039e-02, 3.5366e-03, 3.0508e-02]],\n", + "\n", + " [[ 2.0061e-02, 1.9717e-02, 1.0357e-02, -3.3255e-02, 9.8102e-03],\n", + " [ 1.7618e-02, 2.4140e-02, 7.0476e-03, -3.2115e-02, -7.6617e-03],\n", + " [-8.2441e-03, -1.5926e-02, -2.5963e-02, -2.6432e-02, 2.3809e-02],\n", + " [ 2.5385e-03, -9.1865e-04, -1.2525e-02, 2.9783e-02, 3.4802e-02],\n", + " [ 3.4328e-02, 2.5756e-02, -2.1410e-02, -2.0238e-02, -2.1875e-02]],\n", + "\n", + " [[-9.3015e-03, 1.4058e-02, -1.1882e-02, 3.3075e-02, 3.4996e-02],\n", + " [-7.9394e-03, 3.2237e-02, -2.6205e-02, -3.0383e-02, -7.0993e-03],\n", + " [ 2.0615e-02, -1.4620e-02, -3.2926e-02, -3.1128e-02, -2.8229e-02],\n", + " [ 2.4899e-03, 8.9844e-03, -3.4723e-02, 8.2829e-03, 8.7329e-03],\n", + " [ 2.8381e-02, 3.2110e-02, -2.0183e-03, -1.4615e-02, -9.5140e-03]],\n", + "\n", + " ...,\n", + "\n", + " [[ 2.5843e-02, -2.7146e-02, 3.1365e-02, -1.7570e-02, -1.1656e-02],\n", + " [ 2.4452e-02, -2.9268e-02, 2.2156e-02, -2.0007e-02, 1.2864e-02],\n", + " [ 2.2081e-02, 4.4346e-03, -3.3851e-02, -2.2446e-02, -2.9914e-02],\n", + " [-1.3931e-02, -1.0571e-02, -1.9827e-02, -8.4832e-03, -4.6840e-04],\n", + " [ 3.3050e-03, 2.9839e-02, 2.3548e-02, 1.8797e-02, 2.3927e-02]],\n", + "\n", + " [[ 6.0766e-03, -2.1119e-02, -7.4612e-03, -2.8573e-02, -1.1375e-02],\n", + " [-2.1335e-02, 6.7210e-03, -1.2251e-02, -1.0163e-03, -6.8753e-03],\n", + " [-1.0076e-02, -2.1910e-03, 5.1250e-04, -5.3031e-03, -7.5937e-03],\n", + " [-2.6741e-03, -3.4738e-02, 3.1672e-02, -2.4893e-02, -3.3263e-02],\n", + " [-1.1028e-02, 1.9241e-02, 1.6009e-02, 2.4161e-02, 3.3235e-02]],\n", + "\n", + " [[ 7.0783e-03, -1.9811e-02, -8.6785e-03, -3.4500e-02, 1.2150e-02],\n", + " [-7.2774e-03, 2.2635e-03, 3.5135e-02, -3.3153e-03, -1.7127e-02],\n", + " [ 1.1098e-02, 1.1369e-02, -3.5151e-03, -1.8415e-02, 7.1177e-03],\n", + " [ 7.1935e-03, -2.6246e-02, -1.0526e-02, -2.6759e-02, -4.7185e-03],\n", + " [-2.3434e-02, -4.3492e-03, -4.9457e-03, -2.1908e-02, 7.1825e-03]]],\n", + "\n", + "\n", + " ...,\n", + "\n", + "\n", + " [[[ 2.1287e-02, -1.8313e-02, -3.6076e-03, -6.2449e-03, -2.4652e-02],\n", + " [ 8.9968e-03, -1.1765e-02, -2.1595e-02, -2.4103e-02, 6.7955e-03],\n", + " [ 3.9301e-03, -3.0373e-02, 3.2183e-02, 3.5264e-02, -2.2304e-03],\n", + " [-3.9002e-03, -4.5479e-04, -1.1849e-02, 7.2274e-03, 4.6744e-03],\n", + " [ 2.6520e-02, -1.4180e-02, -3.4668e-02, 1.5128e-02, -3.3632e-02]],\n", + "\n", + " [[ 1.8598e-02, 1.4959e-02, -2.9480e-02, 1.9813e-02, -1.5348e-02],\n", + " [ 6.2970e-03, -3.1894e-02, -1.5896e-03, -2.4380e-02, 9.9467e-03],\n", + " [-3.0277e-02, -2.7341e-02, 3.4734e-02, 6.8040e-03, 3.2219e-02],\n", + " [-2.4927e-03, -2.5790e-03, -5.7664e-03, -3.2622e-02, -3.3634e-02],\n", + " [ 2.0730e-02, -2.5132e-02, -2.6545e-02, -1.1005e-02, 2.8195e-02]],\n", + "\n", + " [[ 2.6250e-02, 7.9877e-03, -1.8213e-02, 1.4875e-02, -1.2586e-02],\n", + " [ 3.4744e-03, -8.0666e-04, 2.5727e-02, 2.8350e-02, -9.4837e-03],\n", + " [ 1.4090e-02, -1.2686e-02, -1.7193e-02, 3.3702e-02, -1.3203e-02],\n", + " [-1.9251e-02, -2.0643e-02, -3.4949e-02, -6.2629e-03, -1.9547e-02],\n", + " [-1.9111e-02, 4.1030e-03, -2.7258e-02, -1.1742e-02, 1.5548e-02]],\n", + "\n", + " ...,\n", + "\n", + " [[-2.5090e-03, 4.7538e-03, 7.9407e-03, -2.2791e-02, 2.1788e-03],\n", + " [-4.9433e-03, 3.1922e-02, -3.1142e-02, 1.4006e-02, -7.7551e-03],\n", + " [ 2.1749e-02, 5.9137e-03, -1.1533e-02, -1.6676e-02, -3.5265e-03],\n", + " [ 3.1718e-02, 1.0119e-02, 3.2395e-02, 3.3945e-02, 4.8077e-03],\n", + " [-1.1578e-02, -2.0632e-02, 2.7696e-02, 3.2618e-02, 9.7284e-03]],\n", + "\n", + " [[ 1.8375e-02, -9.7233e-05, 1.8388e-02, -2.9518e-02, 3.9843e-03],\n", + " [-1.9700e-02, 3.2218e-03, 2.4047e-02, -3.0775e-02, 1.4493e-02],\n", + " [-9.0917e-03, -7.6246e-03, -1.3552e-02, 2.6074e-03, 2.4428e-02],\n", + " [ 2.7959e-02, 2.8538e-02, 1.4753e-02, -1.2307e-02, -2.6018e-02],\n", + " [-3.3357e-02, 3.3910e-02, 1.0897e-02, 2.8469e-02, -2.6521e-02]],\n", + "\n", + " [[-3.1437e-02, -3.0936e-02, 2.0549e-02, 2.5189e-02, 5.8238e-03],\n", + " [ 1.3889e-02, -2.7012e-02, 3.3450e-02, -1.3303e-02, -2.2165e-02],\n", + " [ 2.1920e-02, -2.0136e-02, -7.9523e-03, -1.1588e-02, -2.8461e-02],\n", + " [-5.5698e-03, -9.2438e-03, 4.1570e-04, -1.8359e-02, 1.9532e-02],\n", + " [ 2.0134e-02, 8.2159e-03, -2.3395e-02, 7.6182e-03, 2.7166e-02]]],\n", + "\n", + "\n", + " [[[-7.3934e-03, -1.0176e-02, -9.7839e-03, -4.7201e-03, 2.9347e-02],\n", + " [ 2.2820e-02, -2.3556e-02, 3.1363e-02, 3.1633e-02, 1.2403e-02],\n", + " [ 1.8365e-02, 1.9939e-02, -1.0798e-02, 1.4977e-02, -2.4530e-02],\n", + " [-2.7912e-02, 1.9863e-02, 1.0049e-02, 1.4724e-02, 1.2780e-02],\n", + " [ 4.0170e-03, -3.3140e-02, -2.9632e-02, 1.4946e-03, -1.6940e-02]],\n", + "\n", + " [[-3.4747e-02, -5.2359e-03, -1.5862e-02, 2.6807e-02, -5.9706e-03],\n", + " [ 2.7407e-02, -1.0718e-02, -1.4837e-02, -3.1179e-02, -1.7709e-02],\n", + " [-1.3655e-02, -2.1498e-02, 2.8826e-02, 2.5957e-02, -2.4366e-02],\n", + " [ 1.4200e-02, -1.4852e-02, -4.7653e-03, 2.4253e-02, -1.6041e-02],\n", + " [-4.7325e-03, 2.8462e-02, -5.8148e-03, -2.6908e-02, -2.0238e-02]],\n", + "\n", + " [[ 4.9883e-03, 8.7387e-03, 1.6713e-02, -1.0209e-02, -1.0910e-03],\n", + " [ 2.6915e-02, -2.4194e-02, 2.7620e-02, 2.2118e-02, -2.5813e-02],\n", + " [-8.1892e-03, -2.0470e-02, -1.1753e-02, -1.0251e-02, 2.4059e-02],\n", + " [-3.1399e-03, 3.1092e-02, 1.7936e-02, -2.1981e-02, 2.5822e-02],\n", + " [ 1.9193e-02, 9.7368e-03, 2.6554e-02, -2.7229e-02, 1.5611e-02]],\n", + "\n", + " ...,\n", + "\n", + " [[ 2.5990e-02, 1.8204e-03, 6.3907e-04, 1.3599e-02, -2.4928e-02],\n", + " [-4.0177e-03, -9.5758e-03, -3.1354e-02, 3.4710e-02, 1.5811e-02],\n", + " [-1.3928e-02, -5.0035e-03, -8.0641e-03, 1.7689e-03, -3.0916e-02],\n", + " [ 2.2672e-02, 2.5900e-02, -1.4861e-02, -1.9387e-02, 2.4626e-03],\n", + " [ 5.2564e-03, -1.1521e-02, 1.1267e-02, 2.8809e-02, 8.4900e-03]],\n", + "\n", + " [[-2.4825e-02, 1.4945e-02, 2.0792e-02, -7.3404e-03, -3.1627e-02],\n", + " [ 2.1001e-02, -1.1632e-02, 1.1063e-02, 5.0528e-03, 1.8288e-02],\n", + " [ 1.8396e-02, 2.4709e-02, -1.8625e-02, 3.1313e-03, -1.7493e-02],\n", + " [ 3.4257e-02, -3.2146e-03, 1.9457e-02, 2.9968e-02, 2.6933e-02],\n", + " [ 2.8540e-02, -1.9069e-02, -8.6731e-03, 6.6561e-03, -7.9887e-03]],\n", + "\n", + " [[ 2.0432e-02, 4.1301e-03, 2.8091e-02, -1.5266e-02, 3.8479e-03],\n", + " [-3.0857e-03, -1.9645e-02, 3.2926e-02, -1.6260e-02, -2.0212e-02],\n", + " [ 3.3778e-03, -9.7388e-04, -7.2386e-03, -9.4193e-03, -1.5630e-02],\n", + " [-1.4204e-03, -8.6640e-03, 2.0029e-02, -1.6952e-02, 2.7978e-02],\n", + " [ 1.4138e-02, -1.3769e-02, -2.7078e-02, -5.8826e-03, 2.9882e-02]]],\n", + "\n", + "\n", + " [[[ 1.2291e-02, -2.2902e-02, 1.1633e-02, 3.4403e-02, -1.1917e-02],\n", + " [ 1.2536e-02, -1.1643e-02, -9.9262e-03, 1.7047e-02, -3.4983e-02],\n", + " [ 8.9901e-03, -3.3618e-02, -8.4233e-03, -5.1072e-04, -8.9520e-04],\n", + " [ 1.3063e-02, 1.5268e-02, 2.8177e-02, 1.2762e-02, 2.4342e-02],\n", + " [-1.6559e-02, 3.3652e-02, -2.4771e-03, -7.7901e-03, 3.9261e-03]],\n", + "\n", + " [[-1.7359e-02, -3.0286e-02, -3.1738e-02, -2.5330e-02, 2.6791e-03],\n", + " [-1.6079e-02, -4.5769e-03, -1.9375e-02, -1.4358e-02, -1.4470e-02],\n", + " [-2.2557e-03, -2.9062e-02, 3.2361e-02, -2.0854e-02, 1.3980e-02],\n", + " [ 4.6692e-03, -6.2594e-03, -2.1700e-02, 1.7638e-02, -1.6371e-02],\n", + " [ 1.3422e-02, 2.3067e-03, 2.0222e-02, 8.4460e-03, 1.5446e-02]],\n", + "\n", + " [[ 2.7963e-02, -2.2203e-03, -2.0449e-02, -2.6557e-02, 3.4897e-02],\n", + " [ 6.2281e-03, 1.4564e-03, -5.3195e-03, -1.0745e-02, -2.5309e-02],\n", + " [-2.8325e-03, -3.1341e-02, 3.5223e-02, 1.4007e-02, 9.4664e-03],\n", + " [-1.4459e-02, 2.3820e-02, 3.5399e-03, 1.9318e-02, -8.8443e-03],\n", + " [-2.4607e-03, 1.4686e-03, -2.0640e-02, -3.1963e-02, 3.5608e-03]],\n", + "\n", + " ...,\n", + "\n", + " [[ 3.3729e-02, 1.5060e-02, -1.0339e-02, -3.3869e-02, 9.5173e-03],\n", + " [ 2.9181e-02, 2.6096e-02, 6.5876e-03, 1.4734e-02, -1.3666e-02],\n", + " [ 3.8105e-03, 1.4149e-02, -1.5581e-02, -6.6103e-03, 2.5904e-02],\n", + " [ 1.7985e-02, 3.0942e-02, 1.5265e-02, -1.5719e-02, -6.3216e-03],\n", + " [ 4.6500e-03, 1.2790e-02, 2.9090e-03, 5.3699e-03, -1.4805e-02]],\n", + "\n", + " [[-1.0921e-02, -1.9939e-03, -2.8213e-02, -6.9159e-03, -1.5026e-03],\n", + " [ 3.1958e-02, 7.6529e-03, -1.5578e-02, -2.3311e-02, -7.5325e-03],\n", + " [ 9.9005e-03, -1.2741e-02, 2.4803e-02, -1.7379e-04, 2.8831e-02],\n", + " [-2.3304e-02, -1.4651e-02, 2.0540e-03, 6.7600e-03, -2.2979e-02],\n", + " [-2.8824e-02, 2.5435e-02, 2.3059e-02, 2.0000e-03, -2.6226e-02]],\n", + "\n", + " [[-3.8041e-03, 1.3903e-02, -2.4387e-02, -6.0695e-03, -1.2511e-02],\n", + " [-2.3270e-02, 1.7635e-02, 9.2290e-03, 3.1794e-02, -1.5929e-03],\n", + " [-3.1804e-02, -1.5838e-02, -7.3459e-03, 1.6185e-02, 2.6591e-02],\n", + " [-7.9933e-03, -2.6467e-03, -1.7165e-02, 1.1167e-02, 1.2200e-02],\n", + " [-2.1517e-02, -1.5859e-02, -2.5180e-02, -1.4661e-02, -2.9686e-02]]]])), ('conv2.bias', tensor([-0.0089, -0.0188, -0.0332, 0.0145, 0.0114, 0.0143, -0.0350, 0.0262,\n", + " -0.0120, -0.0293, -0.0241, 0.0296, 0.0040, 0.0037, -0.0102, -0.0286,\n", + " 0.0114, 0.0021, 0.0105, 0.0194, 0.0032, -0.0117, 0.0232, 0.0098,\n", + " 0.0349, 0.0020, -0.0103, -0.0307, 0.0153, 0.0227, 0.0066, 0.0023,\n", + " -0.0033, 0.0143, -0.0275, 0.0305, 0.0050, -0.0263, -0.0068, 0.0017,\n", + " 0.0258, 0.0263, -0.0047, 0.0063, 0.0233, -0.0141, -0.0251, 0.0072,\n", + " 0.0058, -0.0183, -0.0226, -0.0204, 0.0080, -0.0164, 0.0317, -0.0037,\n", + " -0.0171, -0.0219, 0.0041, 0.0267, -0.0242, -0.0056, 0.0006, 0.0317])), ('fc1.weight', tensor([[-0.0071, 0.0033, -0.0022, ..., -0.0169, -0.0172, 0.0034],\n", + " [ 0.0109, -0.0090, 0.0169, ..., 0.0074, -0.0104, 0.0056],\n", + " [ 0.0113, -0.0158, -0.0173, ..., -0.0151, -0.0095, 0.0036],\n", + " ...,\n", + " [-0.0174, -0.0122, 0.0140, ..., -0.0145, -0.0094, 0.0060],\n", + " [-0.0027, 0.0069, -0.0158, ..., -0.0118, 0.0147, -0.0022],\n", + " [-0.0161, -0.0009, -0.0035, ..., -0.0114, -0.0134, 0.0092]])), ('fc1.bias', tensor([ 1.0599e-02, -8.6450e-03, -6.3942e-03, -1.6975e-02, 9.9938e-03,\n", + " 1.9097e-03, -1.0315e-02, -1.3646e-02, -8.1271e-03, 9.0041e-03,\n", + " -1.5887e-02, -8.1938e-03, 2.3270e-03, 6.1815e-03, 1.3092e-02,\n", + " -1.6892e-02, 7.6708e-03, 5.4282e-03, -1.5561e-02, -3.7766e-03,\n", + " -1.5642e-02, -8.5728e-03, -8.8577e-03, -3.0399e-03, -8.2830e-04,\n", + " 1.0327e-02, 1.3440e-02, -6.5937e-03, -1.1239e-02, -1.4882e-05,\n", + " 3.3315e-03, 1.4572e-02, 1.0429e-02, 3.8221e-03, 1.5226e-02,\n", + " -7.9018e-03, -6.1310e-03, 7.9535e-03, -1.7202e-04, 1.1906e-02,\n", + " -1.4496e-03, -5.4891e-03, -1.7822e-02, 4.6960e-03, 2.4820e-03,\n", + " 9.9257e-03, 2.6597e-03, -1.6335e-02, -8.0572e-03, -1.6191e-02,\n", + " 2.6107e-03, -8.7351e-03, 1.2610e-02, -2.6491e-03, 3.7665e-03,\n", + " 1.7175e-02, -6.5901e-03, -9.9649e-03, 2.9988e-03, -1.7338e-02,\n", + " 1.6825e-02, -1.1604e-02, -4.9108e-03, -2.1019e-03, 1.2322e-02,\n", + " -8.7332e-03, 1.6764e-02, -1.3749e-02, -2.0282e-03, -1.3290e-03,\n", + " 1.3664e-02, 5.7036e-03, 1.5984e-03, -1.0168e-02, -4.8652e-03,\n", + " 8.3150e-03, 6.2086e-03, 4.7627e-03, 1.3689e-02, 1.4757e-02,\n", + " -9.3733e-03, -1.5374e-02, 1.5027e-02, 4.3609e-03, -1.0545e-02,\n", + " -5.0889e-03, -1.7105e-02, -1.7145e-02, -1.1442e-02, -6.1340e-03,\n", + " 8.5078e-04, -9.6481e-03, -1.3213e-02, 5.9745e-03, -1.1376e-02,\n", + " 3.3183e-03, 1.6145e-02, 2.4235e-03, 1.6919e-02, 1.5337e-02,\n", + " -1.1545e-02, -1.0109e-02, 2.0069e-03, -1.6511e-02, 1.3294e-02,\n", + " -1.5669e-02, -3.9068e-03, 1.8742e-03, -9.1673e-03, 1.1506e-03,\n", + " -1.4879e-02, 1.0596e-02, -9.0080e-03, 1.0127e-02, -1.4706e-02,\n", + " 1.5415e-02, -1.7710e-02, 1.1429e-02, -1.5419e-02, 6.1092e-03,\n", + " -1.4390e-02, 8.4765e-03, 1.7293e-02, -7.1311e-03, -1.1727e-02,\n", + " 7.7789e-03, -1.2567e-03, 6.0136e-04, -1.9898e-04, -4.7073e-04,\n", + " -1.0649e-02, -1.1535e-02, 1.1677e-02, 1.3624e-02, 3.7816e-03,\n", + " 1.3092e-02, 8.3147e-03, -4.8131e-03, 7.3444e-03, -4.5568e-03,\n", + " -1.1646e-02, 1.4085e-02, 1.1272e-03, 8.6347e-03, 1.1023e-02,\n", + " 5.5445e-04, 1.7230e-03, -3.8121e-03, -1.0967e-02, -4.1310e-04,\n", + " 1.1095e-02, -1.0299e-03, 1.7205e-02, 1.4472e-02, 1.2128e-02,\n", + " 4.1678e-04, 1.2811e-03, 5.0368e-03, 9.3278e-03, -1.4437e-03,\n", + " 4.1266e-03, 1.7662e-02, -1.1016e-02, 1.2045e-02, 1.4821e-02,\n", + " 7.7413e-03, 1.6675e-02, -8.9300e-03, -3.0653e-03, 1.1605e-02,\n", + " -1.3406e-02, 6.5672e-03, 1.3058e-02, -1.4200e-02, -3.0637e-03,\n", + " 1.7033e-02, -9.3881e-03, -1.0808e-02, -1.7957e-03, -7.1261e-03,\n", + " -7.3204e-03, -8.9633e-03, -8.2413e-03, -5.5158e-03, -1.4663e-02,\n", + " 1.4772e-02, -3.0448e-04, 4.8010e-03, 1.1064e-02, 1.1962e-02,\n", + " 2.0472e-03, 6.9584e-03, 1.5075e-02, 9.7652e-03, -7.7444e-03,\n", + " -1.0379e-02, 1.1072e-02, 1.4794e-02, -8.4761e-03, 3.5616e-03,\n", + " 5.4151e-03, 1.2374e-02, 2.6088e-03, 7.1733e-03, 1.5912e-02,\n", + " 1.6955e-02, 1.6708e-02, 1.5722e-02, 1.3790e-02, 7.6082e-03,\n", + " -1.3489e-02, -1.5303e-02, -5.8350e-03, 1.5449e-03, -5.2578e-03,\n", + " 8.7357e-03, -3.6394e-03, -1.0066e-02, 6.7846e-03, 3.6722e-03,\n", + " 1.6229e-02, -1.2347e-02, -5.3337e-04, -2.2696e-03, -6.3521e-03,\n", + " 1.1781e-02, -6.5279e-03, 1.4175e-02, -5.8475e-03, 6.1828e-03,\n", + " -9.1681e-04, 3.0490e-03, 5.3204e-04, -1.6254e-02, -1.4384e-02,\n", + " -1.7404e-02, 1.6214e-02, 1.9150e-03, -1.1529e-02, 1.3483e-02,\n", + " 1.4156e-02, -2.2867e-03, -6.3781e-03, 4.9263e-03, -3.1053e-04,\n", + " -1.6139e-02, 1.5538e-02, -1.0906e-02, -5.3594e-04, -1.3852e-02,\n", + " 1.4711e-02, 2.2670e-03, 4.6235e-03, 2.2870e-03, 7.4649e-03,\n", + " -1.2044e-02, 5.5126e-03, 3.5019e-03, 1.1637e-02, 1.1617e-02,\n", + " 7.1574e-03, -1.1512e-02, -1.4618e-02, -8.2484e-03, -1.4063e-02,\n", + " 1.7327e-02, -1.1184e-02, -7.4437e-03, 1.0071e-02, 8.9861e-03,\n", + " 1.1324e-02, -1.5934e-03, 2.1947e-03, -9.0690e-03, -1.3777e-02,\n", + " 1.7074e-02, -1.9567e-03, -9.5734e-03, 9.2282e-03, -1.4792e-02,\n", + " -6.4323e-03, 1.5154e-02, 7.2124e-04, 1.0871e-02, -4.0281e-04,\n", + " 1.4245e-02, 9.4177e-03, 1.7151e-02, 1.5486e-02, -1.4988e-02,\n", + " 3.8895e-03, 1.7496e-02, 7.9678e-03, 6.3199e-03, -5.1412e-03,\n", + " -1.4427e-02, -6.3759e-03, -7.7217e-03, -3.6173e-03, 9.7687e-03,\n", + " 6.5320e-03, -1.5863e-02, -1.7733e-02, 1.7184e-03, 6.4424e-03,\n", + " -8.6543e-03, -1.2671e-02, -1.2172e-02, 1.1991e-02, 9.9203e-03,\n", + " 3.5955e-03, -1.7822e-02, 1.6026e-02, -3.1429e-03, -1.7016e-02,\n", + " 1.4367e-02, -9.1945e-03, -4.3555e-03, 8.2159e-04, -1.3901e-02,\n", + " -2.2414e-03, 1.4850e-02, 7.1511e-03, 1.5343e-02, -1.6178e-02,\n", + " -4.6269e-04, 6.5761e-03, 1.3020e-02, 1.4293e-02, 2.2813e-03,\n", + " -1.8343e-04, -1.1863e-04, 3.0676e-03, 6.7629e-03, -6.4086e-03,\n", + " -9.7947e-04, 1.3532e-02, 1.1120e-02, -2.1384e-03, -1.5998e-02,\n", + " -9.3370e-03, -1.2929e-02, 1.7011e-02, -7.5513e-03, 5.1005e-03,\n", + " 1.2512e-02, -1.7234e-02, -6.6031e-03, 1.3586e-02, 1.7239e-02,\n", + " -7.2807e-03, -1.1572e-02, 1.1847e-02, -7.7931e-03, 1.5670e-02,\n", + " 1.0587e-02, 1.4296e-02, -1.4467e-02, 1.6331e-02, -9.5893e-03,\n", + " 8.7760e-03, 7.2743e-03, -1.6325e-02, -4.1914e-03, -1.2139e-02,\n", + " -1.7660e-02, -1.2324e-02, -5.3574e-03, 9.9540e-03, -1.7179e-02,\n", + " -4.4341e-03, -7.3961e-03, -5.9505e-04, -6.9846e-03, -1.4863e-02,\n", + " 3.9704e-03, -4.7873e-03, 1.7023e-02, -9.8130e-03, 1.5630e-02,\n", + " -4.6168e-03, 2.2979e-03, 7.6713e-03, -3.7443e-03, 6.2625e-03,\n", + " -1.6561e-02, -1.0608e-02, -1.3025e-02, -1.6942e-02, 1.1578e-02,\n", + " -2.6205e-03, 7.7174e-03, -1.2539e-02, -2.3341e-03, -1.2879e-02,\n", + " 1.5701e-03, -1.7168e-02, 1.6907e-02, 9.3912e-03, -6.4490e-03,\n", + " 1.3089e-02, -1.4512e-02, 4.5919e-03, 3.6777e-03, -2.7840e-03,\n", + " -8.8337e-03, 1.0651e-02, -1.1922e-02, -1.6116e-02, -1.5656e-02,\n", + " -3.0819e-03, -5.2202e-03, 8.2204e-03, 1.6060e-02, 1.5273e-02,\n", + " -4.3923e-03, 1.3097e-02, 1.4972e-02, -9.9531e-03, -9.2048e-03,\n", + " -1.6382e-02, 7.7698e-03, 1.3846e-02, 3.7389e-03, 1.1245e-02,\n", + " -5.0212e-04, -6.9064e-03, 1.6954e-02, 7.3107e-03, 1.5068e-02,\n", + " 3.0488e-03, 1.1133e-02, 5.2214e-04, -5.8749e-03, -1.2952e-02,\n", + " -5.6751e-03, -7.3391e-03, 4.9272e-03, -8.1905e-03, -1.7420e-02,\n", + " -9.3297e-03, 7.1031e-03, 2.3575e-03, -9.6408e-03, 1.6551e-02,\n", + " -4.2959e-03, 1.6254e-02, 1.4611e-02, -1.5338e-02, 2.7388e-03,\n", + " -5.6932e-03, -4.8516e-03, -1.5052e-02, -1.0833e-02, 3.0114e-03,\n", + " 1.7360e-02, 1.6522e-02, 8.9507e-03, -1.7579e-02, -1.5005e-02,\n", + " -6.6246e-03, -4.3380e-03, 4.9442e-03, -6.8804e-03, 7.1063e-03,\n", + " -4.3328e-03, -5.7675e-03, -7.0120e-03, -1.2138e-02, -1.4318e-02,\n", + " -1.2090e-02, 1.6474e-02, 1.5264e-02, -1.3311e-02, 1.5019e-02,\n", + " -1.0184e-02, 1.3452e-02, -4.7364e-03, -1.2686e-02, -1.0105e-03,\n", + " -7.7642e-03, 1.0269e-02, 1.4772e-02, 2.0888e-03, 1.0636e-02,\n", + " 7.9315e-03, 6.5338e-03, -6.3965e-03, 9.0090e-03, -3.8823e-03,\n", + " 1.7116e-02, -1.3396e-02, -1.6212e-02, 5.8403e-03, -1.7172e-02,\n", + " 1.3479e-02, -4.3699e-03, -7.0589e-03, 1.1175e-02, 1.7116e-02,\n", + " 1.2828e-02, 7.4169e-03, 8.4769e-03, -1.2264e-02, 1.6118e-02,\n", + " 7.7984e-03, -2.0431e-03, 2.3805e-03, -1.7833e-02, -9.6818e-03,\n", + " -7.6913e-03, -1.3305e-02])), ('fc2.weight', tensor([[-0.0175, 0.0319, 0.0240, ..., -0.0283, -0.0260, 0.0342],\n", + " [ 0.0135, -0.0069, -0.0351, ..., 0.0021, -0.0435, -0.0082],\n", + " [-0.0023, 0.0039, 0.0404, ..., 0.0216, 0.0299, -0.0086],\n", + " ...,\n", + " [ 0.0134, -0.0336, -0.0370, ..., -0.0342, 0.0213, 0.0314],\n", + " [ 0.0109, 0.0286, -0.0269, ..., -0.0081, 0.0009, -0.0038],\n", + " [-0.0080, 0.0278, 0.0083, ..., 0.0007, 0.0084, -0.0251]])), ('fc2.bias', tensor([ 2.2357e-02, 1.9226e-02, 1.1123e-02, -2.4498e-03, -1.6226e-02,\n", + " 3.9878e-02, -3.7970e-02, 2.9134e-02, 1.5137e-02, 3.2274e-02,\n", + " -3.5957e-02, -2.9998e-02, 7.1591e-03, -2.9987e-02, -2.4313e-02,\n", + " 4.2241e-02, 9.3610e-03, 1.5294e-02, -1.6146e-02, 3.7757e-02,\n", + " 2.1120e-02, -3.7359e-03, -2.3047e-02, 6.2452e-04, -2.0957e-02,\n", + " 3.2647e-02, 3.9253e-02, 2.0014e-02, -3.0535e-02, -1.6816e-02,\n", + " -3.9067e-02, -1.2906e-02, -2.3393e-02, 4.3545e-02, -3.0294e-02,\n", + " -1.3963e-02, 4.1285e-02, 3.9417e-02, 3.4044e-02, 2.5627e-02,\n", + " -3.4948e-04, -1.9061e-05, 3.3105e-02, -3.3628e-02, 2.1815e-02,\n", + " 2.9446e-02, 2.1422e-02, -1.4810e-03, 2.7396e-02, -1.2598e-02,\n", + " 2.5633e-03, -3.4380e-02, -2.7923e-02, -2.9328e-03, 5.5454e-03,\n", + " 1.7421e-02, -2.5213e-02, 6.5188e-03, 1.3223e-02, -2.5570e-02,\n", + " -2.6113e-02, -8.3992e-03]))])\n", + "o1_state_dict: {'state': {}, 'param_groups': [{'lr': 0.6, 'momentum': 0, 'dampening': 0, 'weight_decay': 0, 'nesterov': False, 'params': [0, 1, 2, 3, 4, 5, 6, 7]}]}\n" + ] + } + ], + "source": [ + "import torch\n", + "from decentralizepy.datasets.Femnist import CNN\n", + "m1 = CNN()\n", + "o1 = torch.optim.SGD(m1.parameters(), 0.6)\n", + "print(\"m1_state_dict: \", m1.state_dict())\n", + "print(\"o1_state_dict: \", o1.state_dict())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "996934296aa9d79be6c3d800a38d8fdb7dfa8fe7bb07df178f1397cde2cb8742" + }, + "kernelspec": { + "display_name": "Python 3.9.7 64-bit ('tff': conda)", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/testing.py b/eval/testing.py similarity index 100% rename from testing.py rename to eval/testing.py diff --git a/install_nMachines.sh b/install_nMachines.sh new file mode 100644 index 0000000000000000000000000000000000000000..e9b23753d64258a1fac79a7302b39a966ea48d85 --- /dev/null +++ b/install_nMachines.sh @@ -0,0 +1,14 @@ +#!\bin\bash + +cd +mkdir -p Gitlab +cd Gitlab +git clone git@gitlab.epfl.ch:risharma/decentralizepy.git +cd decentralizepy +mkdir -p leaf/data/femnist/data/train +mkdir -p leaf/data/femnist/data/test +mkdir -p leaf/data/femnist/per_user_data/train +~/miniconda3/bin/conda remove --name decpy --all +~/miniconda3/bin/conda create -n decpy python=3.9 +~/miniconda3/envs/decpy/bin/pip install --upgrade pip --quiet +~/miniconda3/envs/decpy/bin/pip install --editable .\[dev\] diff --git a/main.ipynb b/main.ipynb deleted file mode 100644 index f3907f05939f9ec1a9b0c3e703d4120df738999c..0000000000000000000000000000000000000000 --- a/main.ipynb +++ /dev/null @@ -1,585 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datasets.Femnist import Femnist\n", - "from graphs import SmallWorld\n", - "from collections import defaultdict\n", - "import os\n", - "import json\n", - "import numpy as np\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = FEMNIST\n", - "a" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "b = SmallWorld(6, 2, 2, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "b.adj_list" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "for i in range(12):\n", - " print(b.neighbors(i))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "clients = []" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "num_samples = []\n", - "data = defaultdict(lambda : None)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "datadir = \"./leaf/data/femnist/data/train\"\n", - "files = os.listdir(datadir)\n", - "total_users=0\n", - "users = set()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "files = os.listdir(datadir)[0:1]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "for f in files:\n", - " file_path = os.path.join(datadir, f)\n", - " print(file_path)\n", - " with open(file_path, 'r') as inf:\n", - " client_data = json.load(inf)\n", - " current_users = len(client_data['users'])\n", - " print(\"Current_Users: \", current_users)\n", - " total_users += current_users\n", - " users.update(client_data['users'])\n", - "\n", - "print(\"total_users: \", total_users)\n", - "print(\"total_users: \", len(users))\n", - "print(client_data['user_data'].keys())\n", - "print(np.array(client_data['user_data']['f3408_47']['x']).shape)\n", - "print(np.array(client_data['user_data']['f3408_47']['y']).shape)\n", - "print(np.array(client_data['user_data']['f3327_11']['x']).shape)\n", - "print(np.array(client_data['user_data']['f3327_11']['y']).shape)\n", - "print(np.unique(np.array(client_data['user_data']['f3327_11']['y'])))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "file = 'run.py'\n", - "with open(file, 'r') as inf:\n", - " print(inf.readline().strip())\n", - " print(inf.readlines())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def f(l):\n", - " l[2] = 'c'\n", - "\n", - "a = ['a', 'a', 'a']\n", - "print(a)\n", - "f(a)\n", - "print(a)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "l = ['a', 'b', 'c']\n", - "print(l[:-1])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from localconfig import LocalConfig\n", - "\n", - "def read_ini(file_path):\n", - " config = LocalConfig(file_path)\n", - " for section in config:\n", - " print(\"Section: \", section)\n", - " for key, value in config.items(section):\n", - " print((key, value))\n", - " print(dict(config.items('DATASET')))\n", - " return config\n", - " \n", - "config = read_ini(\"config.ini\")\n", - "for section in config:\n", - " print(section)\n", - "#d = dict(config.sections())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def func(a = 1, b = 2, c = 3):\n", - " print(a + b + c)\n", - "\n", - "l = [3, 5, 7]\n", - "\n", - "func(*l)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from torch import multiprocessing as mp\n", - "\n", - "mp.spawn(fn = func, nprocs = 2, args = [], kwargs = {'a': 4, 'b': 5, 'c': 6})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "l = '[0.4, 0.2, 0.3, 0.1]'\n", - "type(eval(l))\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.datasets.Femnist import Femnist\n", - "f1 = Femnist(0, 1, 'leaf/data/femnist/data/train')\n", - "ts = f1.get_trainset(1)\n", - "for data, target in ts:\n", - " print(data)\n", - " break" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.datasets.Femnist import Femnist\n", - "from decentralizepy.graphs.SmallWorld import SmallWorld\n", - "from decentralizepy.mappings.Linear import Linear\n", - "\n", - "f = Femnist(2, 'leaf/data/femnist/data/train', sizes=[0.6, 0.4])\n", - "g = SmallWorld(4, 1, 0.5)\n", - "l = Linear(2, 2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.node.Node import Node\n", - "from torch import multiprocessing as mp\n", - "import logging\n", - "n1 = Node(0, l, g, f, \"./results\", logging.DEBUG)\n", - "n2 = Node(1, l, g, f, \"./results\", logging.DEBUG)\n", - "# mp.spawn(fn = Node, nprocs = 2, args=[l,g,f])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from testing import f" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from torch import multiprocessing as mp\n", - "import torch\n", - "m1 = torch.nn.Linear(1,1)\n", - "o1 = torch.optim.SGD(m1.parameters(), 0.6)\n", - "print(m1)\n", - "\n", - "\n", - "mp.spawn(fn = f, nprocs = 2, args=[m1, o1])\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "o1.param_groups" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "with torch.no_grad():\n", - " o1.param_groups[0][\"params\"][0].copy_(torch.zeros(1,))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "o1.param_groups" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "m1.state_dict()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "loss = getattr(torch.nn.functional, 'nll_loss')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "loss" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Section: GRAPH\n", - "('package', 'decentralizepy.graphs.SmallWorld')\n", - "('graph_class', 'SmallWorld')\n", - "Section: DATASET\n", - "('dataset_package', 'decentralizepy.datasets.Femnist')\n", - "('dataset_class', 'Femnist')\n", - "('model_class', 'CNN')\n", - "('n_procs', 36)\n", - "('train_dir', 'leaf/data/femnist/per_user_data/train')\n", - "('test_dir', 'leaf/data/femnist/data/test')\n", - "('sizes', '')\n", - "Section: OPTIMIZER_PARAMS\n", - "('optimizer_package', 'torch.optim')\n", - "('optimizer_class', 'Adam')\n", - "('lr', 0.01)\n", - "Section: TRAIN_PARAMS\n", - "('training_package', 'decentralizepy.training.Training')\n", - "('training_class', 'Training')\n", - "('epochs_per_round', 1)\n", - "('batch_size', 1024)\n", - "('shuffle', True)\n", - "('loss_package', 'torch.nn')\n", - "('loss_class', 'CrossEntropyLoss')\n", - "Section: COMMUNICATION\n", - "('comm_package', 'decentralizepy.communication.TCP')\n", - "('comm_class', 'TCP')\n", - "('addresses_filepath', 'ip_addr.json')\n", - "Section: SHARING\n", - "('sharing_package', 'decentralizepy.sharing.Sharing')\n", - "('sharing_class', 'Sharing')\n", - "{'dataset_package': 'decentralizepy.datasets.Femnist', 'dataset_class': 'Femnist', 'model_class': 'CNN', 'n_procs': 36, 'train_dir': 'leaf/data/femnist/per_user_data/train', 'test_dir': 'leaf/data/femnist/data/test', 'sizes': ''}\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "\n", - "from decentralizepy.node.Node import Node\n", - "from decentralizepy.graphs.SmallWorld import SmallWorld\n", - "from decentralizepy.graphs.Graph import Graph\n", - "from decentralizepy.mappings.Linear import Linear\n", - "from torch import multiprocessing as mp\n", - "import torch\n", - "import logging\n", - "\n", - "from localconfig import LocalConfig\n", - "\n", - "def read_ini(file_path):\n", - " config = LocalConfig(file_path)\n", - " for section in config:\n", - " print(\"Section: \", section)\n", - " for key, value in config.items(section):\n", - " print((key, value))\n", - " print(dict(config.items('DATASET')))\n", - " return config\n", - " \n", - "config = read_ini(\"config.ini\")\n", - "my_config = dict()\n", - "for section in config:\n", - " my_config[section] = dict(config.items(section))\n", - "\n", - "#f = Femnist(2, 'leaf/data/femnist/data/train', sizes=[0.6, 0.4])\n", - "g = Graph()\n", - "g.read_graph_from_file(\"36_nodes.edges\", \"edges\")\n", - "l = Linear(1, 36)\n", - "\n", - "#Node(0, 0, l, g, my_config, 20, \"results\", logging.DEBUG)\n", - "\n", - "mp.spawn(fn = Node, nprocs = g.n_procs, args=[0,l,g,my_config,20,\"results\",logging.INFO])\n", - "\n", - "# mp.spawn(fn = Node, args = [l, g, config, 10, \"results\", logging.DEBUG], nprocs=2)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.mappings.Linear import Linear\n", - "from testing import f\n", - "from torch import multiprocessing as mp\n", - "\n", - "l = Linear(1, 2)\n", - "mp.spawn(fn = f, nprocs = 2, args = [0, 2, \"ip_addr.json\", l])\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.datasets.Femnist import Femnist\n", - "\n", - "f = Femnist()\n", - "\n", - "f.file_per_user('leaf/data/femnist/data/train','leaf/data/femnist/per_user_data/train')\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "a = set()\n", - "a.update([2, 3, 4, 5])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{2, 3, 4, 5}" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2 3 4 5\n" - ] - } - ], - "source": [ - "print(*a)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from decentralizepy.graphs.SmallWorld import SmallWorld\n", - "\n", - "s = SmallWorld(36, 2, .5)\n", - "s.write_graph_to_file('36_nodes.edges')" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/home/risharma/miniconda3/envs/decpy/lib/python3.9/site-packages/ipykernel_launcher.py',\n", - " '--ip=127.0.0.1',\n", - " '--stdin=9008',\n", - " '--control=9006',\n", - " '--hb=9005',\n", - " '--Session.signature_scheme=\"hmac-sha256\"',\n", - " '--Session.key=b\"eac5d2f8-c460-45f1-a268-1e4b46a6efd6\"',\n", - " '--shell=9007',\n", - " '--transport=\"tcp\"',\n", - " '--iopub=9009',\n", - " '--f=/tmp/tmp-21212479paJaUBJBN84.json']" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import sys\n", - "sys.argv" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "996934296aa9d79be6c3d800a38d8fdb7dfa8fe7bb07df178f1397cde2cb8742" - }, - "kernelspec": { - "display_name": "Python 3.9.7 64-bit ('tff': conda)", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/run.py b/run.py deleted file mode 100644 index ff82fc22662b23e38c049f8eac9025073e9ea1bc..0000000000000000000000000000000000000000 --- a/run.py +++ /dev/null @@ -1,14 +0,0 @@ -import torch -import torch.multiprocessing as mp - -x = [1, 2] - - -def f(id, a): - print(id, x) - print(id, a) - - -if __name__ == "__main__": - x.append(3) - mp.spawn(f, nprocs=2, args=(x,)) diff --git a/src/decentralizepy/sharing/PartialModel.py b/src/decentralizepy/sharing/PartialModel.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7702d2ebad2a8e6cd7565c43e284c1fa043492b9 100644 --- a/src/decentralizepy/sharing/PartialModel.py +++ b/src/decentralizepy/sharing/PartialModel.py @@ -0,0 +1,6 @@ +from decentralizepy.sharing.Sharing import Sharing + +class PartialModel(Sharing): + def __init__(self, rank, machine_id, communication, mapping, graph, model, dataset): + super().__init__(rank, machine_id, communication, mapping, graph, model, dataset) +