Skip to content
Snippets Groups Projects
main.ipynb 11.2 KiB
Newer Older
Rishi Sharma's avatar
Rishi Sharma committed
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "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,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "source": [
    "a = FEMNIST\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
   "source": [
    "b = SmallWorld(6, 2, 2, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "source": [
    "b.adj_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "source": [
    "for i in range(12):\n",
    "    print(b.neighbors(i))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
   "source": [
    "clients = []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
   "source": [
    "num_samples = []\n",
    "data = defaultdict(lambda : None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "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,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
   "source": [
    "files = os.listdir(datadir)[0:1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "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,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "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,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "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,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "source": [
    "l = ['a', 'b', 'c']\n",
    "print(l[:-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "metadata": {},
   "outputs": [],
Rishi Sharma's avatar
Rishi Sharma committed
   "source": [
    "from localconfig import LocalConfig\n",
Rishi Sharma's avatar
Rishi Sharma committed
    "\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",
Rishi Sharma's avatar
Rishi Sharma committed
    "    return config\n",
Rishi Sharma's avatar
Rishi Sharma committed
    " \n",
Rishi Sharma's avatar
Rishi Sharma committed
    "config = read_ini(\"config.ini\")\n",
    "for section in config:\n",
    "    print(section)\n",
    "#d = dict(config.sections())"
Rishi Sharma's avatar
Rishi Sharma committed
   ]
  },
   "execution_count": null,
   "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": [
Rishi Sharma's avatar
Rishi Sharma committed
    "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",
Rishi Sharma's avatar
Rishi Sharma committed
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from testing import f"
   ]
  },
Rishi Sharma's avatar
Rishi Sharma committed
   "execution_count": null,
Rishi Sharma's avatar
Rishi Sharma committed
   "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",
    "mp.spawn(fn = f, nprocs = 2, args=[m1, o1])\n",
    "\n"
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
   "execution_count": null,
   "outputs": [],
    "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()"
Rishi Sharma's avatar
Rishi Sharma committed
  {
   "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": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "from decentralizepy.node.Node import Node\n",
    "from decentralizepy.graphs.SmallWorld import SmallWorld\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 = SmallWorld(4, 1, 0.5)\n",
    "print(g)\n",
    "l = Linear(2, 2)\n",
    "\n",
    "#Node(0, 0, l, g, my_config, 20, \"results\", logging.DEBUG)\n",
    "\n",
    "#mp.spawn(fn = Node, nprocs = 1, args=[0,l,g,my_config,20,\"results\",logging.DEBUG])\n",
    "\n",
    "# mp.spawn(fn = Node, args = [l, g, config, 10, \"results\", logging.DEBUG], nprocs=2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'mp' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_1457289/353106489.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0ml\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mLinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mmp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mspawn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnprocs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"ip_addr.json\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ml\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'mp' is not defined"
     ]
    }
   ],
   "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"
   ]
  },
Rishi Sharma's avatar
Rishi Sharma committed
  {
   "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
}