This commit is contained in:
Mhrooz 2024-10-14 23:24:24 +02:00
commit 889bd1974c
2 changed files with 1312 additions and 10 deletions

View File

@ -94013,18 +94013,53 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Call the get_net_config function with index=5374, dataset=cifar10.\n",
"|nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
"Call the get_net_config function with index=2581, dataset=ImageNet16-120.\n",
"|nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_3x3~1|nor_conv_3x3~2|\n"
]
}
],
"source": [
"api.get_net_param(5374, 'cifar10', None)"
"from xautodl.models import get_cell_based_tiny_net\n",
"def get_network_str_by_id(id, dataset):\n",
" config = api.get_net_config(id, dataset)\n",
" return config['arch_str']\n",
"# api.get_net_param(5374, 'cifar10', None)\n",
"# api.get_net_param(5374, 'cifar10', None)\n",
"# api.get_net_param(2581, 'ImageNet16-120', None)\n",
"# api.show(5374)\n",
"# network_5374_config = api.get_net_config(5374, 'cifar10')\n",
"# print(network_5374_config['arch_str'])\n",
"# network_5374 = get_cell_based_tiny_net(network_5374_config)\n",
"# print(network_5374)\n",
"\n",
"print(get_network_str_by_id(5374, 'cifar10'))\n",
"print(get_network_str_by_id(2581, 'ImageNet16-120'))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2024-07-17 15:45:32.545006: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
"To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
"2024-07-17 15:45:35.634182: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
]
}
],
"source": [
"import os, sys, time, torch, random, argparse\n",
"from PIL import ImageFile\n",
@ -94477,9 +94512,9 @@
" train_acc1es[last_epoch],\n",
" train_acc5es[last_epoch],\n",
" 100 - train_acc1es[last_epoch],\n",
" valid_acc1es[last_epoch],\n",
" valid_acc5es[last_epoch],\n",
" 100 - valid_acc1es[last_epoch],\n",
" valid_acc1es['ori-test@'+str(last_epoch)],\n",
" valid_acc5es['ori-test@'+str(last_epoch)],\n",
" 100 - valid_acc1es['ori-test@'+str(last_epoch)],\n",
" )\n",
" )\n",
" # measure elapsed time\n",
@ -94498,9 +94533,28 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 12,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"['meta',\n",
" 'new',\n",
" 'cover',\n",
" 'specific-resnet',\n",
" 'specific-all_c3x3',\n",
" 'specific-all_c1x1',\n",
" 'specific-all_idnt',\n",
" 'specific-all_full',\n",
" 'specific-5374']"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mode_choices = ['meta', 'new', 'cover'] + ['specific-{:}'.format(_) for _ in CellArchitectures.keys()]\n",
"\n",
@ -103620,9 +103674,641 @@
" arch_config={\"channel\": 16, \"num_cells\": 8},)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'resnet': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_3x3~1|+|skip_connect~0|skip_connect~2|), 'all_c3x3': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|nor_conv_3x3~0|nor_conv_3x3~1|nor_conv_3x3~2|), 'all_c1x1': Structure(4 nodes with |nor_conv_1x1~0|+|nor_conv_1x1~0|nor_conv_1x1~1|+|nor_conv_1x1~0|nor_conv_1x1~1|nor_conv_1x1~2|), 'all_idnt': Structure(4 nodes with |skip_connect~0|+|skip_connect~0|skip_connect~1|+|skip_connect~0|skip_connect~1|skip_connect~2|), 'all_full': Structure(4 nodes with |skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|+|skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|skip_connect~1|nor_conv_1x1~1|nor_conv_3x3~1|avg_pool_3x3~1|+|skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|skip_connect~1|nor_conv_1x1~1|nor_conv_3x3~1|avg_pool_3x3~1|skip_connect~2|nor_conv_1x1~2|nor_conv_3x3~2|avg_pool_3x3~2|), '5374': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|)}\n",
"Start train-evaluate |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
"arch_config : {'channel': 16, 'num_cells': 8}\n",
"\n",
"The 00/01-th seed is 777 ----------------------<.>----------------------\n",
"Does not find the existing file outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|-16-8/seed-0777.pth, train and evaluate!\n",
"configs/nas-benchmark/ImageNet-16.config\n",
"Configure(scheduler='cos', eta_min=0.0, epochs=200, warmup=0, optim='SGD', LR=0.1, decay=0.0005, momentum=0.9, nesterov=True, criterion='Softmax', batch_size=256, class_num=120, xshape=(1, 3, 16, 16))\n",
"Evaluate ||||||| ImageNet16-120 ||||||| Train-Num=151700, Valid-Num=6000, Train-Loader-Num=593, Valid-Loader-Num=24, batch size=256\n",
"Evaluate ||||||| ImageNet16-120 ||||||| Config=Configure(scheduler='cos', eta_min=0.0, epochs=200, warmup=0, optim='SGD', LR=0.1, decay=0.0005, momentum=0.9, nesterov=True, criterion='Softmax', batch_size=256, class_num=120, xshape=(1, 3, 16, 16))\n",
"Evaluate ---->>>> ori-test with 24 batchs\n",
"Evaluate ---->>>> x-valid with 12 batchs\n",
"Evaluate ---->>>> x-test with 12 batchs\n",
"Network : TinyNetwork(C=16, N=8, L=26)\n",
" 00/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 01/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 02/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 03/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 04/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 05/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 06/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 07/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 08/26 :: ResNetBasicblock(inC=16, outC=32, stride=2)\n",
" 09/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 10/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 11/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 12/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 13/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 14/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 15/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 16/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 17/26 :: ResNetBasicblock(inC=32, outC=64, stride=2)\n",
" 18/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 19/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 20/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 21/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 22/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 23/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 24/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
" 25/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\n",
"[2024-07-14 09:36:31] Seed-------------------------- 777 --------------------------\n",
"FLOP = 45.993592 MB, Param = 1.291848 MB\n",
"[2024-07-14 09:42:21] Time Left: [16:45:37] epoch=000/200 :: Train [loss=4.26253, acc@1=5.96%, acc@5=20.82%] Valid [loss=4.00968, acc@1=9.53%, acc@5=28.80%]\n",
"[2024-07-14 09:45:27] Time Left: [13:26:43] epoch=001/200 :: Train [loss=3.74493, acc@1=12.73%, acc@5=36.07%] Valid [loss=3.91584, acc@1=12.20%, acc@5=34.60%]\n",
"[2024-07-14 09:48:39] Time Left: [12:24:45] epoch=002/200 :: Train [loss=3.51942, acc@1=16.39%, acc@5=42.35%] Valid [loss=3.43835, acc@1=16.93%, acc@5=44.53%]\n",
"[2024-07-14 09:51:41] Time Left: [11:44:47] epoch=003/200 :: Train [loss=3.37017, acc@1=19.03%, acc@5=46.51%] Valid [loss=3.38087, acc@1=19.17%, acc@5=46.97%]\n",
"[2024-07-14 09:54:40] Time Left: [11:17:13] epoch=004/200 :: Train [loss=3.26584, acc@1=21.07%, acc@5=49.33%] Valid [loss=3.28679, acc@1=20.40%, acc@5=49.23%]\n",
"[2024-07-14 09:57:56] Time Left: [11:06:54] epoch=005/200 :: Train [loss=3.18553, acc@1=22.64%, acc@5=51.54%] Valid [loss=3.22106, acc@1=21.07%, acc@5=51.20%]\n",
"[2024-07-14 10:01:08] Time Left: [10:57:12] epoch=006/200 :: Train [loss=3.12005, acc@1=23.88%, acc@5=53.16%] Valid [loss=3.43760, acc@1=19.57%, acc@5=47.50%]\n",
"[2024-07-14 10:04:07] Time Left: [10:43:27] epoch=007/200 :: Train [loss=3.06374, acc@1=24.99%, acc@5=54.55%] Valid [loss=3.28910, acc@1=22.00%, acc@5=50.07%]\n",
"[2024-07-14 10:07:21] Time Left: [10:37:43] epoch=008/200 :: Train [loss=3.02099, acc@1=25.91%, acc@5=55.48%] Valid [loss=3.46859, acc@1=19.97%, acc@5=46.83%]\n",
"[2024-07-14 10:10:33] Time Left: [10:31:35] epoch=009/200 :: Train [loss=2.97979, acc@1=26.63%, acc@5=56.58%] Valid [loss=3.05453, acc@1=25.33%, acc@5=56.57%]\n",
"[2024-07-14 10:13:31] Time Left: [10:22:19] epoch=010/200 :: Train [loss=2.95049, acc@1=27.14%, acc@5=57.27%] Valid [loss=3.18838, acc@1=23.53%, acc@5=53.87%]\n",
"[2024-07-14 10:16:47] Time Left: [10:18:32] epoch=011/200 :: Train [loss=2.92318, acc@1=27.83%, acc@5=57.95%] Valid [loss=3.03852, acc@1=26.80%, acc@5=56.43%]\n",
"[2024-07-14 10:19:46] Time Left: [10:10:56] epoch=012/200 :: Train [loss=2.90533, acc@1=28.38%, acc@5=58.32%] Valid [loss=3.09584, acc@1=24.30%, acc@5=55.27%]\n",
"[2024-07-14 10:22:55] Time Left: [10:05:56] epoch=013/200 :: Train [loss=2.88313, acc@1=28.73%, acc@5=58.74%] Valid [loss=3.07111, acc@1=25.43%, acc@5=54.70%]\n",
"[2024-07-14 10:26:15] Time Left: [10:03:42] epoch=014/200 :: Train [loss=2.86548, acc@1=29.02%, acc@5=59.15%] Valid [loss=3.07112, acc@1=25.90%, acc@5=55.23%]\n",
"[2024-07-14 10:29:34] Time Left: [10:01:07] epoch=015/200 :: Train [loss=2.85124, acc@1=29.22%, acc@5=59.63%] Valid [loss=2.99977, acc@1=27.80%, acc@5=57.57%]\n",
"[2024-07-14 10:32:48] Time Left: [09:57:29] epoch=016/200 :: Train [loss=2.83907, acc@1=29.52%, acc@5=59.86%] Valid [loss=3.01370, acc@1=26.77%, acc@5=56.60%]\n",
"[2024-07-14 10:36:03] Time Left: [09:54:01] epoch=017/200 :: Train [loss=2.82510, acc@1=29.70%, acc@5=60.17%] Valid [loss=3.25502, acc@1=24.20%, acc@5=53.37%]\n",
"[2024-07-14 10:39:13] Time Left: [09:49:54] epoch=018/200 :: Train [loss=2.81301, acc@1=30.08%, acc@5=60.42%] Valid [loss=3.13386, acc@1=24.43%, acc@5=54.03%]\n",
"[2024-07-14 10:42:28] Time Left: [09:46:29] epoch=019/200 :: Train [loss=2.80351, acc@1=30.36%, acc@5=60.61%] Valid [loss=3.02672, acc@1=26.80%, acc@5=56.90%]\n",
"[2024-07-14 10:45:36] Time Left: [09:42:12] epoch=020/200 :: Train [loss=2.79481, acc@1=30.34%, acc@5=60.92%] Valid [loss=3.07357, acc@1=25.97%, acc@5=55.07%]\n",
"[2024-07-14 10:48:46] Time Left: [09:38:15] epoch=021/200 :: Train [loss=2.78907, acc@1=30.58%, acc@5=60.85%] Valid [loss=3.10674, acc@1=25.50%, acc@5=54.63%]\n",
"[2024-07-14 10:51:56] Time Left: [09:34:19] epoch=022/200 :: Train [loss=2.77681, acc@1=30.84%, acc@5=61.28%] Valid [loss=2.97100, acc@1=27.37%, acc@5=57.20%]\n",
"[2024-07-14 10:55:07] Time Left: [09:30:40] epoch=023/200 :: Train [loss=2.76841, acc@1=31.02%, acc@5=61.37%] Valid [loss=2.96919, acc@1=27.30%, acc@5=57.60%]\n",
"[2024-07-14 10:58:22] Time Left: [09:27:29] epoch=024/200 :: Train [loss=2.75856, acc@1=31.28%, acc@5=61.48%] Valid [loss=3.00703, acc@1=27.23%, acc@5=57.40%]\n",
"[2024-07-14 11:01:35] Time Left: [09:24:02] epoch=025/200 :: Train [loss=2.75397, acc@1=31.32%, acc@5=61.74%] Valid [loss=2.87433, acc@1=29.43%, acc@5=58.40%]\n",
"[2024-07-14 11:04:49] Time Left: [09:20:44] epoch=026/200 :: Train [loss=2.74592, acc@1=31.47%, acc@5=61.77%] Valid [loss=3.24646, acc@1=24.30%, acc@5=53.73%]\n",
"[2024-07-14 11:07:58] Time Left: [09:16:59] epoch=027/200 :: Train [loss=2.73860, acc@1=31.65%, acc@5=62.02%] Valid [loss=2.97604, acc@1=27.07%, acc@5=56.93%]\n",
"[2024-07-14 11:11:12] Time Left: [09:13:42] epoch=028/200 :: Train [loss=2.73391, acc@1=31.63%, acc@5=62.26%] Valid [loss=2.93580, acc@1=28.10%, acc@5=58.97%]\n",
"[2024-07-14 11:14:24] Time Left: [09:10:12] epoch=029/200 :: Train [loss=2.72755, acc@1=31.77%, acc@5=62.29%] Valid [loss=2.98760, acc@1=28.00%, acc@5=57.50%]\n",
"[2024-07-14 11:17:39] Time Left: [09:07:01] epoch=030/200 :: Train [loss=2.72570, acc@1=31.92%, acc@5=62.37%] Valid [loss=2.88096, acc@1=28.80%, acc@5=58.77%]\n",
"[2024-07-14 11:20:52] Time Left: [09:03:43] epoch=031/200 :: Train [loss=2.71806, acc@1=32.08%, acc@5=62.46%] Valid [loss=2.79607, acc@1=30.20%, acc@5=61.07%]\n",
"[2024-07-14 11:24:04] Time Left: [09:00:16] epoch=032/200 :: Train [loss=2.71019, acc@1=32.27%, acc@5=62.69%] Valid [loss=3.03772, acc@1=26.80%, acc@5=58.30%]\n",
"[2024-07-14 11:27:18] Time Left: [08:57:01] epoch=033/200 :: Train [loss=2.70648, acc@1=32.21%, acc@5=62.59%] Valid [loss=2.87236, acc@1=28.57%, acc@5=60.03%]\n",
"[2024-07-14 11:30:28] Time Left: [08:53:28] epoch=034/200 :: Train [loss=2.70764, acc@1=32.45%, acc@5=62.78%] Valid [loss=2.86522, acc@1=29.80%, acc@5=60.37%]\n",
"[2024-07-14 11:33:39] Time Left: [08:50:03] epoch=035/200 :: Train [loss=2.69993, acc@1=32.49%, acc@5=62.86%] Valid [loss=3.12887, acc@1=24.67%, acc@5=55.00%]\n",
"[2024-07-14 11:36:53] Time Left: [08:46:47] epoch=036/200 :: Train [loss=2.68965, acc@1=32.55%, acc@5=63.10%] Valid [loss=2.98160, acc@1=27.00%, acc@5=56.43%]\n",
"[2024-07-14 11:40:10] Time Left: [08:43:49] epoch=037/200 :: Train [loss=2.68574, acc@1=32.69%, acc@5=63.29%] Valid [loss=3.01529, acc@1=27.63%, acc@5=57.10%]\n",
"[2024-07-14 11:43:21] Time Left: [08:40:23] epoch=038/200 :: Train [loss=2.68444, acc@1=32.61%, acc@5=63.23%] Valid [loss=2.90238, acc@1=28.83%, acc@5=59.90%]\n",
"[2024-07-14 11:46:32] Time Left: [08:36:55] epoch=039/200 :: Train [loss=2.67854, acc@1=32.89%, acc@5=63.32%] Valid [loss=2.81606, acc@1=30.00%, acc@5=61.40%]\n",
"[2024-07-14 11:49:48] Time Left: [08:33:48] epoch=040/200 :: Train [loss=2.67849, acc@1=32.96%, acc@5=63.41%] Valid [loss=2.87111, acc@1=29.13%, acc@5=60.57%]\n",
"[2024-07-14 11:52:59] Time Left: [08:30:25] epoch=041/200 :: Train [loss=2.67068, acc@1=33.09%, acc@5=63.46%] Valid [loss=3.00114, acc@1=27.73%, acc@5=59.10%]\n",
"[2024-07-14 11:56:10] Time Left: [08:27:00] epoch=042/200 :: Train [loss=2.66727, acc@1=33.16%, acc@5=63.53%] Valid [loss=2.82638, acc@1=29.20%, acc@5=60.77%]\n",
"[2024-07-14 11:59:23] Time Left: [08:23:46] epoch=043/200 :: Train [loss=2.66205, acc@1=33.31%, acc@5=63.68%] Valid [loss=2.88591, acc@1=28.87%, acc@5=59.37%]\n",
"[2024-07-14 12:02:39] Time Left: [08:20:38] epoch=044/200 :: Train [loss=2.65379, acc@1=33.34%, acc@5=63.78%] Valid [loss=2.92892, acc@1=29.67%, acc@5=59.47%]\n",
"[2024-07-14 12:05:52] Time Left: [08:17:22] epoch=045/200 :: Train [loss=2.65149, acc@1=33.45%, acc@5=63.93%] Valid [loss=2.86424, acc@1=29.93%, acc@5=60.37%]\n",
"[2024-07-14 12:09:01] Time Left: [08:13:54] epoch=046/200 :: Train [loss=2.64772, acc@1=33.62%, acc@5=64.02%] Valid [loss=2.84132, acc@1=29.40%, acc@5=61.47%]\n",
"[2024-07-14 12:12:14] Time Left: [08:10:37] epoch=047/200 :: Train [loss=2.64275, acc@1=33.54%, acc@5=64.22%] Valid [loss=2.80634, acc@1=30.13%, acc@5=61.43%]\n",
"[2024-07-14 12:15:28] Time Left: [08:07:24] epoch=048/200 :: Train [loss=2.64089, acc@1=33.63%, acc@5=64.18%] Valid [loss=2.96120, acc@1=28.57%, acc@5=59.07%]\n",
"[2024-07-14 12:18:37] Time Left: [08:03:57] epoch=049/200 :: Train [loss=2.63132, acc@1=33.83%, acc@5=64.40%] Valid [loss=2.89380, acc@1=30.17%, acc@5=59.57%]\n",
"[2024-07-14 12:21:48] Time Left: [08:00:35] epoch=050/200 :: Train [loss=2.62859, acc@1=34.01%, acc@5=64.43%] Valid [loss=2.96467, acc@1=28.00%, acc@5=57.73%]\n",
"[2024-07-14 12:25:03] Time Left: [07:57:26] epoch=051/200 :: Train [loss=2.62351, acc@1=34.01%, acc@5=64.47%] Valid [loss=2.87721, acc@1=29.73%, acc@5=59.43%]\n",
"[2024-07-14 12:28:15] Time Left: [07:54:09] epoch=052/200 :: Train [loss=2.62183, acc@1=33.97%, acc@5=64.63%] Valid [loss=2.91353, acc@1=29.10%, acc@5=58.60%]\n",
"[2024-07-14 12:31:27] Time Left: [07:50:50] epoch=053/200 :: Train [loss=2.61913, acc@1=34.19%, acc@5=64.64%] Valid [loss=2.76000, acc@1=31.77%, acc@5=62.63%]\n",
"[2024-07-14 12:34:41] Time Left: [07:47:39] epoch=054/200 :: Train [loss=2.60808, acc@1=34.41%, acc@5=64.89%] Valid [loss=3.05305, acc@1=26.67%, acc@5=56.80%]\n",
"[2024-07-14 12:37:53] Time Left: [07:44:20] epoch=055/200 :: Train [loss=2.60787, acc@1=34.30%, acc@5=64.86%] Valid [loss=2.91256, acc@1=28.13%, acc@5=59.33%]\n",
"[2024-07-14 12:41:03] Time Left: [07:40:59] epoch=056/200 :: Train [loss=2.60213, acc@1=34.45%, acc@5=65.06%] Valid [loss=2.82238, acc@1=30.63%, acc@5=61.00%]\n",
"[2024-07-14 12:44:15] Time Left: [07:37:42] epoch=057/200 :: Train [loss=2.60030, acc@1=34.47%, acc@5=65.09%] Valid [loss=2.75259, acc@1=30.83%, acc@5=62.07%]\n",
"[2024-07-14 12:47:30] Time Left: [07:34:32] epoch=058/200 :: Train [loss=2.60025, acc@1=34.45%, acc@5=65.08%] Valid [loss=2.73869, acc@1=32.13%, acc@5=63.03%]\n",
"[2024-07-14 12:50:42] Time Left: [07:31:14] epoch=059/200 :: Train [loss=2.59028, acc@1=34.76%, acc@5=65.23%] Valid [loss=2.93077, acc@1=29.40%, acc@5=58.20%]\n",
"[2024-07-14 12:53:53] Time Left: [07:27:56] epoch=060/200 :: Train [loss=2.58203, acc@1=35.01%, acc@5=65.51%] Valid [loss=2.91706, acc@1=30.50%, acc@5=59.27%]\n",
"[2024-07-14 12:57:07] Time Left: [07:24:45] epoch=061/200 :: Train [loss=2.58046, acc@1=34.95%, acc@5=65.50%] Valid [loss=2.94459, acc@1=29.00%, acc@5=59.90%]\n",
"[2024-07-14 13:00:20] Time Left: [07:21:30] epoch=062/200 :: Train [loss=2.57578, acc@1=35.17%, acc@5=65.45%] Valid [loss=2.75836, acc@1=31.57%, acc@5=61.80%]\n",
"[2024-07-14 13:03:30] Time Left: [07:18:09] epoch=063/200 :: Train [loss=2.57045, acc@1=35.21%, acc@5=65.71%] Valid [loss=2.73636, acc@1=32.13%, acc@5=62.67%]\n",
"[2024-07-14 13:06:47] Time Left: [07:15:04] epoch=064/200 :: Train [loss=2.56411, acc@1=35.29%, acc@5=65.78%] Valid [loss=2.77967, acc@1=31.67%, acc@5=62.37%]\n",
"[2024-07-14 13:09:58] Time Left: [07:11:46] epoch=065/200 :: Train [loss=2.56158, acc@1=35.41%, acc@5=65.85%] Valid [loss=2.97350, acc@1=28.33%, acc@5=58.33%]\n",
"[2024-07-14 13:13:08] Time Left: [07:08:26] epoch=066/200 :: Train [loss=2.55559, acc@1=35.50%, acc@5=66.04%] Valid [loss=2.76337, acc@1=31.17%, acc@5=61.90%]\n",
"[2024-07-14 13:16:21] Time Left: [07:05:13] epoch=067/200 :: Train [loss=2.55278, acc@1=35.59%, acc@5=65.98%] Valid [loss=2.65846, acc@1=33.43%, acc@5=64.83%]\n",
"[2024-07-14 13:19:35] Time Left: [07:01:59] epoch=068/200 :: Train [loss=2.54670, acc@1=35.76%, acc@5=66.18%] Valid [loss=2.75755, acc@1=32.33%, acc@5=62.37%]\n",
"[2024-07-14 13:22:45] Time Left: [06:58:41] epoch=069/200 :: Train [loss=2.54479, acc@1=35.57%, acc@5=66.10%] Valid [loss=2.78641, acc@1=30.90%, acc@5=61.93%]\n",
"[2024-07-14 13:25:56] Time Left: [06:55:24] epoch=070/200 :: Train [loss=2.54237, acc@1=35.71%, acc@5=66.21%] Valid [loss=2.67103, acc@1=32.73%, acc@5=64.47%]\n",
"[2024-07-14 13:29:11] Time Left: [06:52:14] epoch=071/200 :: Train [loss=2.53647, acc@1=35.91%, acc@5=66.38%] Valid [loss=2.73200, acc@1=32.00%, acc@5=63.63%]\n",
"[2024-07-14 13:32:21] Time Left: [06:48:55] epoch=072/200 :: Train [loss=2.52912, acc@1=35.92%, acc@5=66.52%] Valid [loss=3.02137, acc@1=28.87%, acc@5=58.00%]\n",
"[2024-07-14 13:35:33] Time Left: [06:45:39] epoch=073/200 :: Train [loss=2.52856, acc@1=36.14%, acc@5=66.51%] Valid [loss=2.66358, acc@1=32.63%, acc@5=64.17%]\n",
"[2024-07-14 13:38:43] Time Left: [06:42:21] epoch=074/200 :: Train [loss=2.52010, acc@1=36.19%, acc@5=66.61%] Valid [loss=2.92345, acc@1=30.30%, acc@5=60.33%]\n",
"[2024-07-14 13:41:57] Time Left: [06:39:10] epoch=075/200 :: Train [loss=2.51500, acc@1=36.35%, acc@5=66.79%] Valid [loss=2.64135, acc@1=33.70%, acc@5=64.37%]\n",
"[2024-07-14 13:45:08] Time Left: [06:35:53] epoch=076/200 :: Train [loss=2.50688, acc@1=36.53%, acc@5=66.99%] Valid [loss=2.80810, acc@1=31.50%, acc@5=61.17%]\n",
"[2024-07-14 13:48:18] Time Left: [06:32:35] epoch=077/200 :: Train [loss=2.50216, acc@1=36.65%, acc@5=67.17%] Valid [loss=2.78121, acc@1=31.83%, acc@5=62.30%]\n",
"[2024-07-14 13:51:30] Time Left: [06:29:20] epoch=078/200 :: Train [loss=2.49707, acc@1=36.65%, acc@5=67.05%] Valid [loss=2.66285, acc@1=34.13%, acc@5=64.50%]\n",
"[2024-07-14 13:54:46] Time Left: [06:26:12] epoch=079/200 :: Train [loss=2.49297, acc@1=36.59%, acc@5=67.35%] Valid [loss=2.86293, acc@1=30.23%, acc@5=60.00%]\n",
"[2024-07-14 13:57:57] Time Left: [06:22:55] epoch=080/200 :: Train [loss=2.48567, acc@1=36.87%, acc@5=67.42%] Valid [loss=2.62550, acc@1=34.90%, acc@5=65.27%]\n",
"[2024-07-14 14:01:08] Time Left: [06:19:39] epoch=081/200 :: Train [loss=2.48517, acc@1=37.07%, acc@5=67.44%] Valid [loss=2.67085, acc@1=33.07%, acc@5=64.00%]\n",
"[2024-07-14 14:04:16] Time Left: [06:16:18] epoch=082/200 :: Train [loss=2.47939, acc@1=37.08%, acc@5=67.49%] Valid [loss=2.74414, acc@1=32.43%, acc@5=62.67%]\n",
"[2024-07-14 14:07:29] Time Left: [06:13:06] epoch=083/200 :: Train [loss=2.47265, acc@1=37.33%, acc@5=67.58%] Valid [loss=2.68026, acc@1=33.77%, acc@5=64.50%]\n",
"[2024-07-14 14:10:40] Time Left: [06:09:50] epoch=084/200 :: Train [loss=2.46669, acc@1=37.17%, acc@5=67.83%] Valid [loss=2.69001, acc@1=34.07%, acc@5=63.67%]\n",
"[2024-07-14 14:13:53] Time Left: [06:06:38] epoch=085/200 :: Train [loss=2.45841, acc@1=37.56%, acc@5=67.97%] Valid [loss=2.69507, acc@1=32.50%, acc@5=64.50%]\n",
"[2024-07-14 14:17:08] Time Left: [06:03:27] epoch=086/200 :: Train [loss=2.45425, acc@1=37.71%, acc@5=67.98%] Valid [loss=2.79578, acc@1=32.27%, acc@5=62.07%]\n",
"[2024-07-14 14:20:22] Time Left: [06:00:15] epoch=087/200 :: Train [loss=2.44740, acc@1=37.65%, acc@5=68.20%] Valid [loss=2.71571, acc@1=33.07%, acc@5=63.87%]\n",
"[2024-07-14 14:23:35] Time Left: [05:57:03] epoch=088/200 :: Train [loss=2.43975, acc@1=37.84%, acc@5=68.47%] Valid [loss=2.68832, acc@1=33.83%, acc@5=64.53%]\n",
"[2024-07-14 14:26:49] Time Left: [05:53:51] epoch=089/200 :: Train [loss=2.43238, acc@1=38.12%, acc@5=68.49%] Valid [loss=2.93188, acc@1=29.67%, acc@5=60.67%]\n",
"[2024-07-14 14:30:01] Time Left: [05:50:37] epoch=090/200 :: Train [loss=2.42814, acc@1=38.19%, acc@5=68.51%] Valid [loss=2.63298, acc@1=34.53%, acc@5=65.50%]\n",
"[2024-07-14 14:33:14] Time Left: [05:47:23] epoch=091/200 :: Train [loss=2.41747, acc@1=38.33%, acc@5=68.90%] Valid [loss=2.65730, acc@1=34.30%, acc@5=64.73%]\n",
"[2024-07-14 14:36:31] Time Left: [05:44:15] epoch=092/200 :: Train [loss=2.41899, acc@1=38.38%, acc@5=68.84%] Valid [loss=2.81271, acc@1=31.20%, acc@5=60.90%]\n",
"[2024-07-14 14:39:43] Time Left: [05:41:01] epoch=093/200 :: Train [loss=2.41283, acc@1=38.50%, acc@5=68.91%] Valid [loss=2.61460, acc@1=35.17%, acc@5=66.30%]\n",
"[2024-07-14 14:42:56] Time Left: [05:37:48] epoch=094/200 :: Train [loss=2.40530, acc@1=38.55%, acc@5=68.97%] Valid [loss=2.67307, acc@1=34.90%, acc@5=64.00%]\n",
"[2024-07-14 14:46:07] Time Left: [05:34:32] epoch=095/200 :: Train [loss=2.39750, acc@1=38.81%, acc@5=69.11%] Valid [loss=2.61701, acc@1=35.47%, acc@5=64.80%]\n",
"[2024-07-14 14:49:20] Time Left: [05:31:20] epoch=096/200 :: Train [loss=2.39305, acc@1=38.94%, acc@5=69.33%] Valid [loss=2.56566, acc@1=35.43%, acc@5=67.17%]\n",
"[2024-07-14 14:52:33] Time Left: [05:28:06] epoch=097/200 :: Train [loss=2.38372, acc@1=39.19%, acc@5=69.49%] Valid [loss=2.58429, acc@1=36.03%, acc@5=65.73%]\n",
"[2024-07-14 14:55:45] Time Left: [05:24:53] epoch=098/200 :: Train [loss=2.37878, acc@1=39.07%, acc@5=69.61%] Valid [loss=2.57998, acc@1=36.63%, acc@5=66.67%]\n",
"[2024-07-14 14:59:01] Time Left: [05:21:42] epoch=099/200 :: Train [loss=2.37128, acc@1=39.50%, acc@5=69.78%] Valid [loss=2.63300, acc@1=35.07%, acc@5=64.83%]\n",
"[2024-07-14 15:02:16] Time Left: [05:18:31] epoch=100/200 :: Train [loss=2.36421, acc@1=39.50%, acc@5=69.96%] Valid [loss=2.69479, acc@1=33.33%, acc@5=63.30%]\n",
"[2024-07-14 15:05:30] Time Left: [05:15:19] epoch=101/200 :: Train [loss=2.35274, acc@1=39.73%, acc@5=70.06%] Valid [loss=2.71931, acc@1=33.63%, acc@5=64.37%]\n",
"[2024-07-14 15:08:45] Time Left: [05:12:08] epoch=102/200 :: Train [loss=2.35321, acc@1=39.79%, acc@5=70.08%] Valid [loss=2.53413, acc@1=36.00%, acc@5=67.00%]\n",
"[2024-07-14 15:12:00] Time Left: [05:08:56] epoch=103/200 :: Train [loss=2.34292, acc@1=39.95%, acc@5=70.28%] Valid [loss=2.54221, acc@1=37.20%, acc@5=66.93%]\n",
"[2024-07-14 15:15:11] Time Left: [05:05:42] epoch=104/200 :: Train [loss=2.33621, acc@1=40.14%, acc@5=70.38%] Valid [loss=2.61437, acc@1=35.73%, acc@5=65.77%]\n",
"[2024-07-14 15:18:21] Time Left: [05:02:26] epoch=105/200 :: Train [loss=2.32650, acc@1=40.43%, acc@5=70.50%] Valid [loss=2.55316, acc@1=35.43%, acc@5=66.43%]\n",
"[2024-07-14 15:21:32] Time Left: [04:59:11] epoch=106/200 :: Train [loss=2.31928, acc@1=40.46%, acc@5=70.74%] Valid [loss=2.50394, acc@1=37.23%, acc@5=67.90%]\n",
"[2024-07-14 15:24:46] Time Left: [04:55:59] epoch=107/200 :: Train [loss=2.30926, acc@1=40.81%, acc@5=70.93%] Valid [loss=2.45443, acc@1=37.27%, acc@5=67.97%]\n",
"[2024-07-14 15:27:57] Time Left: [04:52:44] epoch=108/200 :: Train [loss=2.31019, acc@1=40.82%, acc@5=70.98%] Valid [loss=2.45012, acc@1=37.77%, acc@5=68.53%]\n",
"[2024-07-14 15:31:08] Time Left: [04:49:29] epoch=109/200 :: Train [loss=2.30124, acc@1=40.84%, acc@5=71.22%] Valid [loss=2.55260, acc@1=36.60%, acc@5=67.63%]\n",
"[2024-07-14 15:34:18] Time Left: [04:46:14] epoch=110/200 :: Train [loss=2.29077, acc@1=41.09%, acc@5=71.24%] Valid [loss=2.52345, acc@1=36.70%, acc@5=68.17%]\n",
"[2024-07-14 15:37:32] Time Left: [04:43:02] epoch=111/200 :: Train [loss=2.28391, acc@1=41.28%, acc@5=71.52%] Valid [loss=2.49109, acc@1=37.67%, acc@5=68.20%]\n",
"[2024-07-14 15:40:43] Time Left: [04:39:47] epoch=112/200 :: Train [loss=2.27129, acc@1=41.65%, acc@5=71.62%] Valid [loss=2.46597, acc@1=38.13%, acc@5=67.90%]\n",
"[2024-07-14 15:43:53] Time Left: [04:36:32] epoch=113/200 :: Train [loss=2.26555, acc@1=41.72%, acc@5=71.84%] Valid [loss=2.45481, acc@1=36.90%, acc@5=68.60%]\n",
"[2024-07-14 15:47:03] Time Left: [04:33:17] epoch=114/200 :: Train [loss=2.25533, acc@1=41.92%, acc@5=72.03%] Valid [loss=2.50246, acc@1=37.80%, acc@5=67.57%]\n",
"[2024-07-14 15:50:19] Time Left: [04:30:06] epoch=115/200 :: Train [loss=2.24999, acc@1=42.16%, acc@5=72.13%] Valid [loss=2.49322, acc@1=37.80%, acc@5=68.73%]\n",
"[2024-07-14 15:53:29] Time Left: [04:26:51] epoch=116/200 :: Train [loss=2.23637, acc@1=42.29%, acc@5=72.31%] Valid [loss=2.47767, acc@1=37.13%, acc@5=68.43%]\n",
"[2024-07-14 15:56:39] Time Left: [04:23:37] epoch=117/200 :: Train [loss=2.23240, acc@1=42.26%, acc@5=72.51%] Valid [loss=2.47547, acc@1=37.87%, acc@5=67.90%]\n",
"[2024-07-14 15:59:54] Time Left: [04:20:25] epoch=118/200 :: Train [loss=2.22338, acc@1=42.67%, acc@5=72.67%] Valid [loss=2.42419, acc@1=38.13%, acc@5=69.30%]\n",
"[2024-07-14 16:03:03] Time Left: [04:17:10] epoch=119/200 :: Train [loss=2.21121, acc@1=42.84%, acc@5=72.84%] Valid [loss=2.40248, acc@1=39.27%, acc@5=70.13%]\n",
"[2024-07-14 16:06:18] Time Left: [04:13:58] epoch=120/200 :: Train [loss=2.20485, acc@1=43.01%, acc@5=72.89%] Valid [loss=2.52671, acc@1=35.93%, acc@5=67.43%]\n",
"[2024-07-14 16:09:35] Time Left: [04:10:47] epoch=121/200 :: Train [loss=2.19751, acc@1=43.40%, acc@5=73.05%] Valid [loss=2.39946, acc@1=39.43%, acc@5=69.03%]\n",
"[2024-07-14 16:12:45] Time Left: [04:07:33] epoch=122/200 :: Train [loss=2.18159, acc@1=43.43%, acc@5=73.43%] Valid [loss=2.43346, acc@1=39.87%, acc@5=68.53%]\n",
"[2024-07-14 16:15:57] Time Left: [04:04:19] epoch=123/200 :: Train [loss=2.17665, acc@1=43.70%, acc@5=73.63%] Valid [loss=2.50454, acc@1=36.63%, acc@5=68.57%]\n",
"[2024-07-14 16:19:12] Time Left: [04:01:08] epoch=124/200 :: Train [loss=2.16430, acc@1=44.01%, acc@5=73.77%] Valid [loss=2.40168, acc@1=39.47%, acc@5=69.47%]\n",
"[2024-07-14 16:22:23] Time Left: [03:57:54] epoch=125/200 :: Train [loss=2.15620, acc@1=44.12%, acc@5=73.97%] Valid [loss=2.39609, acc@1=40.13%, acc@5=69.50%]\n",
"[2024-07-14 16:25:35] Time Left: [03:54:40] epoch=126/200 :: Train [loss=2.14495, acc@1=44.27%, acc@5=74.13%] Valid [loss=2.32766, acc@1=41.33%, acc@5=70.63%]\n",
"[2024-07-14 16:28:44] Time Left: [03:51:26] epoch=127/200 :: Train [loss=2.13831, acc@1=44.48%, acc@5=74.31%] Valid [loss=2.46738, acc@1=38.57%, acc@5=68.80%]\n",
"[2024-07-14 16:31:58] Time Left: [03:48:13] epoch=128/200 :: Train [loss=2.12418, acc@1=44.90%, acc@5=74.51%] Valid [loss=2.54099, acc@1=36.80%, acc@5=66.30%]\n",
"[2024-07-14 16:35:11] Time Left: [03:45:00] epoch=129/200 :: Train [loss=2.11680, acc@1=45.06%, acc@5=74.71%] Valid [loss=2.38393, acc@1=39.70%, acc@5=69.93%]\n",
"[2024-07-14 16:38:22] Time Left: [03:41:46] epoch=130/200 :: Train [loss=2.10449, acc@1=45.22%, acc@5=74.90%] Valid [loss=2.46699, acc@1=38.67%, acc@5=68.97%]\n",
"[2024-07-14 16:41:38] Time Left: [03:38:35] epoch=131/200 :: Train [loss=2.09472, acc@1=45.36%, acc@5=75.10%] Valid [loss=2.34793, acc@1=41.13%, acc@5=71.50%]\n",
"[2024-07-14 16:44:49] Time Left: [03:35:21] epoch=132/200 :: Train [loss=2.08203, acc@1=45.68%, acc@5=75.37%] Valid [loss=2.32728, acc@1=40.23%, acc@5=71.33%]\n",
"[2024-07-14 16:48:01] Time Left: [03:32:08] epoch=133/200 :: Train [loss=2.07315, acc@1=45.83%, acc@5=75.49%] Valid [loss=2.39968, acc@1=39.20%, acc@5=70.40%]\n",
"[2024-07-14 16:51:12] Time Left: [03:28:54] epoch=134/200 :: Train [loss=2.06417, acc@1=46.10%, acc@5=75.63%] Valid [loss=2.32526, acc@1=40.27%, acc@5=71.47%]\n",
"[2024-07-14 16:54:26] Time Left: [03:25:42] epoch=135/200 :: Train [loss=2.05273, acc@1=46.40%, acc@5=75.78%] Valid [loss=2.33863, acc@1=41.27%, acc@5=71.57%]\n",
"[2024-07-14 16:57:38] Time Left: [03:22:29] epoch=136/200 :: Train [loss=2.04417, acc@1=46.62%, acc@5=76.13%] Valid [loss=2.39093, acc@1=40.17%, acc@5=70.67%]\n",
"[2024-07-14 17:00:51] Time Left: [03:19:16] epoch=137/200 :: Train [loss=2.02448, acc@1=47.07%, acc@5=76.42%] Valid [loss=2.35638, acc@1=41.93%, acc@5=70.23%]\n",
"[2024-07-14 17:04:06] Time Left: [03:16:04] epoch=138/200 :: Train [loss=2.01934, acc@1=47.30%, acc@5=76.47%] Valid [loss=2.30023, acc@1=43.17%, acc@5=71.27%]\n",
"[2024-07-14 17:07:17] Time Left: [03:12:51] epoch=139/200 :: Train [loss=2.00495, acc@1=47.59%, acc@5=76.69%] Valid [loss=2.41522, acc@1=40.23%, acc@5=70.17%]\n",
"[2024-07-14 17:10:27] Time Left: [03:09:36] epoch=140/200 :: Train [loss=1.99598, acc@1=47.82%, acc@5=76.94%] Valid [loss=2.36401, acc@1=40.67%, acc@5=70.57%]\n",
"[2024-07-14 17:13:39] Time Left: [03:06:23] epoch=141/200 :: Train [loss=1.97730, acc@1=48.17%, acc@5=77.17%] Valid [loss=2.31089, acc@1=42.73%, acc@5=72.23%]\n",
"[2024-07-14 17:16:53] Time Left: [03:03:11] epoch=142/200 :: Train [loss=1.97243, acc@1=48.18%, acc@5=77.39%] Valid [loss=2.34124, acc@1=42.17%, acc@5=71.13%]\n",
"[2024-07-14 17:20:05] Time Left: [02:59:58] epoch=143/200 :: Train [loss=1.95970, acc@1=48.61%, acc@5=77.43%] Valid [loss=2.24685, acc@1=42.50%, acc@5=73.63%]\n",
"[2024-07-14 17:23:17] Time Left: [02:56:45] epoch=144/200 :: Train [loss=1.94348, acc@1=48.86%, acc@5=77.81%] Valid [loss=2.36640, acc@1=41.07%, acc@5=70.87%]\n",
"[2024-07-14 17:26:27] Time Left: [02:53:31] epoch=145/200 :: Train [loss=1.92925, acc@1=49.19%, acc@5=78.10%] Valid [loss=2.29464, acc@1=42.60%, acc@5=72.37%]\n",
"[2024-07-14 17:29:42] Time Left: [02:50:19] epoch=146/200 :: Train [loss=1.91605, acc@1=49.56%, acc@5=78.38%] Valid [loss=2.25011, acc@1=42.37%, acc@5=72.93%]\n",
"[2024-07-14 17:32:53] Time Left: [02:47:05] epoch=147/200 :: Train [loss=1.90348, acc@1=49.73%, acc@5=78.60%] Valid [loss=2.28938, acc@1=41.83%, acc@5=71.97%]\n",
"[2024-07-14 17:36:03] Time Left: [02:43:51] epoch=148/200 :: Train [loss=1.88922, acc@1=50.17%, acc@5=78.87%] Valid [loss=2.30719, acc@1=42.73%, acc@5=72.43%]\n",
"[2024-07-14 17:39:19] Time Left: [02:40:40] epoch=149/200 :: Train [loss=1.87351, acc@1=50.50%, acc@5=79.11%] Valid [loss=2.32948, acc@1=42.40%, acc@5=71.00%]\n",
"[2024-07-14 17:42:31] Time Left: [02:37:27] epoch=150/200 :: Train [loss=1.86130, acc@1=50.78%, acc@5=79.21%] Valid [loss=2.26549, acc@1=43.93%, acc@5=72.80%]\n",
"[2024-07-14 17:45:44] Time Left: [02:34:14] epoch=151/200 :: Train [loss=1.84386, acc@1=51.21%, acc@5=79.66%] Valid [loss=2.27440, acc@1=43.73%, acc@5=72.40%]\n",
"[2024-07-14 17:48:54] Time Left: [02:31:00] epoch=152/200 :: Train [loss=1.83021, acc@1=51.49%, acc@5=79.89%] Valid [loss=2.27726, acc@1=44.00%, acc@5=71.73%]\n",
"[2024-07-14 17:52:10] Time Left: [02:27:49] epoch=153/200 :: Train [loss=1.81357, acc@1=51.83%, acc@5=80.26%] Valid [loss=2.31887, acc@1=42.17%, acc@5=72.10%]\n",
"[2024-07-14 17:55:20] Time Left: [02:24:35] epoch=154/200 :: Train [loss=1.80267, acc@1=52.16%, acc@5=80.33%] Valid [loss=2.25099, acc@1=43.77%, acc@5=73.00%]\n",
"[2024-07-14 17:58:32] Time Left: [02:21:22] epoch=155/200 :: Train [loss=1.78364, acc@1=52.64%, acc@5=80.58%] Valid [loss=2.21434, acc@1=44.03%, acc@5=74.60%]\n",
"[2024-07-14 18:01:44] Time Left: [02:18:09] epoch=156/200 :: Train [loss=1.76916, acc@1=52.90%, acc@5=80.85%] Valid [loss=2.22232, acc@1=43.10%, acc@5=74.27%]\n",
"[2024-07-14 18:05:01] Time Left: [02:14:57] epoch=157/200 :: Train [loss=1.75418, acc@1=53.18%, acc@5=81.13%] Valid [loss=2.19880, acc@1=45.10%, acc@5=74.13%]\n",
"[2024-07-14 18:08:13] Time Left: [02:11:44] epoch=158/200 :: Train [loss=1.73935, acc@1=53.49%, acc@5=81.46%] Valid [loss=2.21597, acc@1=45.20%, acc@5=73.57%]\n",
"[2024-07-14 18:11:27] Time Left: [02:08:32] epoch=159/200 :: Train [loss=1.72221, acc@1=54.09%, acc@5=81.77%] Valid [loss=2.17839, acc@1=45.33%, acc@5=74.60%]\n",
"[2024-07-14 18:14:41] Time Left: [02:05:19] epoch=160/200 :: Train [loss=1.70347, acc@1=54.39%, acc@5=82.07%] Valid [loss=2.18097, acc@1=45.40%, acc@5=74.80%]\n",
"[2024-07-14 18:17:56] Time Left: [02:02:07] epoch=161/200 :: Train [loss=1.68340, acc@1=54.74%, acc@5=82.40%] Valid [loss=2.18297, acc@1=45.70%, acc@5=74.30%]\n",
"[2024-07-14 18:21:06] Time Left: [01:58:54] epoch=162/200 :: Train [loss=1.67315, acc@1=55.08%, acc@5=82.58%] Valid [loss=2.18296, acc@1=45.60%, acc@5=74.77%]\n",
"[2024-07-14 18:24:16] Time Left: [01:55:40] epoch=163/200 :: Train [loss=1.65167, acc@1=55.56%, acc@5=82.87%] Valid [loss=2.18968, acc@1=45.13%, acc@5=75.10%]\n",
"[2024-07-14 18:27:32] Time Left: [01:52:28] epoch=164/200 :: Train [loss=1.63315, acc@1=56.07%, acc@5=83.26%] Valid [loss=2.15206, acc@1=46.53%, acc@5=75.23%]\n",
"[2024-07-14 18:30:46] Time Left: [01:49:15] epoch=165/200 :: Train [loss=1.61145, acc@1=56.48%, acc@5=83.52%] Valid [loss=2.18563, acc@1=46.37%, acc@5=75.13%]\n",
"[2024-07-14 18:33:58] Time Left: [01:46:02] epoch=166/200 :: Train [loss=1.59503, acc@1=56.95%, acc@5=83.79%] Valid [loss=2.22128, acc@1=44.83%, acc@5=74.13%]\n",
"[2024-07-14 18:37:10] Time Left: [01:42:49] epoch=167/200 :: Train [loss=1.57683, acc@1=57.31%, acc@5=84.17%] Valid [loss=2.20919, acc@1=45.60%, acc@5=74.30%]\n",
"[2024-07-14 18:40:24] Time Left: [01:39:37] epoch=168/200 :: Train [loss=1.55447, acc@1=57.96%, acc@5=84.37%] Valid [loss=2.19470, acc@1=45.33%, acc@5=74.30%]\n",
"[2024-07-14 18:43:33] Time Left: [01:36:23] epoch=169/200 :: Train [loss=1.53313, acc@1=58.44%, acc@5=84.87%] Valid [loss=2.18670, acc@1=45.80%, acc@5=74.93%]\n",
"[2024-07-14 18:46:49] Time Left: [01:33:11] epoch=170/200 :: Train [loss=1.51649, acc@1=58.80%, acc@5=85.10%] Valid [loss=2.16541, acc@1=46.33%, acc@5=75.10%]\n",
"[2024-07-14 18:50:02] Time Left: [01:29:58] epoch=171/200 :: Train [loss=1.49760, acc@1=59.28%, acc@5=85.40%] Valid [loss=2.21085, acc@1=46.40%, acc@5=74.67%]\n",
"[2024-07-14 18:53:17] Time Left: [01:26:46] epoch=172/200 :: Train [loss=1.47053, acc@1=59.92%, acc@5=85.81%] Valid [loss=2.23710, acc@1=45.73%, acc@5=74.20%]\n",
"[2024-07-14 18:56:28] Time Left: [01:23:33] epoch=173/200 :: Train [loss=1.45311, acc@1=60.33%, acc@5=86.11%] Valid [loss=2.13852, acc@1=47.83%, acc@5=74.93%]\n",
"[2024-07-14 18:59:39] Time Left: [01:20:20] epoch=174/200 :: Train [loss=1.43110, acc@1=60.86%, acc@5=86.42%] Valid [loss=2.16645, acc@1=47.13%, acc@5=75.33%]\n",
"[2024-07-14 19:02:54] Time Left: [01:17:07] epoch=175/200 :: Train [loss=1.40976, acc@1=61.42%, acc@5=86.76%] Valid [loss=2.16164, acc@1=46.53%, acc@5=75.90%]\n",
"[2024-07-14 19:06:07] Time Left: [01:13:54] epoch=176/200 :: Train [loss=1.38628, acc@1=61.98%, acc@5=87.11%] Valid [loss=2.16259, acc@1=47.17%, acc@5=74.90%]\n",
"[2024-07-14 19:09:19] Time Left: [01:10:41] epoch=177/200 :: Train [loss=1.36547, acc@1=62.46%, acc@5=87.48%] Valid [loss=2.16320, acc@1=47.13%, acc@5=75.43%]\n",
"[2024-07-14 19:12:29] Time Left: [01:07:28] epoch=178/200 :: Train [loss=1.34250, acc@1=63.10%, acc@5=87.70%] Valid [loss=2.15864, acc@1=47.43%, acc@5=74.80%]\n",
"[2024-07-14 19:15:41] Time Left: [01:04:15] epoch=179/200 :: Train [loss=1.31613, acc@1=63.60%, acc@5=88.10%] Valid [loss=2.15845, acc@1=48.00%, acc@5=75.63%]\n",
"[2024-07-14 19:18:56] Time Left: [01:01:03] epoch=180/200 :: Train [loss=1.29878, acc@1=64.16%, acc@5=88.37%] Valid [loss=2.15617, acc@1=47.83%, acc@5=76.07%]\n",
"[2024-07-14 19:22:05] Time Left: [00:57:50] epoch=181/200 :: Train [loss=1.27547, acc@1=64.74%, acc@5=88.69%] Valid [loss=2.16371, acc@1=48.60%, acc@5=75.73%]\n",
"[2024-07-14 19:25:16] Time Left: [00:54:37] epoch=182/200 :: Train [loss=1.25005, acc@1=65.28%, acc@5=89.09%] Valid [loss=2.17958, acc@1=47.27%, acc@5=76.37%]\n",
"[2024-07-14 19:28:29] Time Left: [00:51:24] epoch=183/200 :: Train [loss=1.22836, acc@1=65.94%, acc@5=89.37%] Valid [loss=2.17190, acc@1=48.10%, acc@5=75.63%]\n",
"[2024-07-14 19:31:37] Time Left: [00:48:11] epoch=184/200 :: Train [loss=1.19932, acc@1=66.65%, acc@5=89.78%] Valid [loss=2.18763, acc@1=47.27%, acc@5=76.20%]\n",
"[2024-07-14 19:34:47] Time Left: [00:44:58] epoch=185/200 :: Train [loss=1.18551, acc@1=67.05%, acc@5=89.89%] Valid [loss=2.17966, acc@1=47.90%, acc@5=76.17%]\n",
"[2024-07-14 19:38:01] Time Left: [00:41:45] epoch=186/200 :: Train [loss=1.16463, acc@1=67.74%, acc@5=90.21%] Valid [loss=2.19493, acc@1=48.30%, acc@5=75.93%]\n",
"[2024-07-14 19:41:12] Time Left: [00:38:32] epoch=187/200 :: Train [loss=1.14509, acc@1=68.01%, acc@5=90.53%] Valid [loss=2.17460, acc@1=48.30%, acc@5=76.10%]\n",
"[2024-07-14 19:44:25] Time Left: [00:35:20] epoch=188/200 :: Train [loss=1.12447, acc@1=68.60%, acc@5=90.78%] Valid [loss=2.19610, acc@1=48.07%, acc@5=75.27%]\n",
"[2024-07-14 19:47:36] Time Left: [00:32:07] epoch=189/200 :: Train [loss=1.10688, acc@1=68.96%, acc@5=91.01%] Valid [loss=2.19098, acc@1=48.10%, acc@5=76.00%]\n",
"[2024-07-14 19:50:49] Time Left: [00:28:54] epoch=190/200 :: Train [loss=1.08774, acc@1=69.50%, acc@5=91.19%] Valid [loss=2.19103, acc@1=48.63%, acc@5=75.30%]\n",
"[2024-07-14 19:54:00] Time Left: [00:25:41] epoch=191/200 :: Train [loss=1.07754, acc@1=69.76%, acc@5=91.32%] Valid [loss=2.19941, acc@1=48.73%, acc@5=75.37%]\n",
"[2024-07-14 19:57:13] Time Left: [00:22:29] epoch=192/200 :: Train [loss=1.06746, acc@1=70.00%, acc@5=91.47%] Valid [loss=2.20566, acc@1=48.07%, acc@5=75.27%]\n",
"[2024-07-14 20:00:25] Time Left: [00:19:16] epoch=193/200 :: Train [loss=1.05185, acc@1=70.64%, acc@5=91.68%] Valid [loss=2.19448, acc@1=48.53%, acc@5=75.77%]\n",
"[2024-07-14 20:03:40] Time Left: [00:16:03] epoch=194/200 :: Train [loss=1.04482, acc@1=70.72%, acc@5=91.82%] Valid [loss=2.19453, acc@1=48.47%, acc@5=75.90%]\n",
"[2024-07-14 20:06:50] Time Left: [00:12:50] epoch=195/200 :: Train [loss=1.03323, acc@1=71.07%, acc@5=91.87%] Valid [loss=2.21343, acc@1=48.93%, acc@5=75.57%]\n",
"[2024-07-14 20:10:00] Time Left: [00:09:38] epoch=196/200 :: Train [loss=1.02702, acc@1=71.28%, acc@5=92.04%] Valid [loss=2.19881, acc@1=48.83%, acc@5=75.53%]\n",
"[2024-07-14 20:13:17] Time Left: [00:06:25] epoch=197/200 :: Train [loss=1.02482, acc@1=71.35%, acc@5=92.02%] Valid [loss=2.19822, acc@1=48.60%, acc@5=75.87%]\n",
"[2024-07-14 20:16:28] Time Left: [00:03:12] epoch=198/200 :: Train [loss=1.02277, acc@1=71.37%, acc@5=92.13%] Valid [loss=2.20492, acc@1=48.43%, acc@5=75.53%]\n",
"[2024-07-14 20:19:41] Time Left: [00:00:00] epoch=199/200 :: Train [loss=1.02009, acc@1=71.40%, acc@5=92.15%] Valid [loss=2.19984, acc@1=48.60%, acc@5=75.33%]\n",
"Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to /cifar-10-python.tar.gz\n",
"Failed download. Trying https -> http instead. Downloading http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to /cifar-10-python.tar.gz\n"
]
},
{
"ename": "PermissionError",
"evalue": "[Errno 13] Permission denied: '/cifar-10-python.tar.gz'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mPermissionError\u001b[0m Traceback (most recent call last)",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:141\u001b[0m, in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDownloading \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m url \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m to \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m fpath)\n\u001b[0;32m--> 141\u001b[0m \u001b[43m_urlretrieve\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (urllib\u001b[38;5;241m.\u001b[39merror\u001b[38;5;241m.\u001b[39mURLError, \u001b[38;5;167;01mOSError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# type: ignore[attr-defined]\u001b[39;00m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:32\u001b[0m, in \u001b[0;36m_urlretrieve\u001b[0;34m(url, filename, chunk_size)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_urlretrieve\u001b[39m(url: \u001b[38;5;28mstr\u001b[39m, filename: \u001b[38;5;28mstr\u001b[39m, chunk_size: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1024\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m fh:\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39murlopen(urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39mRequest(url, headers\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUser-Agent\u001b[39m\u001b[38;5;124m\"\u001b[39m: USER_AGENT})) \u001b[38;5;28;01mas\u001b[39;00m response:\n",
"\u001b[0;31mPermissionError\u001b[0m: [Errno 13] Permission denied: '/cifar-10-python.tar.gz'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mPermissionError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[13], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mtrain_single_model\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_dir\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m./outputs\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mworkers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mdatasets\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mImageNet16-120\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcifar10\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcifar100\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mxpaths\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m./datasets/imagenet16-120\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43msplits\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_less\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mseeds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m777\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel_str\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# model_str=\"5374\",\u001b[39;49;00m\n\u001b[1;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43march_config\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mchannel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m16\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnum_cells\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\n",
"Cell \u001b[0;32mIn[11], line 63\u001b[0m, in \u001b[0;36mtrain_single_model\u001b[0;34m(save_dir, workers, datasets, xpaths, splits, use_less, seeds, model_str, arch_config)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 58\u001b[0m logger\u001b[38;5;241m.\u001b[39mlog(\n\u001b[1;32m 59\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDoes not find the existing file \u001b[39m\u001b[38;5;132;01m{:}\u001b[39;00m\u001b[38;5;124m, train and evaluate!\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 60\u001b[0m to_save_name\n\u001b[1;32m 61\u001b[0m )\n\u001b[1;32m 62\u001b[0m )\n\u001b[0;32m---> 63\u001b[0m checkpoint \u001b[38;5;241m=\u001b[39m \u001b[43mevaluate_all_datasets\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 64\u001b[0m \u001b[43m \u001b[49m\u001b[43march\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 65\u001b[0m \u001b[43m \u001b[49m\u001b[43mdatasets\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 66\u001b[0m \u001b[43m \u001b[49m\u001b[43mxpaths\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[43m \u001b[49m\u001b[43msplits\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_less\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 69\u001b[0m \u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43march_config\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43mworkers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[43m \u001b[49m\u001b[43mlogger\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 73\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 74\u001b[0m torch\u001b[38;5;241m.\u001b[39msave(checkpoint, to_save_name)\n\u001b[1;32m 75\u001b[0m \u001b[38;5;66;03m# log information\u001b[39;00m\n",
"Cell \u001b[0;32mIn[7], line 10\u001b[0m, in \u001b[0;36mevaluate_all_datasets\u001b[0;34m(arch, datasets, xpaths, splits, use_less, seed, arch_config, workers, logger)\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# look all the datasets\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset, xpath, split \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(datasets, xpaths, splits):\n\u001b[1;32m 9\u001b[0m \u001b[38;5;66;03m# train valid data\u001b[39;00m\n\u001b[0;32m---> 10\u001b[0m train_data, valid_data, xshape, class_num \u001b[38;5;241m=\u001b[39m \u001b[43mget_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# load the configuration\u001b[39;00m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dataset \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar10\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m dataset \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar100\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
"File \u001b[0;32m~/autodl-projects/xautodl/datasets/get_dataset_with_transform.py:195\u001b[0m, in \u001b[0;36mget_datasets\u001b[0;34m(name, root, cutout)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnknow dataset : \u001b[39m\u001b[38;5;132;01m{:}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(name))\n\u001b[1;32m 194\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar10\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m--> 195\u001b[0m train_data \u001b[38;5;241m=\u001b[39m \u001b[43mdset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCIFAR10\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 196\u001b[0m \u001b[43m \u001b[49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtransform\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtrain_transform\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdownload\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[1;32m 197\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 198\u001b[0m test_data \u001b[38;5;241m=\u001b[39m dset\u001b[38;5;241m.\u001b[39mCIFAR10(\n\u001b[1;32m 199\u001b[0m root, train\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, transform\u001b[38;5;241m=\u001b[39mtest_transform, download\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 200\u001b[0m )\n\u001b[1;32m 201\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(train_data) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m50000\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(test_data) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m10000\u001b[39m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/cifar.py:65\u001b[0m, in \u001b[0;36mCIFAR10.__init__\u001b[0;34m(self, root, train, transform, target_transform, download)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain \u001b[38;5;241m=\u001b[39m train \u001b[38;5;66;03m# training set or test set\u001b[39;00m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m download:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdownload\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_integrity():\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDataset not found or corrupted. You can use download=True to download it\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/cifar.py:141\u001b[0m, in \u001b[0;36mCIFAR10.download\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFiles already downloaded and verified\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m--> 141\u001b[0m \u001b[43mdownload_and_extract_archive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmd5\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtgz_md5\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:430\u001b[0m, in \u001b[0;36mdownload_and_extract_archive\u001b[0;34m(url, download_root, extract_root, filename, md5, remove_finished)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m filename:\n\u001b[1;32m 428\u001b[0m filename \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mbasename(url)\n\u001b[0;32m--> 430\u001b[0m \u001b[43mdownload_url\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdownload_root\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmd5\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 432\u001b[0m archive \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(download_root, filename)\n\u001b[1;32m 433\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExtracting \u001b[39m\u001b[38;5;132;01m{\u001b[39;00marchive\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m to \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mextract_root\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:146\u001b[0m, in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 144\u001b[0m url \u001b[38;5;241m=\u001b[39m url\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps:\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttp:\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed download. Trying https -> http instead. Downloading \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m url \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m to \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m fpath)\n\u001b[0;32m--> 146\u001b[0m \u001b[43m_urlretrieve\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:32\u001b[0m, in \u001b[0;36m_urlretrieve\u001b[0;34m(url, filename, chunk_size)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_urlretrieve\u001b[39m(url: \u001b[38;5;28mstr\u001b[39m, filename: \u001b[38;5;28mstr\u001b[39m, chunk_size: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1024\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m fh:\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39murlopen(urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39mRequest(url, headers\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUser-Agent\u001b[39m\u001b[38;5;124m\"\u001b[39m: USER_AGENT})) \u001b[38;5;28;01mas\u001b[39;00m response:\n\u001b[1;32m 34\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m tqdm(total\u001b[38;5;241m=\u001b[39mresponse\u001b[38;5;241m.\u001b[39mlength) \u001b[38;5;28;01mas\u001b[39;00m pbar:\n",
"\u001b[0;31mPermissionError\u001b[0m: [Errno 13] Permission denied: '/cifar-10-python.tar.gz'"
]
}
],
"source": [
"train_single_model(\n",
" save_dir=\"./outputs\",\n",
" workers=8,\n",
" datasets=[\"ImageNet16-120\",\"cifar10\",\"cifar100\"], \n",
" xpaths=\"./datasets/imagenet16-120\",\n",
" splits=[0, 0, 0],\n",
" use_less=False,\n",
" seeds=[777],\n",
" model_str=\"nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|\",\n",
" # model_str=\"5374\",\n",
" arch_config={\"channel\": 16, \"num_cells\": 8},)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'resnet': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_3x3~1|+|skip_connect~0|skip_connect~2|), 'all_c3x3': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|nor_conv_3x3~0|nor_conv_3x3~1|nor_conv_3x3~2|), 'all_c1x1': Structure(4 nodes with |nor_conv_1x1~0|+|nor_conv_1x1~0|nor_conv_1x1~1|+|nor_conv_1x1~0|nor_conv_1x1~1|nor_conv_1x1~2|), 'all_idnt': Structure(4 nodes with |skip_connect~0|+|skip_connect~0|skip_connect~1|+|skip_connect~0|skip_connect~1|skip_connect~2|), 'all_full': Structure(4 nodes with |skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|+|skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|skip_connect~1|nor_conv_1x1~1|nor_conv_3x3~1|avg_pool_3x3~1|+|skip_connect~0|nor_conv_1x1~0|nor_conv_3x3~0|avg_pool_3x3~0|skip_connect~1|nor_conv_1x1~1|nor_conv_3x3~1|avg_pool_3x3~1|skip_connect~2|nor_conv_1x1~2|nor_conv_3x3~2|avg_pool_3x3~2|), '5374': Structure(4 nodes with |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|)}\n",
"Start train-evaluate |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
"arch_config : {'channel': 16, 'num_cells': 8}\n",
"\n",
"The 00/01-th seed is 777 ----------------------<.>----------------------\n",
"Does not find the existing file outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|-16-8/seed-0777.pth, train and evaluate!\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"configs/nas-benchmark/ImageNet-16.config\n",
"Configure(scheduler='cos', eta_min=0.0, epochs=200, warmup=0, optim='SGD', LR=0.1, decay=0.0005, momentum=0.9, nesterov=True, criterion='Softmax', batch_size=256, class_num=120, xshape=(1, 3, 16, 16))\n",
"Evaluate ||||||| ImageNet16-120 ||||||| Train-Num=151700, Valid-Num=6000, Train-Loader-Num=593, Valid-Loader-Num=24, batch size=256\n",
"Evaluate ||||||| ImageNet16-120 ||||||| Config=Configure(scheduler='cos', eta_min=0.0, epochs=200, warmup=0, optim='SGD', LR=0.1, decay=0.0005, momentum=0.9, nesterov=True, criterion='Softmax', batch_size=256, class_num=120, xshape=(1, 3, 16, 16))\n",
"Evaluate ---->>>> ori-test with 24 batchs\n",
"Evaluate ---->>>> x-valid with 12 batchs\n",
"Evaluate ---->>>> x-test with 12 batchs\n",
"Network : TinyNetwork(C=16, N=8, L=26)\n",
" 00/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 01/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 02/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 03/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 04/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 05/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 06/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 07/26 :: info :: nodes=4, inC=16, outC=16, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 08/26 :: ResNetBasicblock(inC=16, outC=32, stride=2)\n",
" 09/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 10/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 11/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 12/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 13/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 14/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 15/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 16/26 :: info :: nodes=4, inC=32, outC=32, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 17/26 :: ResNetBasicblock(inC=32, outC=64, stride=2)\n",
" 18/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 19/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 20/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 21/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 22/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 23/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 24/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
" 25/26 :: info :: nodes=4, inC=64, outC=64, [1<-(I0-L0) | 2<-(I0-L1,I1-L2) | 3<-(I0-L3,I1-L4,I2-L5)], |nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\n",
"[2024-07-14 22:23:19] Seed-------------------------- 777 --------------------------\n",
"FLOP = 45.993592 MB, Param = 1.291848 MB\n",
"[2024-07-14 22:26:34] Time Left: [10:45:47] epoch=000/200 :: Train [loss=4.23311, acc@1=6.29%, acc@5=21.67%] Valid [loss=4.00422, acc@1=9.03%, acc@5=29.23%]\n",
"[2024-07-14 22:29:53] Time Left: [10:49:58] epoch=001/200 :: Train [loss=3.72933, acc@1=12.84%, acc@5=36.58%] Valid [loss=3.74664, acc@1=12.00%, acc@5=36.73%]\n",
"[2024-07-14 22:33:06] Time Left: [10:42:04] epoch=002/200 :: Train [loss=3.52137, acc@1=16.27%, acc@5=42.45%] Valid [loss=3.54680, acc@1=16.07%, acc@5=42.20%]\n",
"[2024-07-14 22:36:18] Time Left: [10:35:48] epoch=003/200 :: Train [loss=3.38977, acc@1=18.63%, acc@5=46.02%] Valid [loss=3.75880, acc@1=14.87%, acc@5=38.63%]\n",
"[2024-07-14 22:39:31] Time Left: [10:31:11] epoch=004/200 :: Train [loss=3.29530, acc@1=20.57%, acc@5=48.56%] Valid [loss=3.47838, acc@1=17.10%, acc@5=44.27%]\n",
"[2024-07-14 22:42:44] Time Left: [10:27:37] epoch=005/200 :: Train [loss=3.22277, acc@1=21.90%, acc@5=50.55%] Valid [loss=3.40855, acc@1=18.03%, acc@5=45.70%]\n",
"[2024-07-14 22:45:57] Time Left: [10:23:51] epoch=006/200 :: Train [loss=3.16136, acc@1=23.17%, acc@5=52.20%] Valid [loss=3.54734, acc@1=18.87%, acc@5=45.90%]\n",
"[2024-07-14 22:49:11] Time Left: [10:20:28] epoch=007/200 :: Train [loss=3.11326, acc@1=24.08%, acc@5=53.21%] Valid [loss=3.25368, acc@1=22.30%, acc@5=50.80%]\n",
"[2024-07-14 22:52:26] Time Left: [10:17:38] epoch=008/200 :: Train [loss=3.07316, acc@1=24.76%, acc@5=54.30%] Valid [loss=3.22986, acc@1=23.43%, acc@5=51.67%]\n",
"[2024-07-14 22:55:41] Time Left: [10:14:43] epoch=009/200 :: Train [loss=3.03093, acc@1=25.53%, acc@5=55.35%] Valid [loss=3.24131, acc@1=23.03%, acc@5=51.67%]\n",
"[2024-07-14 22:58:54] Time Left: [10:11:08] epoch=010/200 :: Train [loss=3.00529, acc@1=26.14%, acc@5=55.86%] Valid [loss=3.16297, acc@1=24.63%, acc@5=53.60%]\n",
"[2024-07-14 23:02:07] Time Left: [10:07:45] epoch=011/200 :: Train [loss=2.97668, acc@1=26.70%, acc@5=56.58%] Valid [loss=3.30147, acc@1=22.60%, acc@5=50.60%]\n",
"[2024-07-14 23:05:19] Time Left: [10:04:00] epoch=012/200 :: Train [loss=2.95602, acc@1=27.12%, acc@5=57.16%] Valid [loss=3.06641, acc@1=26.47%, acc@5=55.30%]\n",
"[2024-07-14 23:08:30] Time Left: [10:00:13] epoch=013/200 :: Train [loss=2.93384, acc@1=27.64%, acc@5=57.57%] Valid [loss=3.06008, acc@1=25.47%, acc@5=55.20%]\n",
"[2024-07-14 23:11:42] Time Left: [09:56:38] epoch=014/200 :: Train [loss=2.92164, acc@1=27.87%, acc@5=57.93%] Valid [loss=3.19869, acc@1=23.93%, acc@5=53.30%]\n",
"[2024-07-14 23:14:55] Time Left: [09:53:20] epoch=015/200 :: Train [loss=2.90677, acc@1=28.25%, acc@5=58.32%] Valid [loss=3.01125, acc@1=27.17%, acc@5=56.87%]\n",
"[2024-07-14 23:18:07] Time Left: [09:49:47] epoch=016/200 :: Train [loss=2.89266, acc@1=28.38%, acc@5=58.51%] Valid [loss=3.10013, acc@1=25.73%, acc@5=55.33%]\n",
"[2024-07-14 23:21:21] Time Left: [09:46:39] epoch=017/200 :: Train [loss=2.88125, acc@1=28.61%, acc@5=58.74%] Valid [loss=3.15580, acc@1=24.73%, acc@5=53.70%]\n",
"[2024-07-14 23:24:33] Time Left: [09:43:17] epoch=018/200 :: Train [loss=2.87009, acc@1=28.93%, acc@5=59.01%] Valid [loss=3.22928, acc@1=23.57%, acc@5=52.80%]\n",
"[2024-07-14 23:27:49] Time Left: [09:40:27] epoch=019/200 :: Train [loss=2.86185, acc@1=28.96%, acc@5=59.27%] Valid [loss=2.98064, acc@1=26.73%, acc@5=57.10%]\n",
"[2024-07-14 23:31:03] Time Left: [09:37:20] epoch=020/200 :: Train [loss=2.85327, acc@1=29.28%, acc@5=59.43%] Valid [loss=3.04742, acc@1=25.50%, acc@5=55.53%]\n",
"[2024-07-14 23:34:15] Time Left: [09:33:53] epoch=021/200 :: Train [loss=2.84595, acc@1=29.40%, acc@5=59.63%] Valid [loss=3.12124, acc@1=25.03%, acc@5=54.90%]\n",
"[2024-07-14 23:37:26] Time Left: [09:30:21] epoch=022/200 :: Train [loss=2.83837, acc@1=29.60%, acc@5=59.85%] Valid [loss=3.03083, acc@1=26.37%, acc@5=57.07%]\n",
"[2024-07-14 23:40:36] Time Left: [09:26:37] epoch=023/200 :: Train [loss=2.82937, acc@1=29.86%, acc@5=59.96%] Valid [loss=2.94529, acc@1=27.73%, acc@5=58.27%]\n",
"[2024-07-14 23:43:46] Time Left: [09:23:08] epoch=024/200 :: Train [loss=2.82324, acc@1=29.90%, acc@5=60.07%] Valid [loss=3.01254, acc@1=26.83%, acc@5=57.07%]\n",
"[2024-07-14 23:46:58] Time Left: [09:19:43] epoch=025/200 :: Train [loss=2.81619, acc@1=30.07%, acc@5=60.29%] Valid [loss=2.98096, acc@1=27.03%, acc@5=57.63%]\n",
"[2024-07-14 23:50:09] Time Left: [09:16:21] epoch=026/200 :: Train [loss=2.81089, acc@1=30.20%, acc@5=60.33%] Valid [loss=2.99460, acc@1=26.30%, acc@5=57.33%]\n",
"[2024-07-14 23:53:19] Time Left: [09:12:49] epoch=027/200 :: Train [loss=2.80178, acc@1=30.28%, acc@5=60.74%] Valid [loss=3.12726, acc@1=24.87%, acc@5=54.17%]\n",
"[2024-07-14 23:56:35] Time Left: [09:09:51] epoch=028/200 :: Train [loss=2.79881, acc@1=30.45%, acc@5=60.66%] Valid [loss=3.00443, acc@1=26.93%, acc@5=57.27%]\n",
"[2024-07-14 23:59:48] Time Left: [09:06:39] epoch=029/200 :: Train [loss=2.79093, acc@1=30.45%, acc@5=60.87%] Valid [loss=2.96933, acc@1=28.03%, acc@5=58.67%]\n",
"[2024-07-15 00:03:00] Time Left: [09:03:25] epoch=030/200 :: Train [loss=2.78731, acc@1=30.73%, acc@5=60.91%] Valid [loss=3.01551, acc@1=27.47%, acc@5=56.07%]\n",
"[2024-07-15 00:06:13] Time Left: [09:00:10] epoch=031/200 :: Train [loss=2.78043, acc@1=30.87%, acc@5=61.23%] Valid [loss=3.15409, acc@1=25.27%, acc@5=55.10%]\n",
"[2024-07-15 00:09:24] Time Left: [08:56:46] epoch=032/200 :: Train [loss=2.77782, acc@1=30.88%, acc@5=61.15%] Valid [loss=2.90188, acc@1=28.80%, acc@5=60.20%]\n",
"[2024-07-15 00:12:31] Time Left: [08:53:05] epoch=033/200 :: Train [loss=2.76822, acc@1=30.91%, acc@5=61.39%] Valid [loss=2.99673, acc@1=27.90%, acc@5=57.60%]\n",
"[2024-07-15 00:15:35] Time Left: [08:49:14] epoch=034/200 :: Train [loss=2.76982, acc@1=31.09%, acc@5=61.38%] Valid [loss=2.92133, acc@1=28.43%, acc@5=58.77%]\n",
"[2024-07-15 00:18:43] Time Left: [08:45:42] epoch=035/200 :: Train [loss=2.76469, acc@1=31.08%, acc@5=61.38%] Valid [loss=2.83279, acc@1=29.30%, acc@5=60.30%]\n",
"[2024-07-15 00:21:49] Time Left: [08:41:58] epoch=036/200 :: Train [loss=2.75740, acc@1=31.24%, acc@5=61.47%] Valid [loss=2.88520, acc@1=28.63%, acc@5=59.40%]\n",
"[2024-07-15 00:24:57] Time Left: [08:38:28] epoch=037/200 :: Train [loss=2.75272, acc@1=31.51%, acc@5=61.65%] Valid [loss=2.90761, acc@1=29.53%, acc@5=59.37%]\n",
"[2024-07-15 00:28:00] Time Left: [08:34:38] epoch=038/200 :: Train [loss=2.75261, acc@1=31.33%, acc@5=61.68%] Valid [loss=3.12807, acc@1=26.70%, acc@5=56.07%]\n",
"[2024-07-15 00:31:05] Time Left: [08:31:02] epoch=039/200 :: Train [loss=2.74430, acc@1=31.39%, acc@5=61.92%] Valid [loss=2.83818, acc@1=31.20%, acc@5=60.97%]\n",
"[2024-07-15 00:34:12] Time Left: [08:27:30] epoch=040/200 :: Train [loss=2.74178, acc@1=31.64%, acc@5=61.83%] Valid [loss=2.92653, acc@1=27.43%, acc@5=58.57%]\n",
"[2024-07-15 00:37:21] Time Left: [08:24:10] epoch=041/200 :: Train [loss=2.73913, acc@1=31.65%, acc@5=61.95%] Valid [loss=2.96233, acc@1=28.50%, acc@5=58.30%]\n",
"[2024-07-15 00:40:28] Time Left: [08:20:44] epoch=042/200 :: Train [loss=2.73437, acc@1=31.72%, acc@5=62.01%] Valid [loss=2.96375, acc@1=28.07%, acc@5=58.33%]\n",
"[2024-07-15 00:43:38] Time Left: [08:17:27] epoch=043/200 :: Train [loss=2.72858, acc@1=31.87%, acc@5=62.29%] Valid [loss=2.81984, acc@1=30.77%, acc@5=60.67%]\n",
"[2024-07-15 00:46:44] Time Left: [08:13:56] epoch=044/200 :: Train [loss=2.72600, acc@1=32.07%, acc@5=62.25%] Valid [loss=3.11946, acc@1=25.87%, acc@5=55.23%]\n",
"[2024-07-15 00:49:50] Time Left: [08:10:29] epoch=045/200 :: Train [loss=2.71652, acc@1=32.21%, acc@5=62.47%] Valid [loss=2.88302, acc@1=30.57%, acc@5=59.13%]\n",
"[2024-07-15 00:52:55] Time Left: [08:06:57] epoch=046/200 :: Train [loss=2.71495, acc@1=32.21%, acc@5=62.50%] Valid [loss=3.05045, acc@1=26.30%, acc@5=57.03%]\n",
"[2024-07-15 00:56:02] Time Left: [08:03:34] epoch=047/200 :: Train [loss=2.71325, acc@1=32.03%, acc@5=62.54%] Valid [loss=2.97790, acc@1=27.97%, acc@5=58.47%]\n",
"[2024-07-15 00:59:07] Time Left: [08:00:05] epoch=048/200 :: Train [loss=2.70990, acc@1=32.27%, acc@5=62.71%] Valid [loss=2.92274, acc@1=29.77%, acc@5=60.27%]\n",
"[2024-07-15 01:02:11] Time Left: [07:56:33] epoch=049/200 :: Train [loss=2.70071, acc@1=32.34%, acc@5=62.81%] Valid [loss=3.06558, acc@1=27.13%, acc@5=56.03%]\n",
"[2024-07-15 01:05:17] Time Left: [07:53:10] epoch=050/200 :: Train [loss=2.69920, acc@1=32.28%, acc@5=62.84%] Valid [loss=2.81612, acc@1=30.63%, acc@5=61.13%]\n",
"[2024-07-15 01:08:24] Time Left: [07:49:49] epoch=051/200 :: Train [loss=2.69264, acc@1=32.51%, acc@5=63.10%] Valid [loss=2.92276, acc@1=29.03%, acc@5=59.70%]\n",
"[2024-07-15 01:11:33] Time Left: [07:46:35] epoch=052/200 :: Train [loss=2.69309, acc@1=32.68%, acc@5=63.03%] Valid [loss=2.90176, acc@1=28.33%, acc@5=59.87%]\n",
"[2024-07-15 01:14:40] Time Left: [07:43:14] epoch=053/200 :: Train [loss=2.68944, acc@1=32.63%, acc@5=63.03%] Valid [loss=2.95084, acc@1=28.53%, acc@5=57.27%]\n",
"[2024-07-15 01:17:45] Time Left: [07:39:51] epoch=054/200 :: Train [loss=2.68605, acc@1=32.74%, acc@5=63.06%] Valid [loss=2.87443, acc@1=29.17%, acc@5=59.43%]\n",
"[2024-07-15 01:20:50] Time Left: [07:36:26] epoch=055/200 :: Train [loss=2.67880, acc@1=32.85%, acc@5=63.25%] Valid [loss=2.83703, acc@1=30.13%, acc@5=60.43%]\n",
"[2024-07-15 01:23:56] Time Left: [07:33:06] epoch=056/200 :: Train [loss=2.67627, acc@1=32.94%, acc@5=63.34%] Valid [loss=2.98757, acc@1=27.47%, acc@5=56.77%]\n",
"[2024-07-15 01:26:59] Time Left: [07:29:39] epoch=057/200 :: Train [loss=2.67110, acc@1=32.98%, acc@5=63.56%] Valid [loss=3.09190, acc@1=26.60%, acc@5=55.80%]\n",
"[2024-07-15 01:30:03] Time Left: [07:26:13] epoch=058/200 :: Train [loss=2.67085, acc@1=32.95%, acc@5=63.48%] Valid [loss=3.08454, acc@1=27.17%, acc@5=56.03%]\n",
"[2024-07-15 01:33:08] Time Left: [07:22:53] epoch=059/200 :: Train [loss=2.66647, acc@1=33.19%, acc@5=63.40%] Valid [loss=2.90111, acc@1=30.10%, acc@5=60.23%]\n",
"[2024-07-15 01:36:15] Time Left: [07:19:36] epoch=060/200 :: Train [loss=2.66169, acc@1=33.10%, acc@5=63.72%] Valid [loss=2.78985, acc@1=30.40%, acc@5=61.57%]\n",
"[2024-07-15 01:39:24] Time Left: [07:16:25] epoch=061/200 :: Train [loss=2.65573, acc@1=33.29%, acc@5=63.88%] Valid [loss=2.88375, acc@1=29.50%, acc@5=58.00%]\n",
"[2024-07-15 01:42:30] Time Left: [07:13:07] epoch=062/200 :: Train [loss=2.65256, acc@1=33.47%, acc@5=63.92%] Valid [loss=2.82935, acc@1=30.50%, acc@5=60.30%]\n",
"[2024-07-15 01:45:37] Time Left: [07:09:51] epoch=063/200 :: Train [loss=2.64242, acc@1=33.70%, acc@5=64.12%] Valid [loss=2.76696, acc@1=32.07%, acc@5=62.00%]\n",
"[2024-07-15 01:48:41] Time Left: [07:06:31] epoch=064/200 :: Train [loss=2.64112, acc@1=33.54%, acc@5=64.06%] Valid [loss=2.80152, acc@1=29.70%, acc@5=61.70%]\n",
"[2024-07-15 01:51:46] Time Left: [07:03:11] epoch=065/200 :: Train [loss=2.63754, acc@1=33.75%, acc@5=64.17%] Valid [loss=2.91860, acc@1=30.07%, acc@5=58.93%]\n",
"[2024-07-15 01:54:51] Time Left: [06:59:53] epoch=066/200 :: Train [loss=2.63182, acc@1=33.86%, acc@5=64.29%] Valid [loss=3.19172, acc@1=26.23%, acc@5=53.57%]\n",
"[2024-07-15 01:57:56] Time Left: [06:56:34] epoch=067/200 :: Train [loss=2.62803, acc@1=33.80%, acc@5=64.52%] Valid [loss=2.78529, acc@1=31.53%, acc@5=62.67%]\n",
"[2024-07-15 02:01:01] Time Left: [06:53:17] epoch=068/200 :: Train [loss=2.62614, acc@1=34.00%, acc@5=64.43%] Valid [loss=2.70273, acc@1=32.40%, acc@5=63.33%]\n",
"[2024-07-15 02:04:11] Time Left: [06:50:09] epoch=069/200 :: Train [loss=2.61888, acc@1=34.14%, acc@5=64.48%] Valid [loss=2.94374, acc@1=27.90%, acc@5=58.47%]\n",
"[2024-07-15 02:07:18] Time Left: [06:46:55] epoch=070/200 :: Train [loss=2.61957, acc@1=34.17%, acc@5=64.67%] Valid [loss=2.79688, acc@1=29.77%, acc@5=60.97%]\n",
"[2024-07-15 02:10:24] Time Left: [06:43:41] epoch=071/200 :: Train [loss=2.61251, acc@1=34.21%, acc@5=64.79%] Valid [loss=2.85084, acc@1=29.10%, acc@5=61.63%]\n",
"[2024-07-15 02:13:29] Time Left: [06:40:23] epoch=072/200 :: Train [loss=2.60677, acc@1=34.46%, acc@5=64.73%] Valid [loss=3.13981, acc@1=26.70%, acc@5=55.23%]\n",
"[2024-07-15 02:16:32] Time Left: [06:37:04] epoch=073/200 :: Train [loss=2.60469, acc@1=34.43%, acc@5=64.73%] Valid [loss=2.80986, acc@1=31.40%, acc@5=60.83%]\n",
"[2024-07-15 02:19:37] Time Left: [06:33:48] epoch=074/200 :: Train [loss=2.60093, acc@1=34.48%, acc@5=64.93%] Valid [loss=2.86934, acc@1=29.40%, acc@5=60.10%]\n",
"[2024-07-15 02:22:42] Time Left: [06:30:33] epoch=075/200 :: Train [loss=2.59480, acc@1=34.68%, acc@5=65.11%] Valid [loss=2.75724, acc@1=32.60%, acc@5=62.37%]\n",
"[2024-07-15 02:25:48] Time Left: [06:27:20] epoch=076/200 :: Train [loss=2.58664, acc@1=34.88%, acc@5=65.26%] Valid [loss=2.73480, acc@1=32.47%, acc@5=62.93%]\n",
"[2024-07-15 02:28:51] Time Left: [06:24:02] epoch=077/200 :: Train [loss=2.58434, acc@1=34.86%, acc@5=65.27%] Valid [loss=2.74386, acc@1=32.10%, acc@5=62.37%]\n",
"[2024-07-15 02:32:00] Time Left: [06:20:53] epoch=078/200 :: Train [loss=2.58005, acc@1=35.09%, acc@5=65.38%] Valid [loss=2.92724, acc@1=29.77%, acc@5=59.73%]\n",
"[2024-07-15 02:35:06] Time Left: [06:17:39] epoch=079/200 :: Train [loss=2.57378, acc@1=35.03%, acc@5=65.45%] Valid [loss=2.77908, acc@1=31.60%, acc@5=61.83%]\n",
"[2024-07-15 02:38:10] Time Left: [06:14:24] epoch=080/200 :: Train [loss=2.56786, acc@1=35.31%, acc@5=65.70%] Valid [loss=2.78157, acc@1=31.53%, acc@5=62.17%]\n",
"[2024-07-15 02:41:17] Time Left: [06:11:12] epoch=081/200 :: Train [loss=2.56246, acc@1=35.33%, acc@5=65.73%] Valid [loss=2.70874, acc@1=32.87%, acc@5=62.83%]\n",
"[2024-07-15 02:44:22] Time Left: [06:07:58] epoch=082/200 :: Train [loss=2.55931, acc@1=35.48%, acc@5=65.91%] Valid [loss=2.71339, acc@1=33.23%, acc@5=63.37%]\n",
"[2024-07-15 02:47:27] Time Left: [06:04:44] epoch=083/200 :: Train [loss=2.55367, acc@1=35.52%, acc@5=65.91%] Valid [loss=2.80922, acc@1=30.97%, acc@5=61.80%]\n",
"[2024-07-15 02:50:32] Time Left: [06:01:31] epoch=084/200 :: Train [loss=2.55023, acc@1=35.50%, acc@5=66.00%] Valid [loss=2.67638, acc@1=33.70%, acc@5=64.17%]\n",
"[2024-07-15 02:53:39] Time Left: [05:58:20] epoch=085/200 :: Train [loss=2.53868, acc@1=35.87%, acc@5=66.21%] Valid [loss=2.92567, acc@1=28.70%, acc@5=59.40%]\n",
"[2024-07-15 02:56:49] Time Left: [05:55:13] epoch=086/200 :: Train [loss=2.53994, acc@1=35.77%, acc@5=66.24%] Valid [loss=2.73225, acc@1=32.93%, acc@5=62.77%]\n",
"[2024-07-15 02:59:54] Time Left: [05:51:59] epoch=087/200 :: Train [loss=2.53307, acc@1=35.82%, acc@5=66.37%] Valid [loss=2.70351, acc@1=33.23%, acc@5=63.27%]\n",
"[2024-07-15 03:03:01] Time Left: [05:48:49] epoch=088/200 :: Train [loss=2.52354, acc@1=36.18%, acc@5=66.61%] Valid [loss=2.77507, acc@1=32.40%, acc@5=62.97%]\n",
"[2024-07-15 03:06:08] Time Left: [05:45:39] epoch=089/200 :: Train [loss=2.51999, acc@1=36.14%, acc@5=66.75%] Valid [loss=2.71626, acc@1=31.53%, acc@5=63.60%]\n",
"[2024-07-15 03:09:13] Time Left: [05:42:26] epoch=090/200 :: Train [loss=2.51436, acc@1=36.22%, acc@5=66.74%] Valid [loss=2.63617, acc@1=33.13%, acc@5=65.50%]\n",
"[2024-07-15 03:12:20] Time Left: [05:39:15] epoch=091/200 :: Train [loss=2.50456, acc@1=36.55%, acc@5=66.89%] Valid [loss=2.92171, acc@1=29.63%, acc@5=58.80%]\n",
"[2024-07-15 03:15:25] Time Left: [05:36:03] epoch=092/200 :: Train [loss=2.50425, acc@1=36.60%, acc@5=67.04%] Valid [loss=2.78949, acc@1=31.80%, acc@5=61.00%]\n",
"[2024-07-15 03:18:31] Time Left: [05:32:52] epoch=093/200 :: Train [loss=2.49558, acc@1=36.75%, acc@5=67.19%] Valid [loss=2.57108, acc@1=34.97%, acc@5=66.47%]\n",
"[2024-07-15 03:21:37] Time Left: [05:29:41] epoch=094/200 :: Train [loss=2.49343, acc@1=36.86%, acc@5=67.23%] Valid [loss=2.74793, acc@1=32.87%, acc@5=63.57%]\n",
"[2024-07-15 03:24:41] Time Left: [05:26:27] epoch=095/200 :: Train [loss=2.48281, acc@1=37.14%, acc@5=67.47%] Valid [loss=2.75747, acc@1=32.40%, acc@5=62.47%]\n",
"[2024-07-15 03:27:49] Time Left: [05:23:19] epoch=096/200 :: Train [loss=2.47870, acc@1=37.12%, acc@5=67.44%] Valid [loss=2.72210, acc@1=32.90%, acc@5=63.93%]\n",
"[2024-07-15 03:30:53] Time Left: [05:20:07] epoch=097/200 :: Train [loss=2.47383, acc@1=37.21%, acc@5=67.68%] Valid [loss=2.71815, acc@1=32.10%, acc@5=63.30%]\n",
"[2024-07-15 03:34:00] Time Left: [05:16:57] epoch=098/200 :: Train [loss=2.46518, acc@1=37.37%, acc@5=67.78%] Valid [loss=2.69786, acc@1=33.07%, acc@5=63.73%]\n",
"[2024-07-15 03:37:07] Time Left: [05:13:47] epoch=099/200 :: Train [loss=2.46283, acc@1=37.51%, acc@5=67.84%] Valid [loss=2.81277, acc@1=31.00%, acc@5=62.33%]\n",
"[2024-07-15 03:40:14] Time Left: [05:10:37] epoch=100/200 :: Train [loss=2.45544, acc@1=37.64%, acc@5=67.85%] Valid [loss=2.73071, acc@1=32.20%, acc@5=63.63%]\n",
"[2024-07-15 03:43:17] Time Left: [05:07:25] epoch=101/200 :: Train [loss=2.44938, acc@1=37.72%, acc@5=68.07%] Valid [loss=2.82965, acc@1=31.77%, acc@5=60.93%]\n",
"[2024-07-15 03:46:22] Time Left: [05:04:13] epoch=102/200 :: Train [loss=2.44343, acc@1=37.78%, acc@5=68.15%] Valid [loss=2.59046, acc@1=34.30%, acc@5=65.50%]\n",
"[2024-07-15 03:49:27] Time Left: [05:01:02] epoch=103/200 :: Train [loss=2.43615, acc@1=38.00%, acc@5=68.41%] Valid [loss=2.66372, acc@1=33.53%, acc@5=64.03%]\n",
"[2024-07-15 03:52:31] Time Left: [04:57:50] epoch=104/200 :: Train [loss=2.42806, acc@1=38.17%, acc@5=68.55%] Valid [loss=2.56414, acc@1=35.27%, acc@5=66.73%]\n",
"[2024-07-15 03:55:45] Time Left: [04:54:47] epoch=105/200 :: Train [loss=2.42144, acc@1=38.26%, acc@5=68.73%] Valid [loss=2.64740, acc@1=33.80%, acc@5=64.73%]\n",
"[2024-07-15 03:58:52] Time Left: [04:51:38] epoch=106/200 :: Train [loss=2.41486, acc@1=38.50%, acc@5=68.87%] Valid [loss=2.62566, acc@1=34.50%, acc@5=65.80%]\n",
"[2024-07-15 04:01:57] Time Left: [04:48:27] epoch=107/200 :: Train [loss=2.40646, acc@1=38.69%, acc@5=68.89%] Valid [loss=2.65370, acc@1=32.50%, acc@5=65.00%]\n",
"[2024-07-15 04:05:03] Time Left: [04:45:17] epoch=108/200 :: Train [loss=2.40602, acc@1=38.56%, acc@5=68.97%] Valid [loss=2.50879, acc@1=37.50%, acc@5=67.53%]\n",
"[2024-07-15 04:08:09] Time Left: [04:42:08] epoch=109/200 :: Train [loss=2.39322, acc@1=38.89%, acc@5=69.30%] Valid [loss=2.58454, acc@1=35.23%, acc@5=65.60%]\n",
"[2024-07-15 04:11:16] Time Left: [04:38:58] epoch=110/200 :: Train [loss=2.38791, acc@1=38.97%, acc@5=69.38%] Valid [loss=2.58976, acc@1=35.20%, acc@5=66.60%]\n",
"[2024-07-15 04:14:21] Time Left: [04:35:48] epoch=111/200 :: Train [loss=2.37779, acc@1=39.22%, acc@5=69.65%] Valid [loss=2.77131, acc@1=32.77%, acc@5=62.37%]\n",
"[2024-07-15 04:17:27] Time Left: [04:32:38] epoch=112/200 :: Train [loss=2.36987, acc@1=39.44%, acc@5=69.71%] Valid [loss=2.55597, acc@1=36.30%, acc@5=67.00%]\n",
"[2024-07-15 04:20:32] Time Left: [04:29:28] epoch=113/200 :: Train [loss=2.36789, acc@1=39.56%, acc@5=69.88%] Valid [loss=2.55111, acc@1=35.97%, acc@5=67.00%]\n",
"[2024-07-15 04:23:37] Time Left: [04:26:18] epoch=114/200 :: Train [loss=2.36032, acc@1=39.58%, acc@5=69.85%] Valid [loss=2.55030, acc@1=37.47%, acc@5=67.53%]\n",
"[2024-07-15 04:26:42] Time Left: [04:23:07] epoch=115/200 :: Train [loss=2.34899, acc@1=39.73%, acc@5=70.11%] Valid [loss=2.51567, acc@1=37.37%, acc@5=67.80%]\n",
"[2024-07-15 04:29:51] Time Left: [04:20:01] epoch=116/200 :: Train [loss=2.33681, acc@1=40.19%, acc@5=70.31%] Valid [loss=2.61767, acc@1=34.90%, acc@5=66.27%]\n",
"[2024-07-15 04:32:57] Time Left: [04:16:51] epoch=117/200 :: Train [loss=2.33828, acc@1=40.15%, acc@5=70.36%] Valid [loss=2.58179, acc@1=35.90%, acc@5=66.77%]\n",
"[2024-07-15 04:36:04] Time Left: [04:13:42] epoch=118/200 :: Train [loss=2.32736, acc@1=40.29%, acc@5=70.53%] Valid [loss=2.51830, acc@1=37.47%, acc@5=67.73%]\n",
"[2024-07-15 04:39:08] Time Left: [04:10:32] epoch=119/200 :: Train [loss=2.31898, acc@1=40.46%, acc@5=70.76%] Valid [loss=2.62725, acc@1=34.97%, acc@5=65.47%]\n",
"[2024-07-15 04:42:12] Time Left: [04:07:22] epoch=120/200 :: Train [loss=2.31374, acc@1=40.54%, acc@5=70.82%] Valid [loss=2.51374, acc@1=37.80%, acc@5=67.73%]\n",
"[2024-07-15 04:45:18] Time Left: [04:04:13] epoch=121/200 :: Train [loss=2.30533, acc@1=40.89%, acc@5=71.06%] Valid [loss=2.49613, acc@1=37.87%, acc@5=66.63%]\n",
"[2024-07-15 04:48:26] Time Left: [04:01:05] epoch=122/200 :: Train [loss=2.29516, acc@1=41.01%, acc@5=71.11%] Valid [loss=2.50059, acc@1=37.30%, acc@5=68.43%]\n",
"[2024-07-15 04:51:31] Time Left: [03:57:55] epoch=123/200 :: Train [loss=2.28380, acc@1=41.17%, acc@5=71.49%] Valid [loss=2.45486, acc@1=39.07%, acc@5=69.17%]\n",
"[2024-07-15 04:54:37] Time Left: [03:54:46] epoch=124/200 :: Train [loss=2.27053, acc@1=41.61%, acc@5=71.71%] Valid [loss=2.48097, acc@1=38.20%, acc@5=68.10%]\n",
"[2024-07-15 04:57:44] Time Left: [03:51:38] epoch=125/200 :: Train [loss=2.26666, acc@1=41.57%, acc@5=71.84%] Valid [loss=2.61194, acc@1=34.93%, acc@5=66.03%]\n",
"[2024-07-15 05:00:52] Time Left: [03:48:30] epoch=126/200 :: Train [loss=2.25740, acc@1=41.83%, acc@5=71.99%] Valid [loss=2.43634, acc@1=37.97%, acc@5=68.93%]\n",
"[2024-07-15 05:04:00] Time Left: [03:45:22] epoch=127/200 :: Train [loss=2.25141, acc@1=41.95%, acc@5=72.00%] Valid [loss=2.49014, acc@1=36.30%, acc@5=68.30%]\n",
"[2024-07-15 05:07:03] Time Left: [03:42:12] epoch=128/200 :: Train [loss=2.24197, acc@1=42.17%, acc@5=72.26%] Valid [loss=2.60582, acc@1=36.13%, acc@5=66.00%]\n",
"[2024-07-15 05:10:07] Time Left: [03:39:02] epoch=129/200 :: Train [loss=2.23404, acc@1=42.45%, acc@5=72.47%] Valid [loss=2.43923, acc@1=37.93%, acc@5=69.60%]\n",
"[2024-07-15 05:13:13] Time Left: [03:35:53] epoch=130/200 :: Train [loss=2.22245, acc@1=42.61%, acc@5=72.71%] Valid [loss=2.51779, acc@1=37.40%, acc@5=67.70%]\n",
"[2024-07-15 05:16:18] Time Left: [03:32:44] epoch=131/200 :: Train [loss=2.21285, acc@1=42.87%, acc@5=72.76%] Valid [loss=2.41339, acc@1=39.53%, acc@5=69.90%]\n",
"[2024-07-15 05:19:25] Time Left: [03:29:36] epoch=132/200 :: Train [loss=2.20425, acc@1=43.00%, acc@5=72.98%] Valid [loss=2.62070, acc@1=36.17%, acc@5=65.70%]\n",
"[2024-07-15 05:22:31] Time Left: [03:26:28] epoch=133/200 :: Train [loss=2.19744, acc@1=43.17%, acc@5=73.14%] Valid [loss=2.42010, acc@1=37.90%, acc@5=70.20%]\n",
"[2024-07-15 05:25:34] Time Left: [03:23:18] epoch=134/200 :: Train [loss=2.18479, acc@1=43.32%, acc@5=73.40%] Valid [loss=2.61993, acc@1=35.23%, acc@5=65.97%]\n",
"[2024-07-15 05:28:38] Time Left: [03:20:08] epoch=135/200 :: Train [loss=2.17591, acc@1=43.61%, acc@5=73.47%] Valid [loss=2.45970, acc@1=38.97%, acc@5=68.07%]\n",
"[2024-07-15 05:31:41] Time Left: [03:16:58] epoch=136/200 :: Train [loss=2.16705, acc@1=43.84%, acc@5=73.73%] Valid [loss=2.54253, acc@1=37.13%, acc@5=67.17%]\n",
"[2024-07-15 05:34:49] Time Left: [03:13:51] epoch=137/200 :: Train [loss=2.15446, acc@1=44.19%, acc@5=73.94%] Valid [loss=2.47344, acc@1=38.03%, acc@5=68.97%]\n",
"[2024-07-15 05:37:56] Time Left: [03:10:43] epoch=138/200 :: Train [loss=2.14521, acc@1=44.36%, acc@5=74.02%] Valid [loss=2.38452, acc@1=39.53%, acc@5=70.43%]\n",
"[2024-07-15 05:41:03] Time Left: [03:07:35] epoch=139/200 :: Train [loss=2.13465, acc@1=44.56%, acc@5=74.28%] Valid [loss=2.34956, acc@1=40.23%, acc@5=70.97%]\n",
"[2024-07-15 05:44:10] Time Left: [03:04:27] epoch=140/200 :: Train [loss=2.12249, acc@1=44.83%, acc@5=74.53%] Valid [loss=2.40616, acc@1=38.77%, acc@5=70.23%]\n",
"[2024-07-15 05:47:16] Time Left: [03:01:19] epoch=141/200 :: Train [loss=2.10843, acc@1=44.98%, acc@5=74.75%] Valid [loss=2.35925, acc@1=40.27%, acc@5=70.87%]\n",
"[2024-07-15 05:50:21] Time Left: [02:58:11] epoch=142/200 :: Train [loss=2.10296, acc@1=45.40%, acc@5=74.87%] Valid [loss=2.41865, acc@1=40.00%, acc@5=69.47%]\n",
"[2024-07-15 05:53:26] Time Left: [02:55:02] epoch=143/200 :: Train [loss=2.09054, acc@1=45.63%, acc@5=75.22%] Valid [loss=2.32662, acc@1=40.67%, acc@5=70.97%]\n",
"[2024-07-15 05:56:29] Time Left: [02:51:53] epoch=144/200 :: Train [loss=2.08107, acc@1=45.61%, acc@5=75.27%] Valid [loss=2.36511, acc@1=40.30%, acc@5=71.17%]\n",
"[2024-07-15 05:59:36] Time Left: [02:48:45] epoch=145/200 :: Train [loss=2.06516, acc@1=46.04%, acc@5=75.64%] Valid [loss=2.43063, acc@1=39.53%, acc@5=68.57%]\n",
"[2024-07-15 06:02:42] Time Left: [02:45:37] epoch=146/200 :: Train [loss=2.05785, acc@1=46.30%, acc@5=75.79%] Valid [loss=2.33037, acc@1=40.70%, acc@5=71.00%]\n",
"[2024-07-15 06:05:47] Time Left: [02:42:29] epoch=147/200 :: Train [loss=2.04391, acc@1=46.54%, acc@5=76.04%] Valid [loss=2.44384, acc@1=39.10%, acc@5=69.07%]\n",
"[2024-07-15 06:08:55] Time Left: [02:39:21] epoch=148/200 :: Train [loss=2.03154, acc@1=46.84%, acc@5=76.19%] Valid [loss=2.30326, acc@1=41.97%, acc@5=71.60%]\n",
"[2024-07-15 06:12:02] Time Left: [02:36:14] epoch=149/200 :: Train [loss=2.01951, acc@1=47.16%, acc@5=76.43%] Valid [loss=2.49105, acc@1=37.80%, acc@5=68.63%]\n",
"[2024-07-15 06:15:06] Time Left: [02:33:05] epoch=150/200 :: Train [loss=2.00472, acc@1=47.35%, acc@5=76.68%] Valid [loss=2.38708, acc@1=40.60%, acc@5=69.80%]\n",
"[2024-07-15 06:18:13] Time Left: [02:29:57] epoch=151/200 :: Train [loss=1.99454, acc@1=47.55%, acc@5=76.90%] Valid [loss=2.32740, acc@1=40.43%, acc@5=71.23%]\n",
"[2024-07-15 06:21:18] Time Left: [02:26:49] epoch=152/200 :: Train [loss=1.97980, acc@1=47.99%, acc@5=77.26%] Valid [loss=2.33845, acc@1=41.73%, acc@5=71.90%]\n",
"[2024-07-15 06:24:22] Time Left: [02:23:41] epoch=153/200 :: Train [loss=1.96667, acc@1=48.24%, acc@5=77.42%] Valid [loss=2.33410, acc@1=40.97%, acc@5=71.50%]\n",
"[2024-07-15 06:27:29] Time Left: [02:20:33] epoch=154/200 :: Train [loss=1.95667, acc@1=48.49%, acc@5=77.61%] Valid [loss=2.31773, acc@1=41.93%, acc@5=71.20%]\n",
"[2024-07-15 06:30:33] Time Left: [02:17:25] epoch=155/200 :: Train [loss=1.94034, acc@1=48.89%, acc@5=77.81%] Valid [loss=2.33904, acc@1=40.60%, acc@5=71.33%]\n",
"[2024-07-15 06:33:36] Time Left: [02:14:16] epoch=156/200 :: Train [loss=1.92735, acc@1=49.17%, acc@5=78.08%] Valid [loss=2.28508, acc@1=42.37%, acc@5=72.37%]\n",
"[2024-07-15 06:36:42] Time Left: [02:11:08] epoch=157/200 :: Train [loss=1.91486, acc@1=49.46%, acc@5=78.28%] Valid [loss=2.29478, acc@1=41.23%, acc@5=72.57%]\n",
"[2024-07-15 06:39:50] Time Left: [02:08:01] epoch=158/200 :: Train [loss=1.89947, acc@1=49.85%, acc@5=78.72%] Valid [loss=2.34133, acc@1=41.77%, acc@5=71.23%]\n",
"[2024-07-15 06:42:54] Time Left: [02:04:53] epoch=159/200 :: Train [loss=1.88416, acc@1=50.28%, acc@5=78.83%] Valid [loss=2.34443, acc@1=40.10%, acc@5=70.73%]\n",
"[2024-07-15 06:46:00] Time Left: [02:01:45] epoch=160/200 :: Train [loss=1.87161, acc@1=50.45%, acc@5=79.18%] Valid [loss=2.34675, acc@1=41.67%, acc@5=71.47%]\n",
"[2024-07-15 06:49:05] Time Left: [01:58:38] epoch=161/200 :: Train [loss=1.85560, acc@1=50.81%, acc@5=79.40%] Valid [loss=2.27080, acc@1=42.23%, acc@5=72.80%]\n",
"[2024-07-15 06:52:11] Time Left: [01:55:30] epoch=162/200 :: Train [loss=1.84210, acc@1=51.24%, acc@5=79.66%] Valid [loss=2.27546, acc@1=43.27%, acc@5=72.40%]\n",
"[2024-07-15 06:55:17] Time Left: [01:52:22] epoch=163/200 :: Train [loss=1.82693, acc@1=51.44%, acc@5=79.88%] Valid [loss=2.27875, acc@1=43.53%, acc@5=72.43%]\n",
"[2024-07-15 06:58:22] Time Left: [01:49:15] epoch=164/200 :: Train [loss=1.80622, acc@1=51.97%, acc@5=80.13%] Valid [loss=2.23785, acc@1=43.33%, acc@5=73.33%]\n",
"[2024-07-15 07:01:32] Time Left: [01:46:08] epoch=165/200 :: Train [loss=1.79325, acc@1=52.25%, acc@5=80.38%] Valid [loss=2.27758, acc@1=42.50%, acc@5=73.33%]\n",
"[2024-07-15 07:04:37] Time Left: [01:43:00] epoch=166/200 :: Train [loss=1.77531, acc@1=52.61%, acc@5=80.82%] Valid [loss=2.26904, acc@1=42.63%, acc@5=72.33%]\n",
"[2024-07-15 07:07:41] Time Left: [01:39:52] epoch=167/200 :: Train [loss=1.76234, acc@1=52.98%, acc@5=81.00%] Valid [loss=2.25700, acc@1=43.87%, acc@5=72.93%]\n",
"[2024-07-15 07:10:46] Time Left: [01:36:45] epoch=168/200 :: Train [loss=1.74227, acc@1=53.51%, acc@5=81.32%] Valid [loss=2.20665, acc@1=45.23%, acc@5=73.60%]\n",
"[2024-07-15 07:13:51] Time Left: [01:33:37] epoch=169/200 :: Train [loss=1.72601, acc@1=53.76%, acc@5=81.52%] Valid [loss=2.31115, acc@1=43.37%, acc@5=72.27%]\n",
"[2024-07-15 07:16:56] Time Left: [01:30:29] epoch=170/200 :: Train [loss=1.70660, acc@1=54.29%, acc@5=81.98%] Valid [loss=2.24468, acc@1=43.07%, acc@5=73.37%]\n",
"[2024-07-15 07:20:00] Time Left: [01:27:21] epoch=171/200 :: Train [loss=1.68991, acc@1=54.64%, acc@5=82.20%] Valid [loss=2.22031, acc@1=44.33%, acc@5=74.73%]\n",
"[2024-07-15 07:23:05] Time Left: [01:24:14] epoch=172/200 :: Train [loss=1.67457, acc@1=55.16%, acc@5=82.36%] Valid [loss=2.21577, acc@1=43.73%, acc@5=74.03%]\n",
"[2024-07-15 07:26:11] Time Left: [01:21:07] epoch=173/200 :: Train [loss=1.65523, acc@1=55.52%, acc@5=82.76%] Valid [loss=2.19514, acc@1=44.50%, acc@5=74.43%]\n",
"[2024-07-15 07:29:20] Time Left: [01:18:00] epoch=174/200 :: Train [loss=1.63824, acc@1=55.76%, acc@5=83.12%] Valid [loss=2.24796, acc@1=43.63%, acc@5=73.97%]\n",
"[2024-07-15 07:32:26] Time Left: [01:14:52] epoch=175/200 :: Train [loss=1.61715, acc@1=56.28%, acc@5=83.35%] Valid [loss=2.18775, acc@1=44.43%, acc@5=75.07%]\n",
"[2024-07-15 07:35:31] Time Left: [01:11:45] epoch=176/200 :: Train [loss=1.59784, acc@1=56.90%, acc@5=83.70%] Valid [loss=2.17916, acc@1=44.47%, acc@5=74.77%]\n",
"[2024-07-15 07:38:36] Time Left: [01:08:37] epoch=177/200 :: Train [loss=1.57624, acc@1=57.40%, acc@5=84.06%] Valid [loss=2.18745, acc@1=45.60%, acc@5=75.60%]\n",
"[2024-07-15 07:41:43] Time Left: [01:05:30] epoch=178/200 :: Train [loss=1.56255, acc@1=57.63%, acc@5=84.31%] Valid [loss=2.21751, acc@1=44.93%, acc@5=73.93%]\n",
"[2024-07-15 07:44:47] Time Left: [01:02:23] epoch=179/200 :: Train [loss=1.54085, acc@1=58.07%, acc@5=84.53%] Valid [loss=2.23525, acc@1=44.20%, acc@5=73.80%]\n",
"[2024-07-15 07:47:51] Time Left: [00:59:15] epoch=180/200 :: Train [loss=1.52517, acc@1=58.56%, acc@5=84.93%] Valid [loss=2.24533, acc@1=44.80%, acc@5=74.13%]\n",
"[2024-07-15 07:50:58] Time Left: [00:56:08] epoch=181/200 :: Train [loss=1.50196, acc@1=59.19%, acc@5=85.16%] Valid [loss=2.17767, acc@1=45.27%, acc@5=75.57%]\n",
"[2024-07-15 07:54:08] Time Left: [00:53:01] epoch=182/200 :: Train [loss=1.48082, acc@1=59.67%, acc@5=85.58%] Valid [loss=2.18363, acc@1=44.93%, acc@5=76.10%]\n",
"[2024-07-15 07:57:15] Time Left: [00:49:54] epoch=183/200 :: Train [loss=1.46252, acc@1=60.12%, acc@5=85.74%] Valid [loss=2.18358, acc@1=45.63%, acc@5=75.13%]\n",
"[2024-07-15 08:00:21] Time Left: [00:46:47] epoch=184/200 :: Train [loss=1.44499, acc@1=60.62%, acc@5=86.07%] Valid [loss=2.17094, acc@1=46.67%, acc@5=76.27%]\n",
"[2024-07-15 08:03:26] Time Left: [00:43:39] epoch=185/200 :: Train [loss=1.42742, acc@1=60.96%, acc@5=86.34%] Valid [loss=2.18399, acc@1=46.33%, acc@5=75.83%]\n",
"[2024-07-15 08:06:31] Time Left: [00:40:32] epoch=186/200 :: Train [loss=1.40929, acc@1=61.42%, acc@5=86.70%] Valid [loss=2.18671, acc@1=45.97%, acc@5=75.63%]\n",
"[2024-07-15 08:09:38] Time Left: [00:37:25] epoch=187/200 :: Train [loss=1.39033, acc@1=61.96%, acc@5=86.94%] Valid [loss=2.16663, acc@1=46.67%, acc@5=75.87%]\n",
"[2024-07-15 08:12:45] Time Left: [00:34:18] epoch=188/200 :: Train [loss=1.37876, acc@1=62.07%, acc@5=87.13%] Valid [loss=2.17792, acc@1=45.83%, acc@5=75.73%]\n",
"[2024-07-15 08:15:50] Time Left: [00:31:11] epoch=189/200 :: Train [loss=1.35965, acc@1=62.69%, acc@5=87.36%] Valid [loss=2.18504, acc@1=46.40%, acc@5=75.80%]\n",
"[2024-07-15 08:18:57] Time Left: [00:28:03] epoch=190/200 :: Train [loss=1.34533, acc@1=63.09%, acc@5=87.57%] Valid [loss=2.18347, acc@1=46.03%, acc@5=75.83%]\n",
"[2024-07-15 08:22:02] Time Left: [00:24:56] epoch=191/200 :: Train [loss=1.33360, acc@1=63.35%, acc@5=87.72%] Valid [loss=2.17533, acc@1=46.60%, acc@5=76.40%]\n",
"[2024-07-15 08:25:05] Time Left: [00:21:49] epoch=192/200 :: Train [loss=1.32393, acc@1=63.55%, acc@5=87.94%] Valid [loss=2.17883, acc@1=45.57%, acc@5=76.23%]\n",
"[2024-07-15 08:28:11] Time Left: [00:18:42] epoch=193/200 :: Train [loss=1.31294, acc@1=63.97%, acc@5=88.00%] Valid [loss=2.16800, acc@1=46.23%, acc@5=76.30%]\n",
"[2024-07-15 08:31:17] Time Left: [00:15:35] epoch=194/200 :: Train [loss=1.30641, acc@1=64.12%, acc@5=88.10%] Valid [loss=2.17634, acc@1=46.80%, acc@5=76.67%]\n",
"[2024-07-15 08:34:23] Time Left: [00:12:28] epoch=195/200 :: Train [loss=1.29847, acc@1=64.30%, acc@5=88.24%] Valid [loss=2.18179, acc@1=46.77%, acc@5=76.30%]\n",
"[2024-07-15 08:37:28] Time Left: [00:09:21] epoch=196/200 :: Train [loss=1.29132, acc@1=64.40%, acc@5=88.38%] Valid [loss=2.17256, acc@1=46.20%, acc@5=76.37%]\n",
"[2024-07-15 08:40:37] Time Left: [00:06:14] epoch=197/200 :: Train [loss=1.28917, acc@1=64.59%, acc@5=88.41%] Valid [loss=2.16487, acc@1=46.67%, acc@5=76.27%]\n",
"[2024-07-15 08:43:44] Time Left: [00:03:07] epoch=198/200 :: Train [loss=1.28454, acc@1=64.67%, acc@5=88.48%] Valid [loss=2.17130, acc@1=46.47%, acc@5=76.17%]\n",
"[2024-07-15 08:46:49] Time Left: [00:00:00] epoch=199/200 :: Train [loss=1.27998, acc@1=64.70%, acc@5=88.55%] Valid [loss=2.16611, acc@1=46.20%, acc@5=76.33%]\n",
"Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to /cifar-10-python.tar.gz\n",
"Failed download. Trying https -> http instead. Downloading http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to /cifar-10-python.tar.gz\n"
]
},
{
"ename": "PermissionError",
"evalue": "[Errno 13] Permission denied: '/cifar-10-python.tar.gz'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mPermissionError\u001b[0m Traceback (most recent call last)",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:141\u001b[0m, in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDownloading \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m url \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m to \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m fpath)\n\u001b[0;32m--> 141\u001b[0m \u001b[43m_urlretrieve\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (urllib\u001b[38;5;241m.\u001b[39merror\u001b[38;5;241m.\u001b[39mURLError, \u001b[38;5;167;01mOSError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# type: ignore[attr-defined]\u001b[39;00m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:32\u001b[0m, in \u001b[0;36m_urlretrieve\u001b[0;34m(url, filename, chunk_size)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_urlretrieve\u001b[39m(url: \u001b[38;5;28mstr\u001b[39m, filename: \u001b[38;5;28mstr\u001b[39m, chunk_size: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1024\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m fh:\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39murlopen(urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39mRequest(url, headers\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUser-Agent\u001b[39m\u001b[38;5;124m\"\u001b[39m: USER_AGENT})) \u001b[38;5;28;01mas\u001b[39;00m response:\n",
"\u001b[0;31mPermissionError\u001b[0m: [Errno 13] Permission denied: '/cifar-10-python.tar.gz'",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mPermissionError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[16], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mtrain_single_model\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_dir\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m./outputs\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mworkers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mdatasets\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mImageNet16-120\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcifar10\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcifar100\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mxpaths\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m./datasets/imagenet16-120\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43msplits\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_less\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mseeds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m777\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel_str\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# model_str=\"5374\",\u001b[39;49;00m\n\u001b[1;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43march_config\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mchannel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m16\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnum_cells\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\n",
"Cell \u001b[0;32mIn[11], line 63\u001b[0m, in \u001b[0;36mtrain_single_model\u001b[0;34m(save_dir, workers, datasets, xpaths, splits, use_less, seeds, model_str, arch_config)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 58\u001b[0m logger\u001b[38;5;241m.\u001b[39mlog(\n\u001b[1;32m 59\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDoes not find the existing file \u001b[39m\u001b[38;5;132;01m{:}\u001b[39;00m\u001b[38;5;124m, train and evaluate!\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 60\u001b[0m to_save_name\n\u001b[1;32m 61\u001b[0m )\n\u001b[1;32m 62\u001b[0m )\n\u001b[0;32m---> 63\u001b[0m checkpoint \u001b[38;5;241m=\u001b[39m \u001b[43mevaluate_all_datasets\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 64\u001b[0m \u001b[43m \u001b[49m\u001b[43march\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 65\u001b[0m \u001b[43m \u001b[49m\u001b[43mdatasets\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 66\u001b[0m \u001b[43m \u001b[49m\u001b[43mxpaths\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[43m \u001b[49m\u001b[43msplits\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_less\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 69\u001b[0m \u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43march_config\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43mworkers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[43m \u001b[49m\u001b[43mlogger\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 73\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 74\u001b[0m torch\u001b[38;5;241m.\u001b[39msave(checkpoint, to_save_name)\n\u001b[1;32m 75\u001b[0m \u001b[38;5;66;03m# log information\u001b[39;00m\n",
"Cell \u001b[0;32mIn[7], line 10\u001b[0m, in \u001b[0;36mevaluate_all_datasets\u001b[0;34m(arch, datasets, xpaths, splits, use_less, seed, arch_config, workers, logger)\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# look all the datasets\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset, xpath, split \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(datasets, xpaths, splits):\n\u001b[1;32m 9\u001b[0m \u001b[38;5;66;03m# train valid data\u001b[39;00m\n\u001b[0;32m---> 10\u001b[0m train_data, valid_data, xshape, class_num \u001b[38;5;241m=\u001b[39m \u001b[43mget_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# load the configuration\u001b[39;00m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dataset \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar10\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m dataset \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar100\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
"File \u001b[0;32m~/autodl-projects/xautodl/datasets/get_dataset_with_transform.py:195\u001b[0m, in \u001b[0;36mget_datasets\u001b[0;34m(name, root, cutout)\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnknow dataset : \u001b[39m\u001b[38;5;132;01m{:}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(name))\n\u001b[1;32m 194\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcifar10\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m--> 195\u001b[0m train_data \u001b[38;5;241m=\u001b[39m \u001b[43mdset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCIFAR10\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 196\u001b[0m \u001b[43m \u001b[49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtransform\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtrain_transform\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdownload\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[1;32m 197\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 198\u001b[0m test_data \u001b[38;5;241m=\u001b[39m dset\u001b[38;5;241m.\u001b[39mCIFAR10(\n\u001b[1;32m 199\u001b[0m root, train\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, transform\u001b[38;5;241m=\u001b[39mtest_transform, download\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 200\u001b[0m )\n\u001b[1;32m 201\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(train_data) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m50000\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(test_data) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m10000\u001b[39m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/cifar.py:65\u001b[0m, in \u001b[0;36mCIFAR10.__init__\u001b[0;34m(self, root, train, transform, target_transform, download)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain \u001b[38;5;241m=\u001b[39m train \u001b[38;5;66;03m# training set or test set\u001b[39;00m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m download:\n\u001b[0;32m---> 65\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdownload\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_integrity():\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDataset not found or corrupted. You can use download=True to download it\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/cifar.py:141\u001b[0m, in \u001b[0;36mCIFAR10.download\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFiles already downloaded and verified\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m--> 141\u001b[0m \u001b[43mdownload_and_extract_archive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroot\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmd5\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtgz_md5\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:430\u001b[0m, in \u001b[0;36mdownload_and_extract_archive\u001b[0;34m(url, download_root, extract_root, filename, md5, remove_finished)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m filename:\n\u001b[1;32m 428\u001b[0m filename \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mbasename(url)\n\u001b[0;32m--> 430\u001b[0m \u001b[43mdownload_url\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdownload_root\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmd5\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 432\u001b[0m archive \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(download_root, filename)\n\u001b[1;32m 433\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExtracting \u001b[39m\u001b[38;5;132;01m{\u001b[39;00marchive\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m to \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mextract_root\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:146\u001b[0m, in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 144\u001b[0m url \u001b[38;5;241m=\u001b[39m url\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps:\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttp:\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFailed download. Trying https -> http instead. Downloading \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m url \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m to \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m fpath)\n\u001b[0;32m--> 146\u001b[0m \u001b[43m_urlretrieve\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n",
"File \u001b[0;32m~/anaconda3/envs/DiNAS/lib/python3.9/site-packages/torchvision/datasets/utils.py:32\u001b[0m, in \u001b[0;36m_urlretrieve\u001b[0;34m(url, filename, chunk_size)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_urlretrieve\u001b[39m(url: \u001b[38;5;28mstr\u001b[39m, filename: \u001b[38;5;28mstr\u001b[39m, chunk_size: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1024\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m fh:\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39murlopen(urllib\u001b[38;5;241m.\u001b[39mrequest\u001b[38;5;241m.\u001b[39mRequest(url, headers\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUser-Agent\u001b[39m\u001b[38;5;124m\"\u001b[39m: USER_AGENT})) \u001b[38;5;28;01mas\u001b[39;00m response:\n\u001b[1;32m 34\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m tqdm(total\u001b[38;5;241m=\u001b[39mresponse\u001b[38;5;241m.\u001b[39mlength) \u001b[38;5;28;01mas\u001b[39;00m pbar:\n",
"\u001b[0;31mPermissionError\u001b[0m: [Errno 13] Permission denied: '/cifar-10-python.tar.gz'"
]
}
],
"source": [
"train_single_model(\n",
" save_dir=\"./outputs\",\n",
" workers=8,\n",
" datasets=[\"ImageNet16-120\",\"cifar10\",\"cifar100\"], \n",
" xpaths=\"./datasets/imagenet16-120\",\n",
" splits=[0, 0, 0],\n",
" use_less=False,\n",
" seeds=[777],\n",
" model_str=\"nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|\",\n",
" # model_str=\"5374\",\n",
" arch_config={\"channel\": 16, \"num_cells\": 8},)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## structure\n",
"\n",
"The best of us: `nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|`\n",
"\n",
"The best cifar-10 and cifar-100: `nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|`\n",
"\n",
"The best image-net: `|nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_3x3~1|nor_conv_3x3~2|`\n",
"\n",
"## test results\n",
"\n",
"| model | cifar-10 | cifar-100 | imagenet |\n",
"| --- | --- | --- | --- |\n",
"| best of us | 94.25% [1]| 73.37% [2] | 46.20% [3]|\n",
"| best cifar-10 and cifar-100 | 94.56% [4] | 74.51% [5] | 48.60% [6] |\n",
"| best imagenet| - | - | 48.88%[7] |\n",
"\n",
"[1](outputs/specifics/FULL-|nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|-16-8/seed-0-T-11-Jul-at-20-54-29.log)\n",
"[2](outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|-16-8-cifar100/seed-0-T-12-Jul-at-21-13-34.log)\n",
"[3](outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_3x3~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_1x1~1|skip_connect~2|-16-8/seed-0-T-14-Jul-at-22-23-10.log)\n",
"[4](outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|-16-8-1/seed-0-T-13-Jul-at-11-24-18.log)\n",
"[5](outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|-16-8-cifar100/seed-0-T-13-Jul-at-11-25-07.log)\n",
"[6](outputs/specifics/FULL-nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|none~1|nor_conv_3x3~2|-16-8/seed-0-T-14-Jul-at-09-36-21.log)\n",
"[7](outputs/specifics/FULL-|nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_3x3~1|nor_conv_3x3~2|-16-8/seed-0-T-17-Jul-at-14-31-56.log)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
@ -103642,7 +104328,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.19"
"version": "3.9.16"
}
},
"nbformat": 4,

616
test_network.py Normal file
View File

@ -0,0 +1,616 @@
from nas_201_api import NASBench201API as API
import os
import os, sys, time, torch, random, argparse
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
from copy import deepcopy
from pathlib import Path
from xautodl.config_utils import load_config
from xautodl.procedures import save_checkpoint, copy_checkpoint
from xautodl.procedures import get_machine_info
from xautodl.datasets import get_datasets
from xautodl.log_utils import Logger, AverageMeter, time_string, convert_secs2time
from xautodl.models import CellStructure, CellArchitectures, get_search_spaces
import time, torch
from xautodl.procedures import prepare_seed, get_optim_scheduler
from xautodl.utils import get_model_infos, obtain_accuracy
from xautodl.config_utils import dict2config
from xautodl.log_utils import AverageMeter, time_string, convert_secs2time
from xautodl.models import get_cell_based_tiny_net
cur_path = os.path.abspath(os.path.curdir)
data_path = os.path.join(cur_path, 'NAS-Bench-201-v1_1-096897.pth')
print(f'loading data from {data_path}')
print(f'loading')
api = API(data_path)
print(f'loaded')
def find_best_index(dataset):
len = 15625
accs = []
for i in range(1, len):
results = api.query_by_index(i, dataset)
dict_items = list(results.items())
train_info = dict_items[0][1].get_train()
acc = train_info['accuracy']
accs.append((i, acc))
return max(accs, key=lambda x: x[1])
best_cifar_10_index, best_cifar_10_acc = find_best_index('cifar10')
best_cifar_100_index, best_cifar_100_acc = find_best_index('cifar100')
best_ImageNet16_index, best_ImageNet16_acc= find_best_index('ImageNet16-120')
print(f'find best cifar10 index: {best_cifar_10_index}, acc: {best_cifar_10_acc}')
print(f'find best cifar100 index: {best_cifar_100_index}, acc: {best_cifar_100_acc}')
print(f'find best ImageNet16 index: {best_ImageNet16_index}, acc: {best_ImageNet16_acc}')
from xautodl.models import get_cell_based_tiny_net
def get_network_str_by_id(id, dataset):
config = api.get_net_config(id, dataset)
return config['arch_str']
best_cifar_10_str = get_network_str_by_id(best_cifar_10_index, 'cifar10')
best_cifar_100_str = get_network_str_by_id(best_cifar_100_index, 'cifar100')
best_ImageNet16_str = get_network_str_by_id(best_ImageNet16_index, 'ImageNet16-120')
def evaluate_all_datasets(
arch, datasets, xpaths, splits, use_less, seed, arch_config, workers, logger
):
machine_info, arch_config = get_machine_info(), deepcopy(arch_config)
all_infos = {"info": machine_info}
all_dataset_keys = []
# look all the datasets
for dataset, xpath, split in zip(datasets, xpaths, splits):
# train valid data
train_data, valid_data, xshape, class_num = get_datasets(dataset, xpath, -1)
# load the configuration
if dataset == "cifar10" or dataset == "cifar100":
if use_less:
config_path = "configs/nas-benchmark/LESS.config"
else:
config_path = "configs/nas-benchmark/CIFAR.config"
split_info = load_config(
"configs/nas-benchmark/cifar-split.txt", None, None
)
elif dataset.startswith("ImageNet16"):
if use_less:
config_path = "configs/nas-benchmark/LESS.config"
else:
config_path = "configs/nas-benchmark/ImageNet-16.config"
split_info = load_config(
"configs/nas-benchmark/{:}-split.txt".format(dataset), None, None
)
else:
raise ValueError("invalid dataset : {:}".format(dataset))
config = load_config(
config_path, {"class_num": class_num, "xshape": xshape}, logger
)
# check whether use splited validation set
if bool(split):
assert dataset == "cifar10"
ValLoaders = {
"ori-test": torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
shuffle=False,
num_workers=workers,
pin_memory=True,
)
}
assert len(train_data) == len(split_info.train) + len(
split_info.valid
), "invalid length : {:} vs {:} + {:}".format(
len(train_data), len(split_info.train), len(split_info.valid)
)
train_data_v2 = deepcopy(train_data)
train_data_v2.transform = valid_data.transform
valid_data = train_data_v2
# data loader
train_loader = torch.utils.data.DataLoader(
train_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(split_info.train),
num_workers=workers,
pin_memory=True,
)
valid_loader = torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(split_info.valid),
num_workers=workers,
pin_memory=True,
)
ValLoaders["x-valid"] = valid_loader
else:
# data loader
train_loader = torch.utils.data.DataLoader(
train_data,
batch_size=config.batch_size,
shuffle=True,
num_workers=workers,
pin_memory=True,
)
valid_loader = torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
shuffle=False,
num_workers=workers,
pin_memory=True,
)
if dataset == "cifar10":
ValLoaders = {"ori-test": valid_loader}
elif dataset == "cifar100":
cifar100_splits = load_config(
"configs/nas-benchmark/cifar100-test-split.txt", None, None
)
ValLoaders = {
"ori-test": valid_loader,
"x-valid": torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(
cifar100_splits.xvalid
),
num_workers=workers,
pin_memory=True,
),
"x-test": torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(
cifar100_splits.xtest
),
num_workers=workers,
pin_memory=True,
),
}
elif dataset == "ImageNet16-120":
imagenet16_splits = load_config(
"configs/nas-benchmark/imagenet-16-120-test-split.txt", None, None
)
ValLoaders = {
"ori-test": valid_loader,
"x-valid": torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(
imagenet16_splits.xvalid
),
num_workers=workers,
pin_memory=True,
),
"x-test": torch.utils.data.DataLoader(
valid_data,
batch_size=config.batch_size,
sampler=torch.utils.data.sampler.SubsetRandomSampler(
imagenet16_splits.xtest
),
num_workers=workers,
pin_memory=True,
),
}
else:
raise ValueError("invalid dataset : {:}".format(dataset))
dataset_key = "{:}".format(dataset)
if bool(split):
dataset_key = dataset_key + "-valid"
logger.log(
"Evaluate ||||||| {:10s} ||||||| Train-Num={:}, Valid-Num={:}, Train-Loader-Num={:}, Valid-Loader-Num={:}, batch size={:}".format(
dataset_key,
len(train_data),
len(valid_data),
len(train_loader),
len(valid_loader),
config.batch_size,
)
)
logger.log(
"Evaluate ||||||| {:10s} ||||||| Config={:}".format(dataset_key, config)
)
for key, value in ValLoaders.items():
logger.log(
"Evaluate ---->>>> {:10s} with {:} batchs".format(key, len(value))
)
results = evaluate_for_seed(
arch_config, config, arch, train_loader, ValLoaders, seed, logger
)
all_infos[dataset_key] = results
all_dataset_keys.append(dataset_key)
all_infos["all_dataset_keys"] = all_dataset_keys
return all_infos
def evaluate_for_seed(
arch_config, config, arch, train_loader, valid_loaders, seed, logger
):
prepare_seed(seed) # random seed
net = get_cell_based_tiny_net(
dict2config(
{
"name": "infer.tiny",
"C": arch_config["channel"],
"N": arch_config["num_cells"],
"genotype": arch,
"num_classes": config.class_num,
},
None,
)
)
# net = TinyNetwork(arch_config['channel'], arch_config['num_cells'], arch, config.class_num)
flop, param = get_model_infos(net, config.xshape)
logger.log("Network : {:}".format(net.get_message()), False)
logger.log(
"{:} Seed-------------------------- {:} --------------------------".format(
time_string(), seed
)
)
logger.log("FLOP = {:} MB, Param = {:} MB".format(flop, param))
# train and valid
optimizer, scheduler, criterion = get_optim_scheduler(net.parameters(), config)
network, criterion = torch.nn.DataParallel(net).cuda(), criterion.cuda()
# start training
start_time, epoch_time, total_epoch = (
time.time(),
AverageMeter(),
config.epochs + config.warmup,
)
(
train_losses,
train_acc1es,
train_acc5es,
valid_losses,
valid_acc1es,
valid_acc5es,
) = ({}, {}, {}, {}, {}, {})
train_times, valid_times = {}, {}
for epoch in range(total_epoch):
scheduler.update(epoch, 0.0)
train_loss, train_acc1, train_acc5, train_tm = procedure(
train_loader, network, criterion, scheduler, optimizer, "train"
)
train_losses[epoch] = train_loss
train_acc1es[epoch] = train_acc1
train_acc5es[epoch] = train_acc5
train_times[epoch] = train_tm
with torch.no_grad():
for key, xloder in valid_loaders.items():
valid_loss, valid_acc1, valid_acc5, valid_tm = procedure(
xloder, network, criterion, None, None, "valid"
)
valid_losses["{:}@{:}".format(key, epoch)] = valid_loss
valid_acc1es["{:}@{:}".format(key, epoch)] = valid_acc1
valid_acc5es["{:}@{:}".format(key, epoch)] = valid_acc5
valid_times["{:}@{:}".format(key, epoch)] = valid_tm
# measure elapsed time
epoch_time.update(time.time() - start_time)
start_time = time.time()
need_time = "Time Left: {:}".format(
convert_secs2time(epoch_time.avg * (total_epoch - epoch - 1), True)
)
logger.log(
"{:} {:} epoch={:03d}/{:03d} :: Train [loss={:.5f}, acc@1={:.2f}%, acc@5={:.2f}%] Valid [loss={:.5f}, acc@1={:.2f}%, acc@5={:.2f}%]".format(
time_string(),
need_time,
epoch,
total_epoch,
train_loss,
train_acc1,
train_acc5,
valid_loss,
valid_acc1,
valid_acc5,
)
)
info_seed = {
"flop": flop,
"param": param,
"channel": arch_config["channel"],
"num_cells": arch_config["num_cells"],
"config": config._asdict(),
"total_epoch": total_epoch,
"train_losses": train_losses,
"train_acc1es": train_acc1es,
"train_acc5es": train_acc5es,
"train_times": train_times,
"valid_losses": valid_losses,
"valid_acc1es": valid_acc1es,
"valid_acc5es": valid_acc5es,
"valid_times": valid_times,
"net_state_dict": net.state_dict(),
"net_string": "{:}".format(net),
"finish-train": True,
}
return info_seed
def pure_evaluate(xloader, network, criterion=torch.nn.CrossEntropyLoss()):
data_time, batch_time, batch = AverageMeter(), AverageMeter(), None
losses, top1, top5 = AverageMeter(), AverageMeter(), AverageMeter()
latencies = []
network.eval()
with torch.no_grad():
end = time.time()
for i, (inputs, targets) in enumerate(xloader):
targets = targets.cuda(non_blocking=True)
inputs = inputs.cuda(non_blocking=True)
data_time.update(time.time() - end)
# forward
features, logits = network(inputs)
loss = criterion(logits, targets)
batch_time.update(time.time() - end)
if batch is None or batch == inputs.size(0):
batch = inputs.size(0)
latencies.append(batch_time.val - data_time.val)
# record loss and accuracy
prec1, prec5 = obtain_accuracy(logits.data, targets.data, topk=(1, 5))
losses.update(loss.item(), inputs.size(0))
top1.update(prec1.item(), inputs.size(0))
top5.update(prec5.item(), inputs.size(0))
end = time.time()
if len(latencies) > 2:
latencies = latencies[1:]
return losses.avg, top1.avg, top5.avg, latencies
def procedure(xloader, network, criterion, scheduler, optimizer, mode):
losses, top1, top5 = AverageMeter(), AverageMeter(), AverageMeter()
if mode == "train":
network.train()
elif mode == "valid":
network.eval()
else:
raise ValueError("The mode is not right : {:}".format(mode))
data_time, batch_time, end = AverageMeter(), AverageMeter(), time.time()
for i, (inputs, targets) in enumerate(xloader):
if mode == "train":
scheduler.update(None, 1.0 * i / len(xloader))
targets = targets.cuda(non_blocking=True)
if mode == "train":
optimizer.zero_grad()
# forward
features, logits = network(inputs)
loss = criterion(logits, targets)
# backward
if mode == "train":
loss.backward()
optimizer.step()
# record loss and accuracy
prec1, prec5 = obtain_accuracy(logits.data, targets.data, topk=(1, 5))
losses.update(loss.item(), inputs.size(0))
top1.update(prec1.item(), inputs.size(0))
top5.update(prec5.item(), inputs.size(0))
# count time
batch_time.update(time.time() - end)
end = time.time()
return losses.avg, top1.avg, top5.avg, batch_time.sum
def pure_evaluate(xloader, network, criterion=torch.nn.CrossEntropyLoss()):
data_time, batch_time, batch = AverageMeter(), AverageMeter(), None
losses, top1, top5 = AverageMeter(), AverageMeter(), AverageMeter()
latencies = []
network.eval()
with torch.no_grad():
end = time.time()
for i, (inputs, targets) in enumerate(xloader):
targets = targets.cuda(non_blocking=True)
inputs = inputs.cuda(non_blocking=True)
data_time.update(time.time() - end)
# forward
features, logits = network(inputs)
loss = criterion(logits, targets)
batch_time.update(time.time() - end)
if batch is None or batch == inputs.size(0):
batch = inputs.size(0)
latencies.append(batch_time.val - data_time.val)
# record loss and accuracy
prec1, prec5 = obtain_accuracy(logits.data, targets.data, topk=(1, 5))
losses.update(loss.item(), inputs.size(0))
top1.update(prec1.item(), inputs.size(0))
top5.update(prec5.item(), inputs.size(0))
end = time.time()
if len(latencies) > 2:
latencies = latencies[1:]
return losses.avg, top1.avg, top5.avg, latencies
def procedure(xloader, network, criterion, scheduler, optimizer, mode):
losses, top1, top5 = AverageMeter(), AverageMeter(), AverageMeter()
if mode == "train":
network.train()
elif mode == "valid":
network.eval()
else:
raise ValueError("The mode is not right : {:}".format(mode))
data_time, batch_time, end = AverageMeter(), AverageMeter(), time.time()
for i, (inputs, targets) in enumerate(xloader):
if mode == "train":
scheduler.update(None, 1.0 * i / len(xloader))
targets = targets.cuda(non_blocking=True)
if mode == "train":
optimizer.zero_grad()
# forward
features, logits = network(inputs)
loss = criterion(logits, targets)
# backward
if mode == "train":
loss.backward()
optimizer.step()
# record loss and accuracy
prec1, prec5 = obtain_accuracy(logits.data, targets.data, topk=(1, 5))
losses.update(loss.item(), inputs.size(0))
top1.update(prec1.item(), inputs.size(0))
top5.update(prec5.item(), inputs.size(0))
# count time
batch_time.update(time.time() - end)
end = time.time()
return losses.avg, top1.avg, top5.avg, batch_time.sum
def train_single_model(
save_dir, workers, datasets, xpaths, splits, use_less, seeds, model_str, arch_config
):
assert torch.cuda.is_available(), "CUDA is not available."
torch.backends.cudnn.enabled = True
torch.backends.cudnn.deterministic = True
# torch.backends.cudnn.benchmark = True
torch.set_num_threads(workers)
save_dir = (
Path(save_dir)
/ "specifics"
/ "{:}-{:}-{:}-{:}".format(
"LESS" if use_less else "FULL",
model_str,
arch_config["channel"],
arch_config["num_cells"],
)
)
logger = Logger(str(save_dir), 0, False)
print(CellArchitectures)
if model_str in CellArchitectures:
arch = CellArchitectures[model_str]
logger.log(
"The model string is found in pre-defined architecture dict : {:}".format(
model_str
)
)
else:
try:
arch = CellStructure.str2structure(model_str)
except:
raise ValueError(
"Invalid model string : {:}. It can not be found or parsed.".format(
model_str
)
)
assert arch.check_valid_op(
get_search_spaces("cell", "nas-bench-201")
), "{:} has the invalid op.".format(arch)
logger.log("Start train-evaluate {:}".format(arch.tostr()))
logger.log("arch_config : {:}".format(arch_config))
start_time, seed_time = time.time(), AverageMeter()
for _is, seed in enumerate(seeds):
logger.log(
"\nThe {:02d}/{:02d}-th seed is {:} ----------------------<.>----------------------".format(
_is, len(seeds), seed
)
)
to_save_name = save_dir / "seed-{:04d}.pth".format(seed)
if to_save_name.exists():
logger.log(
"Find the existing file {:}, directly load!".format(to_save_name)
)
checkpoint = torch.load(to_save_name)
else:
logger.log(
"Does not find the existing file {:}, train and evaluate!".format(
to_save_name
)
)
checkpoint = evaluate_all_datasets(
arch,
datasets,
xpaths,
splits,
use_less,
seed,
arch_config,
workers,
logger,
)
torch.save(checkpoint, to_save_name)
# log information
logger.log("{:}".format(checkpoint["info"]))
all_dataset_keys = checkpoint["all_dataset_keys"]
for dataset_key in all_dataset_keys:
logger.log(
"\n{:} dataset : {:} {:}".format("-" * 15, dataset_key, "-" * 15)
)
dataset_info = checkpoint[dataset_key]
# logger.log('Network ==>\n{:}'.format( dataset_info['net_string'] ))
logger.log(
"Flops = {:} MB, Params = {:} MB".format(
dataset_info["flop"], dataset_info["param"]
)
)
logger.log("config : {:}".format(dataset_info["config"]))
logger.log(
"Training State (finish) = {:}".format(dataset_info["finish-train"])
)
last_epoch = dataset_info["total_epoch"] - 1
train_acc1es, train_acc5es = (
dataset_info["train_acc1es"],
dataset_info["train_acc5es"],
)
valid_acc1es, valid_acc5es = (
dataset_info["valid_acc1es"],
dataset_info["valid_acc5es"],
)
print(dataset_info["train_acc1es"])
print(dataset_info["train_acc5es"])
print(dataset_info["valid_acc1es"])
print(dataset_info["valid_acc5es"])
logger.log(
"Last Info : Train = Acc@1 {:.2f}% Acc@5 {:.2f}% Error@1 {:.2f}%, Test = Acc@1 {:.2f}% Acc@5 {:.2f}% Error@1 {:.2f}%".format(
train_acc1es[last_epoch],
train_acc5es[last_epoch],
100 - train_acc1es[last_epoch],
valid_acc1es['ori-test@'+str(last_epoch)],
valid_acc5es['ori-test@'+str(last_epoch)],
100 - valid_acc1es['ori-test@'+str(last_epoch)],
)
)
# measure elapsed time
seed_time.update(time.time() - start_time)
start_time = time.time()
need_time = "Time Left: {:}".format(
convert_secs2time(seed_time.avg * (len(seeds) - _is - 1), True)
)
logger.log(
"\n<<<***>>> The {:02d}/{:02d}-th seed is {:} <finish> other procedures need {:}".format(
_is, len(seeds), seed, need_time
)
)
logger.close()
# |nor_conv_3x3~0|+|nor_conv_1x1~0|nor_conv_3x3~1|+|skip_connect~0|nor_conv_3x3~1|nor_conv_3x3~2|
train_strs = [best_cifar_10_str, best_cifar_100_str, best_ImageNet16_str]
train_single_model(
save_dir="./outputs",
workers=8,
datasets=["ImageNet16-120"],
xpaths="./datasets/imagenet16-120",
splits=[0, 0, 0],
use_less=False,
seeds=[777],
model_str=best_ImageNet16_str,
arch_config={"channel": 16, "num_cells": 8},)
train_single_model(
save_dir="./outputs",
workers=8,
datasets=["cifar10"],
xpaths="./datasets/cifar10",
splits=[0, 0, 0],
use_less=False,
seeds=[777],
model_str=best_cifar_10_str,
arch_config={"channel": 16, "num_cells": 8},)
train_single_model(
save_dir="./outputs",
workers=8,
datasets=["cifar100"],
xpaths="./datasets/cifar100",
splits=[0, 0, 0],
use_less=False,
seeds=[777],
model_str=best_cifar_100_str,
arch_config={"channel": 16, "num_cells": 8},)