A PyTorch implementation for paper Unsupervised Domain Adaptation by Backpropagation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
62 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"source images\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"target images\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"target images legacy\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"%reload_ext autoreload\n",
"%autoreload 2\n",
"\n",
"import torch\n",
"import torchvision\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"from datasets.synsigns import get_synsigns\n",
"from datasets.gtsrb import get_gtsrb\n",
"from datasets.gtsrb_legacy import get_gtsrb as get_gtsrb_legacy\n",
"\n",
"# show input images\n",
"def imshow(inp, title=None):\n",
" \"\"\"Imshow for Tensor.\"\"\"\n",
" inp = inp.numpy().transpose((1, 2, 0))\n",
"# mean = np.array([0.485, 0.456, 0.406])\n",
"# std = np.array([0.229, 0.224, 0.225])\n",
" mean = np.array([0.5, 0.5, 0.5])\n",
" std = np.array([0.5, 0.5, 0.5])\n",
" inp = std * inp + mean\n",
" inp = np.clip(inp, 0, 1)\n",
" plt.imshow(inp)\n",
" if title is not None:\n",
" plt.title(title)\n",
" plt.pause(0.001) # pause a bit so that plots are updated\n",
"\n",
"classes = pd.read_csv('/home/wogong/datasets/gtsrb/signnames.csv')\n",
"class_names = {}\n",
"for i, row in classes.iterrows():\n",
" class_names[str(row[0])] = row[1]\n",
"\n",
"# Get a batch of training data\n",
"# inputs contains 4 images because batch_size=4 for the dataloaders\n",
"batch_size = 2\n",
"src_dataloader = get_synsigns('/home/wogong/datasets/synsigns', batch_size, True)\n",
"tgt_dataloader = get_gtsrb('/home/wogong/datasets/gtsrb', batch_size, True)\n",
"tgt_dataloader_legacy = get_gtsrb_legacy('/home/wogong/datasets/gtsrb', batch_size, True)\n",
"\n",
"src_inputs, src_classes = next(iter(src_dataloader))\n",
"tgt_inputs, tgt_classes = next(iter(tgt_dataloader))\n",
"tgt_inputs_legacy, tgt_classes_legacy = next(iter(tgt_dataloader_legacy))\n",
"\n",
"# Make a grid from batch\n",
"src_out = torchvision.utils.make_grid(src_inputs)\n",
"tgt_out = torchvision.utils.make_grid(tgt_inputs)\n",
"tgt_out_legacy = torchvision.utils.make_grid(tgt_inputs_legacy)\n",
"\n",
"print ('source images')\n",
"imshow(src_out, title=[class_names[str(x.item())] for x in src_classes])\n",
"print ('target images')\n",
"imshow(tgt_out, title=[class_names[str(x.item())] for x in tgt_classes])\n",
"print ('target images legacy')\n",
"imshow(tgt_out_legacy, title=[class_names[str(x.item())] for x in tgt_classes_legacy])\n"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"39209\n"
]
}
],
"source": [
"import pprint, pickle\n",
"\n",
"pkl_file = open('/home/wogong/datasets/gtsrb/gtsrb_train.p', 'rb')\n",
"\n",
"data1 = pickle.load(pkl_file)\n",
"print (len(data1['labels']))\n",
"\n",
"pkl_file.close()"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a 1\n",
"b 2\n"
]
},
{
"data": {
"text/plain": [
"3"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fs = {}\n",
"for k, v in {'a': 1, 'b': 2}.items():\n",
" print (k, v)\n",
" fs[k] = lambda x: x + v\n",
"fs['a'](1)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (py3-pt1.0)",
"language": "python",
"name": "py3-pt1.0"
},
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}