{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"https://knork.medium.com/linear-regression-in-python-from-scratch-with-kernels-e9c37f7975b9","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-03-14T07:54:37.557139Z","iopub.execute_input":"2023-03-14T07:54:37.557544Z","iopub.status.idle":"2023-03-14T07:54:37.668125Z","shell.execute_reply.started":"2023-03-14T07:54:37.557510Z","shell.execute_reply":"2023-03-14T07:54:37.666358Z"}}},{"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\n\nx=np.linspace(2,30,100)\nprint(x.shape)\ny= 2*(x+15)+np.random.random_sample(x.shape)*5+2\n\nplt.scatter(x,y)\nx=x[:, np.newaxis]","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:37:34.282397Z","iopub.execute_input":"2023-03-17T06:37:34.282681Z","iopub.status.idle":"2023-03-17T06:37:34.552604Z","shell.execute_reply.started":"2023-03-17T06:37:34.282653Z","shell.execute_reply":"2023-03-17T06:37:34.551436Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x=np.stack([x[:,0],np.ones(x.shape[0])],axis=1).reshape(-1,2) #(100,2)\nprint(x.shape)\nk = np.linalg.inv(np.dot(x.T,x)) #(2,2)\nprint(y.shape) #\n\nm=np.dot(k,np.dot(x.T,y))\nprint(m)\nplt.scatter(x[:,0],y)\nplt.plot(m[1],m[0])","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:37:34.554730Z","iopub.execute_input":"2023-03-17T06:37:34.555098Z","iopub.status.idle":"2023-03-17T06:37:34.866202Z","shell.execute_reply.started":"2023-03-17T06:37:34.555056Z","shell.execute_reply":"2023-03-17T06:37:34.865061Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def kernel(x_i,x_j):\n    #return np.dot(x_j,x_i) # Linear Kernel, same as not using Kernels at all\n    #return np.dot(x_j,x_i)**2 # Polynomial Kernel\n    return np.exp(-0.5*np.linalg.norm(x_i-x_j)) # Gaussian Kernel\nprint(x.shape)\n\n# let's set up some non linear data\ny= np.sin(x[:,0])+x[:,1]\ny= x[:,0] + 4*np.sin(x[:,0])+ 4*np.random.rand(x.shape[0])\n\n# We could just call the kernel function every time\n# Instead we store the solutions in this matrix\n# to save some computations\nK=np.zeros((x.shape[0],x.shape[0]))\nfor i, row in enumerate(K):\n    for j, col in enumerate(K.T):\n        K[i,j]=kernel(x[i,:],x[j,:])","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:37:34.870760Z","iopub.execute_input":"2023-03-17T06:37:34.877996Z","iopub.status.idle":"2023-03-17T06:37:35.035502Z","shell.execute_reply.started":"2023-03-17T06:37:34.877944Z","shell.execute_reply":"2023-03-17T06:37:35.034295Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(K.shape)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:37:35.038238Z","iopub.execute_input":"2023-03-17T06:37:35.039356Z","iopub.status.idle":"2023-03-17T06:37:35.046138Z","shell.execute_reply.started":"2023-03-17T06:37:35.039315Z","shell.execute_reply":"2023-03-17T06:37:35.044691Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\n\ndef show(x_sample,y,a=0,b=0, x_2=None,y_2=None):\n    if b !=0:\n        plt.plot(x_sample,a+b*x_sample , c='red')\n\n    if x_2 is not None:\n        plt.plot(x_2,y_2, c='red')\n    plt.scatter(x_sample, y)\n    plt.show()\n","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:39:26.411607Z","iopub.execute_input":"2023-03-17T06:39:26.412452Z","iopub.status.idle":"2023-03-17T06:39:26.927735Z","shell.execute_reply.started":"2023-03-17T06:39:26.412401Z","shell.execute_reply":"2023-03-17T06:39:26.926458Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"a = np.linalg.inv(K+0.1*np.eye(K.shape[0]))\nm=np.dot(y,a)\n\nx_pred=np.arange(0,35,0.2)\nx_pred=np.stack([x_pred,np.ones(x_pred.shape[0])],axis=1).reshape(-1,2)\n#print(x_pred)\ny_pred=np.zeros(x_pred.shape[0])\nfor outer_i, x_p in enumerate(x_pred):\n    k = np.zeros(x.shape[0])\n    for i, row in enumerate(k):\n        k[i]=kernel(x_p,x[i,:])\n    y_pred[outer_i]=np.dot(m,k)\n\nshow(x[:,0],y,x_2=x_pred[:,0],y_2=y_pred)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T06:39:24.269627Z","iopub.execute_input":"2023-03-17T06:39:24.270541Z","iopub.status.idle":"2023-03-17T06:39:24.277188Z","shell.execute_reply.started":"2023-03-17T06:39:24.270500Z","shell.execute_reply":"2023-03-17T06:39:24.276127Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"transfer learning","metadata":{}},{"cell_type":"code","source":"import torch\nfrom torchvision import models\nfrom torchvision import transforms\n\nimport json\nfrom PIL import Image","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"resnet = models.resnet18(pretrained=False)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:11.926484Z","iopub.execute_input":"2023-03-17T13:12:11.927419Z","iopub.status.idle":"2023-03-17T13:12:12.162692Z","shell.execute_reply.started":"2023-03-17T13:12:11.927379Z","shell.execute_reply":"2023-03-17T13:12:12.161668Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nnet = resnet.to(device)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:12.164177Z","iopub.execute_input":"2023-03-17T13:12:12.164996Z","iopub.status.idle":"2023-03-17T13:12:14.972137Z","shell.execute_reply.started":"2023-03-17T13:12:12.164953Z","shell.execute_reply":"2023-03-17T13:12:14.971088Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch as trch\nimport torchvision.datasets as dts \nimport torchvision.transforms as trnsfrms\nimport torch.nn as nn\nimport matplotlib.pyplot as plot\n\ntrnsform = trnsfrms.Compose([trnsfrms.ToTensor(), trnsfrms.Normalize((0.7,), (0.7,)),])\n\nmnisttrainset = dts.MNIST(root='./data', train=True, download=True, transform=trnsform)\ntrainldr = trch.utils.data.DataLoader(mnisttrainset, batch_size=10, shuffle=True)\n\nmnist_testset = dts.MNIST(root='./data', train=False, download=True, transform=trnsform)\ntestldr = trch.utils.data.DataLoader(mnist_testset, batch_size=10, shuffle=True)\ntrnsform = trnsfrms.Compose([trnsfrms.ToTensor(), trnsfrms.Normalize((0.7,), (0.7,)),])","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:14.976066Z","iopub.execute_input":"2023-03-17T13:12:14.976395Z","iopub.status.idle":"2023-03-17T13:12:15.977325Z","shell.execute_reply.started":"2023-03-17T13:12:14.976364Z","shell.execute_reply":"2023-03-17T13:12:15.975864Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch.optim as optim\nimport torchvision\nimport torchvision.transforms as transforms\n\n#check gpu\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n\n#set hyperparameter\nEPOCH = 10\npre_epoch = 0\nBATCH_SIZE = 128\nLR = 0.01\n\n#prepare dataset and preprocessing\ntransform_train = transforms.Compose([\ntorchvision.transforms.Grayscale(num_output_channels=3),transforms.ToTensor(), transforms.Normalize([0.5], [0.5])])\n\ntransform_test = transforms.Compose([\ntorchvision.transforms.Grayscale(num_output_channels=3),transforms.ToTensor(), transforms.Normalize([0.5], [0.5])])\n#/kaggle/input/mnistm\ntrainset = torchvision.datasets.MNIST(root='/kaggle/Input/', train=True, download=True, transform=transform_train)\n\ntrainloader = torch.utils.data.DataLoader(trainset, batch_size=BATCH_SIZE, shuffle=True, num_workers=2)\n\ntestset = torchvision.datasets.MNIST(root='/kaggle/Input/', train=False, download=True, transform=transform_test)\n\ntestloader = torch.utils.data.DataLoader(testset, batch_size=100, shuffle=False, num_workers=2)\n\n","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:15.982363Z","iopub.execute_input":"2023-03-17T13:12:15.984764Z","iopub.status.idle":"2023-03-17T13:12:17.023555Z","shell.execute_reply.started":"2023-03-17T13:12:15.984709Z","shell.execute_reply":"2023-03-17T13:12:17.022360Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt\nprint(trainset.train_data.size())\nprint(trainset.train_labels.size())\nplt.ion()\nfor i in range(3):\n  plt.imshow(trainset.train_data[i].numpy())\n  plt.title('%i' % trainset.train_labels[i])\n  plt.pause(0.5)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:17.025117Z","iopub.execute_input":"2023-03-17T13:12:17.025784Z","iopub.status.idle":"2023-03-17T13:12:19.177441Z","shell.execute_reply.started":"2023-03-17T13:12:17.025740Z","shell.execute_reply":"2023-03-17T13:12:19.176274Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"examples = enumerate(testloader)\nbatch_idx, (example_data, example_targets) = next(examples)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:19.179086Z","iopub.execute_input":"2023-03-17T13:12:19.179549Z","iopub.status.idle":"2023-03-17T13:12:19.343179Z","shell.execute_reply.started":"2023-03-17T13:12:19.179509Z","shell.execute_reply":"2023-03-17T13:12:19.341210Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"example_data.shape","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:19.349261Z","iopub.execute_input":"2023-03-17T13:12:19.352435Z","iopub.status.idle":"2023-03-17T13:12:19.377693Z","shell.execute_reply.started":"2023-03-17T13:12:19.352378Z","shell.execute_reply":"2023-03-17T13:12:19.376336Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch.nn as nn\nresnet = models.resnet18(pretrained=False)\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nnet = resnet.to(device)\n#define loss funtion & optimizer\ncriterion = nn.CrossEntropyLoss()\noptimizer = optim.SGD(net.parameters(), lr=LR, momentum=0.9, weight_decay=5e-4)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:19.380038Z","iopub.execute_input":"2023-03-17T13:12:19.380831Z","iopub.status.idle":"2023-03-17T13:12:19.615475Z","shell.execute_reply.started":"2023-03-17T13:12:19.380757Z","shell.execute_reply":"2023-03-17T13:12:19.614459Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from tqdm import tqdm\n#train\nfor epoch in tqdm(range(pre_epoch, EPOCH)):\n    print('\\nEpoch: %d' % (epoch + 1))\n    net.train()\n    sum_loss = 0.0\n    correct = 0.0\n    total = 0.0\n    for i, data in enumerate(trainloader, 0):\n        #prepare dataset\n        length = len(trainloader)\n        inputs, labels = data\n        inputs, labels = inputs.to(device), labels.to(device)\n        optimizer.zero_grad()\n        \n        #forward & backward\n        outputs = net(inputs)\n        loss = criterion(outputs, labels)\n        loss.backward()\n        optimizer.step()\n        \n        #print ac & loss in each batch\n        sum_loss += loss.item()\n        _, predicted = torch.max(outputs.data, 1)\n        total += labels.size(0)\n        correct += predicted.eq(labels.data).cpu().sum()\n#         print('[epoch:%d, iter:%d] Loss: %.03f | Acc: %.3f%% ' \n#               % (epoch + 1, (i + 1 + epoch * length), sum_loss / (i + 1), 100. * correct / total))\n    print('Loss: %.03f | Acc: %.3f%%'% (sum_loss / (i + 1), 100. * correct / total))    \n    #get the ac with testdataset in each epoch\n    print('Waiting Test...')\n    with torch.no_grad():\n        correct = 0\n        total = 0\n        for data in testloader:\n            net.eval()\n            images, labels = data\n            images, labels = images.to(device), labels.to(device)\n            outputs = net(images)\n            _, predicted = torch.max(outputs.data, 1)\n            total += labels.size(0)\n            correct += (predicted == labels).sum()\n        print('Test\\'s ac is: %.3f%%' % (100 * correct / total))\n\nprint('Train has finished, total epoch is %d' % EPOCH)\n\n","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:12:19.619761Z","iopub.execute_input":"2023-03-17T13:12:19.620090Z","iopub.status.idle":"2023-03-17T13:16:24.867005Z","shell.execute_reply.started":"2023-03-17T13:12:19.620061Z","shell.execute_reply":"2023-03-17T13:16:24.865673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# # Print model's state_dict\n# print(\"Model's state_dict:\")\n# for param_tensor in net.state_dict():\n#     print(param_tensor, \"\\t\", net.state_dict()[param_tensor].size())\n\n# # Print optimizer's state_dict\n# print(\"Optimizer's state_dict:\")\n# for var_name in optimizer.state_dict():\n#     print(var_name, \"\\t\", optimizer.state_dict()[var_name])","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:16:24.869008Z","iopub.execute_input":"2023-03-17T13:16:24.869404Z","iopub.status.idle":"2023-03-17T13:16:24.876934Z","shell.execute_reply.started":"2023-03-17T13:16:24.869348Z","shell.execute_reply":"2023-03-17T13:16:24.875811Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"torch.save(net.state_dict(), 'model_weights.pth')","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:16:24.878183Z","iopub.execute_input":"2023-03-17T13:16:24.879060Z","iopub.status.idle":"2023-03-17T13:16:24.964582Z","shell.execute_reply.started":"2023-03-17T13:16:24.879024Z","shell.execute_reply":"2023-03-17T13:16:24.963511Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# net.avgpool.register_forward_hook(get_activation('avgpool')) #get featuresnet = models.resnet18(pretrained=False)\n# net.load_state_dict(torch.load('model_weights.pth'))\n# net.to(device)\n# net.eval()","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:16:24.966234Z","iopub.execute_input":"2023-03-17T13:16:24.966706Z","iopub.status.idle":"2023-03-17T13:16:25.105101Z","shell.execute_reply.started":"2023-03-17T13:16:24.966662Z","shell.execute_reply":"2023-03-17T13:16:25.103805Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# import numpy as np\n# import pandas as pd\n# import gc\n\n# import warnings\n# warnings.filterwarnings('ignore')\n\n# import os\n# import glob\n# import os.path as osp\n# from PIL import Image\n\n# import matplotlib.pyplot as plt\n# %matplotlib inline\n# import torch\n# import torchvision\n# import torchvision.transforms as transforms\n# from torch.utils import data as D\n# class Loaddataset(D.Dataset):\n#     \"\"\"\n#     A customized data loader.\n#     \"\"\"\n#     def __init__(self, root):\n#         \"\"\" Intialize the dataset\n#         \"\"\"\n#         self.filenames = []\n#         self.root = root\n#         self.transform = transforms.ToTensor()\n#         filenames = glob.glob(osp.join(root, '*.jpg'))\n        \n#         for fn in filenames:\n#             self.filenames.append(fn)\n        \n#         self.len = len(self.filenames)\n        \n#     # You must override __getitem__ and __len__\n#     def __getitem__(self, index):\n#         \"\"\" Get a sample from the dataset\n#         \"\"\"\n#         image = Image.open(self.filenames[index])\n#         return self.transform(image)\n\n#     def __len__(self):\n#         \"\"\"\n#         Total number of samples in the dataset\n#         \"\"\"\n        \n#         return self.len","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:16:25.106573Z","iopub.status.idle":"2023-03-17T13:16:25.107337Z","shell.execute_reply.started":"2023-03-17T13:16:25.107072Z","shell.execute_reply":"2023-03-17T13:16:25.107099Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# target_path = \"/kaggle/input/mnistm/mnistm\"\n# import torch as trch\n# import torchvision.datasets as dts \n# import torchvision.transforms as trnsfrms\n# import torch.nn as nn\n# import matplotlib.pyplot as plot\n# import numpy as np\n# # trnsform = trnsfrms.Compose([trnsfrms.ToTensor(), trnsfrms.Normalize((0.7,), (0.7,)),])\n\n# # target_data = \"/kaggle/input/mnistm\"\n# # target_data = trch.utils.data.DataLoader(target_data, batch_size=10, shuffle=True)\n\n\n# # create data\n# ...\n\n\n# dataset = Loaddataset(target_path)\n# # total images in set\n# print(dataset.len)\n\n# targetloader = D.DataLoader(dataset, batch_size=BATCH_SIZE, shuffle = False )\n\n","metadata":{"execution":{"iopub.status.busy":"2023-03-17T13:16:25.108760Z","iopub.status.idle":"2023-03-17T13:16:25.109515Z","shell.execute_reply.started":"2023-03-17T13:16:25.109248Z","shell.execute_reply":"2023-03-17T13:16:25.109275Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def imshow(img):\n#     npimg = img.numpy()\n#     plt.imshow(np.transpose(npimg, (1, 2, 0)))\n\n# # get some images\n# dataiter = iter(targetloader)\n# images = next(dataiter)\n# print(images.shape)\n# # show images\n# plt.figure(figsize=(16,8))\n# imshow(torchvision.utils.make_grid(images))","metadata":{"execution":{"iopub.status.busy":"2023-03-17T07:54:22.936367Z","iopub.execute_input":"2023-03-17T07:54:22.936861Z","iopub.status.idle":"2023-03-17T07:54:24.308539Z","shell.execute_reply.started":"2023-03-17T07:54:22.936821Z","shell.execute_reply":"2023-03-17T07:54:24.307692Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# from torchvision.models.feature_extraction import create_feature_extractor\n# from tqdm import tqdm\n# sum_loss = 0.0\n# correct = 0.0\n# total = 0.0\n# source_like = [] \n# target_like = []    \n# activation = {}\n# def get_activation(name):\n#     def hook(model, input, output):\n#         activation[name] = output.detach()\n#     return hook\n\n# net.avgpool.register_forward_hook(get_activation('avgpool')) #get features\n# net.fc.register_forward_hook(get_activation('fc')) #get probability\n# #get the ac with testdataset in each epoch\n# print('Waiting Test...')\n# with torch.no_grad():\n#     correct = 0\n#     total = 0\n#     for data in tqdm(targetloader):\n#         net.eval() \n        \n#         images = data\n#         images = images.to(device)\n#         aa = net(images)\n#         features = activation['avgpool']\n#         outputs = torch.softmax(activation['fc'], dim =-1)\n#         Entropy = torch.sum(-outputs* torch.log(outputs), dim = -1)\n\n#         # source / target\n#         src_mask = Entropy <= 0.2 \n         \n#         source_like.append(features[src_mask])\n#         target_like.append(features[torch.logical_not(src_mask)])  \n","metadata":{"execution":{"iopub.status.busy":"2023-03-17T07:54:24.309586Z","iopub.execute_input":"2023-03-17T07:54:24.310708Z","iopub.status.idle":"2023-03-17T08:04:37.807509Z","shell.execute_reply.started":"2023-03-17T07:54:24.310667Z","shell.execute_reply":"2023-03-17T08:04:37.806296Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# print(torch.cat(source_like).shape)\n# print(torch.cat(target_like).shape)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T08:04:37.812108Z","iopub.execute_input":"2023-03-17T08:04:37.812507Z","iopub.status.idle":"2023-03-17T08:04:37.822496Z","shell.execute_reply.started":"2023-03-17T08:04:37.812476Z","shell.execute_reply":"2023-03-17T08:04:37.821302Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# source = []\n# with torch.no_grad():\n#     correct = 0\n#     total = 0\n#     for data in tqdm(trainloader):\n#         net.eval() \n        \n#         images, label = data\n#         #print(images)\n#         images = images.to(device)\n#         aa = net(images)\n#         features = activation['avgpool']\n#         source.append(features)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T08:04:37.824438Z","iopub.execute_input":"2023-03-17T08:04:37.824908Z","iopub.status.idle":"2023-03-17T08:04:55.586026Z","shell.execute_reply.started":"2023-03-17T08:04:37.824868Z","shell.execute_reply":"2023-03-17T08:04:55.584840Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# from sklearn.decomposition import PCA\n# def get_pca(data, n_components = 2):\n#     pca = PCA()\n#     pca.n_components = n_components\n#     pca_data = pca.fit_transform(data)\n#     return pca_data","metadata":{"execution":{"iopub.status.busy":"2023-03-17T08:04:55.588246Z","iopub.execute_input":"2023-03-17T08:04:55.588688Z","iopub.status.idle":"2023-03-17T08:04:56.040643Z","shell.execute_reply.started":"2023-03-17T08:04:55.588619Z","shell.execute_reply":"2023-03-17T08:04:56.039578Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# def plot_representations(data, labels, classes, n_images = None):\n    \n#     if n_images is not None:\n#         data = data[:n_images]\n#         labels = labels[:n_images]\n        \n#     fig = plt.figure(figsize = (10, 10))\n#     ax = fig.add_subplot(111)\n#     scatter = ax.scatter(data[:, 0], data[:, 1], c = labels, cmap = 'tab10')\n#     handles, labels = scatter.legend_elements()\n#     legend = ax.legend(handles = handles, labels = classes)","metadata":{"execution":{"iopub.status.busy":"2023-03-17T08:04:56.042448Z","iopub.execute_input":"2023-03-17T08:04:56.042896Z","iopub.status.idle":"2023-03-17T08:04:56.050249Z","shell.execute_reply.started":"2023-03-17T08:04:56.042853Z","shell.execute_reply":"2023-03-17T08:04:56.048817Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# source_like.shape","metadata":{"execution":{"iopub.status.busy":"2023-03-17T08:04:56.074226Z","iopub.execute_input":"2023-03-17T08:04:56.074573Z","iopub.status.idle":"2023-03-17T08:04:56.129872Z","shell.execute_reply.started":"2023-03-17T08:04:56.074536Z","shell.execute_reply":"2023-03-17T08:04:56.128467Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# from sklearn.decomposition import PCA\n# import plotly.express as px\n# # source = torch.cat(source)\n# # source_like = torch.cat(source_like)\n# # target_like = torch.cat(target_like)\n\n# pca = PCA(n_components=2)\n# new_src = pca.fit(source.cpu().numpy())\n# new_srcLike = pca.fit(source_like.cpu().numpy())\n# new_tarLike = pca.fit(target_like.cpu().numpy())\n\n# plt.scatter(new_src)\n# plt.scatter(new_srcLike)\n# plt.scatter(new_tarLike)\n","metadata":{"execution":{"iopub.status.busy":"2023-03-16T14:10:11.972206Z","iopub.execute_input":"2023-03-16T14:10:11.973308Z","iopub.status.idle":"2023-03-16T14:10:12.109475Z","shell.execute_reply.started":"2023-03-16T14:10:11.973269Z","shell.execute_reply":"2023-03-16T14:10:12.107865Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"\n\n# #t-SNE\n# source_tsne = manifold.TSNE(n_components=2, init='random', random_state=5, verbose=1).fit_transform(X)\n\n# #Data Visualization\n# x_min, x_max = X_tsne.min(0), X_tsne.max(0)\n# X_norm = (X_tsne - x_min) / (x_max - x_min)  #Normalize\n# plt.figure(figsize=(8, 8))\n# # for i in range(X_norm.shape[0]):\n# #     plt.text(X_norm[i, 0], X_norm[i, 1], str(y[i]), color=plt.cm.Set1(y[i]), \n# #              fontdict={'weight': 'bold', 'size': 9})\n# for i in range(X_norm.shape[0]):\n#     plt.scatter(X_norm[i, 0], X_norm[i, 1],s=20,color=plt.cm.Set1(i))\n# plt.xticks([])\n# plt.yticks([])\n# plt.show()","metadata":{"execution":{"iopub.status.busy":"2023-03-16T13:19:01.374522Z","iopub.execute_input":"2023-03-16T13:19:01.375227Z","iopub.status.idle":"2023-03-16T13:19:01.383082Z","shell.execute_reply.started":"2023-03-16T13:19:01.375187Z","shell.execute_reply":"2023-03-16T13:19:01.381755Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# len(targetloader)","metadata":{"execution":{"iopub.status.busy":"2023-03-16T13:19:23.774094Z","iopub.execute_input":"2023-03-16T13:19:23.774507Z","iopub.status.idle":"2023-03-16T13:19:23.783026Z","shell.execute_reply.started":"2023-03-16T13:19:23.774470Z","shell.execute_reply":"2023-03-16T13:19:23.781809Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# mask = torch.tensor([True, False, False])\n# x = torch.randn(3, 100)\n# x[mask]","metadata":{"execution":{"iopub.status.busy":"2023-03-16T13:28:38.935305Z","iopub.execute_input":"2023-03-16T13:28:38.936152Z","iopub.status.idle":"2023-03-16T13:28:38.965202Z","shell.execute_reply.started":"2023-03-16T13:28:38.936117Z","shell.execute_reply":"2023-03-16T13:28:38.964084Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}