{ "cells": [ { "metadata": {}, "cell_type": "code", "source": [ "from numpy.conftest import dtype\n", "!pip install tensorboard" ], "id": "add52c783768e27a", "outputs": [], "execution_count": null }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T11:55:23.302447Z", "start_time": "2025-06-24T11:55:21.276115Z" } }, "cell_type": "code", "source": [ "%load_ext tensorboard\n", "%tensorboard --logdir runs --host 0.0.0.0 --port 6006" ], "id": "6d148c29e2c0fbbe", "outputs": [ { "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 1 }, { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2025-06-24T11:55:30.639537Z", "start_time": "2025-06-24T11:55:23.347017Z" } }, "source": [ "from torch.utils.tensorboard import SummaryWriter\n", "import numpy as np\n", "\n", "# 创建一个SummaryWriter对象\n", "writer = SummaryWriter()\n", "\n", "for n_iter in range(100):\n", " writer.add_scalar('Loss/train', np.random.random(), n_iter)\n", " writer.add_scalar('Loss/test', np.random.random(), n_iter)\n", " writer.add_scalar('Accuracy/train', np.random.random(), n_iter)\n", " writer.add_scalar('Accuracy/test', np.random.random(), n_iter)\n", "\n", "img = np.zeros((3, 100, 100))\n", "img[0] = np.arange(0, 10000).reshape(100, 100) / 10000\n", "img[1] = np.arange(0, 10000).reshape(100, 100) / 10000\n", "\n", "writer.add_image('my_image', img, 0)\n", "writer.close()" ], "outputs": [], "execution_count": 2 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:03:25.235901Z", "start_time": "2025-06-24T12:03:25.229585Z" } }, "cell_type": "code", "source": [ "import random\n", "import numpy as np\n", "import torch\n", "from torch import nn\n", "\n", "\n", "# 模型定义\n", "class LinearModel(nn.Module):\n", " def __init__(self):\n", " super().__init__()\n", " self.weight = nn.Parameter(torch.randn(1))\n", " self.bias = nn.Parameter(torch.randn(1))\n", "\n", " def forward(self, input):\n", " return (input * self.weight) + self.bias\n", "\n", "\n", "# 数据\n", "w = 2\n", "b = 3\n", "xlim = [-10, 10]\n", "x_train = np.random.randint(xlim[0], xlim[1], size=30)\n", "y_train = [w * x + b + random.randint(0, 2) for x in x_train]" ], "id": "d369c1a6c54a96ba", "outputs": [], "execution_count": 5 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:04:12.866134Z", "start_time": "2025-06-24T12:04:07.348595Z" } }, "cell_type": "code", "source": [ "from torch.utils.tensorboard import SummaryWriter\n", "\n", "# 训练\n", "model = LinearModel()\n", "optimizer = torch.optim.SGD(model.parameters(), lr=1e-4, weight_decay=1e-4, momentum=0.9)\n", "y_train = torch.tensor(y_train, dtype=torch.float32)\n", "\n", "writer = SummaryWriter()\n", "\n", "for epoch in range(500):\n", " input = torch.from_numpy(x_train)\n", " out = model(input)\n", " loss = nn.MSELoss()(out, y_train)\n", " model.zero_grad()\n", " loss.backward()\n", " optimizer.step()\n", " # 打印损失\n", " print(f'Epoch {epoch}, Loss: {loss.item()}')\n", "\n", " # 记录损失\n", " writer.add_scalar('Loss/train', loss, epoch)" ], "id": "ca85e6948a7190a7", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_15/3398267037.py:6: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " y_train = torch.tensor(y_train, dtype=torch.float32)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 0, Loss: 47.03325271606445\n", "Epoch 1, Loss: 47.01589584350586\n", "Epoch 2, Loss: 46.98295593261719\n", "Epoch 3, Loss: 46.93598556518555\n", "Epoch 4, Loss: 46.87645721435547\n", "Epoch 5, Loss: 46.80564880371094\n", "Epoch 6, Loss: 46.724754333496094\n", "Epoch 7, Loss: 46.63483810424805\n", "Epoch 8, Loss: 46.53687286376953\n", "Epoch 9, Loss: 46.43171310424805\n", "Epoch 10, Loss: 46.32015609741211\n", "Epoch 11, Loss: 46.20289993286133\n", "Epoch 12, Loss: 46.08058166503906\n", "Epoch 13, Loss: 45.95378494262695\n", "Epoch 14, Loss: 45.8230094909668\n", "Epoch 15, Loss: 45.68872833251953\n", "Epoch 16, Loss: 45.55135726928711\n", "Epoch 17, Loss: 45.411277770996094\n", "Epoch 18, Loss: 45.26881790161133\n", "Epoch 19, Loss: 45.12428283691406\n", "Epoch 20, Loss: 44.97793960571289\n", "Epoch 21, Loss: 44.830039978027344\n", "Epoch 22, Loss: 44.68079376220703\n", "Epoch 23, Loss: 44.5303955078125\n", "Epoch 24, Loss: 44.379024505615234\n", "Epoch 25, Loss: 44.22684860229492\n", "Epoch 26, Loss: 44.07398986816406\n", "Epoch 27, Loss: 43.920589447021484\n", "Epoch 28, Loss: 43.76675033569336\n", "Epoch 29, Loss: 43.61259078979492\n", "Epoch 30, Loss: 43.45817565917969\n", "Epoch 31, Loss: 43.30360794067383\n", "Epoch 32, Loss: 43.14896774291992\n", "Epoch 33, Loss: 42.99429702758789\n", "Epoch 34, Loss: 42.83967208862305\n", "Epoch 35, Loss: 42.68513488769531\n", "Epoch 36, Loss: 42.53075408935547\n", "Epoch 37, Loss: 42.37654495239258\n", "Epoch 38, Loss: 42.22256851196289\n", "Epoch 39, Loss: 42.06884765625\n", "Epoch 40, Loss: 41.9154052734375\n", "Epoch 41, Loss: 41.76228332519531\n", "Epoch 42, Loss: 41.60950469970703\n", "Epoch 43, Loss: 41.45708465576172\n", "Epoch 44, Loss: 41.305049896240234\n", "Epoch 45, Loss: 41.15340805053711\n", "Epoch 46, Loss: 41.00218963623047\n", "Epoch 47, Loss: 40.85139083862305\n", "Epoch 48, Loss: 40.701045989990234\n", "Epoch 49, Loss: 40.551143646240234\n", "Epoch 50, Loss: 40.401710510253906\n", "Epoch 51, Loss: 40.252742767333984\n", "Epoch 52, Loss: 40.104248046875\n", "Epoch 53, Loss: 39.95624542236328\n", "Epoch 54, Loss: 39.80873107910156\n", "Epoch 55, Loss: 39.66170883178711\n", "Epoch 56, Loss: 39.515193939208984\n", "Epoch 57, Loss: 39.36917495727539\n", "Epoch 58, Loss: 39.22365951538086\n", "Epoch 59, Loss: 39.07866287231445\n", "Epoch 60, Loss: 38.93416976928711\n", "Epoch 61, Loss: 38.790199279785156\n", "Epoch 62, Loss: 38.646732330322266\n", "Epoch 63, Loss: 38.503780364990234\n", "Epoch 64, Loss: 38.36134719848633\n", "Epoch 65, Loss: 38.219425201416016\n", "Epoch 66, Loss: 38.07802200317383\n", "Epoch 67, Loss: 37.9371337890625\n", "Epoch 68, Loss: 37.79676055908203\n", "Epoch 69, Loss: 37.65690231323242\n", "Epoch 70, Loss: 37.5175666809082\n", "Epoch 71, Loss: 37.37874221801758\n", "Epoch 72, Loss: 37.24042510986328\n", "Epoch 73, Loss: 37.10261917114258\n", "Epoch 74, Loss: 36.965328216552734\n", "Epoch 75, Loss: 36.828548431396484\n", "Epoch 76, Loss: 36.69227600097656\n", "Epoch 77, Loss: 36.55651092529297\n", "Epoch 78, Loss: 36.4212532043457\n", "Epoch 79, Loss: 36.2864990234375\n", "Epoch 80, Loss: 36.15225601196289\n", "Epoch 81, Loss: 36.01850509643555\n", "Epoch 82, Loss: 35.88526153564453\n", "Epoch 83, Loss: 35.75251007080078\n", "Epoch 84, Loss: 35.620262145996094\n", "Epoch 85, Loss: 35.48851013183594\n", "Epoch 86, Loss: 35.357242584228516\n", "Epoch 87, Loss: 35.226478576660156\n", "Epoch 88, Loss: 35.0962028503418\n", "Epoch 89, Loss: 34.96641540527344\n", "Epoch 90, Loss: 34.83710861206055\n", "Epoch 91, Loss: 34.70829391479492\n", "Epoch 92, Loss: 34.5799674987793\n", "Epoch 93, Loss: 34.45211410522461\n", "Epoch 94, Loss: 34.32474899291992\n", "Epoch 95, Loss: 34.19786071777344\n", "Epoch 96, Loss: 34.071449279785156\n", "Epoch 97, Loss: 33.94551086425781\n", "Epoch 98, Loss: 33.82004928588867\n", "Epoch 99, Loss: 33.69506072998047\n", "Epoch 100, Loss: 33.5705451965332\n", "Epoch 101, Loss: 33.44648361206055\n", "Epoch 102, Loss: 33.32290267944336\n", "Epoch 103, Loss: 33.199790954589844\n", "Epoch 104, Loss: 33.07713317871094\n", "Epoch 105, Loss: 32.95493698120117\n", "Epoch 106, Loss: 32.83320236206055\n", "Epoch 107, Loss: 32.71192932128906\n", "Epoch 108, Loss: 32.59111022949219\n", "Epoch 109, Loss: 32.47074890136719\n", "Epoch 110, Loss: 32.350833892822266\n", "Epoch 111, Loss: 32.23137664794922\n", "Epoch 112, Loss: 32.112369537353516\n", "Epoch 113, Loss: 31.993806838989258\n", "Epoch 114, Loss: 31.875696182250977\n", "Epoch 115, Loss: 31.758024215698242\n", "Epoch 116, Loss: 31.64080047607422\n", "Epoch 117, Loss: 31.524015426635742\n", "Epoch 118, Loss: 31.407676696777344\n", "Epoch 119, Loss: 31.291770935058594\n", "Epoch 120, Loss: 31.17629623413086\n", "Epoch 121, Loss: 31.061262130737305\n", "Epoch 122, Loss: 30.9466609954834\n", "Epoch 123, Loss: 30.832494735717773\n", "Epoch 124, Loss: 30.718753814697266\n", "Epoch 125, Loss: 30.605443954467773\n", "Epoch 126, Loss: 30.4925594329834\n", "Epoch 127, Loss: 30.380102157592773\n", "Epoch 128, Loss: 30.268068313598633\n", "Epoch 129, Loss: 30.156457901000977\n", "Epoch 130, Loss: 30.045259475708008\n", "Epoch 131, Loss: 29.93448829650879\n", "Epoch 132, Loss: 29.82413101196289\n", "Epoch 133, Loss: 29.71419334411621\n", "Epoch 134, Loss: 29.60466766357422\n", "Epoch 135, Loss: 29.495553970336914\n", "Epoch 136, Loss: 29.38684844970703\n", "Epoch 137, Loss: 29.278554916381836\n", "Epoch 138, Loss: 29.17067527770996\n", "Epoch 139, Loss: 29.06319808959961\n", "Epoch 140, Loss: 28.956119537353516\n", "Epoch 141, Loss: 28.849451065063477\n", "Epoch 142, Loss: 28.743181228637695\n", "Epoch 143, Loss: 28.637317657470703\n", "Epoch 144, Loss: 28.53184700012207\n", "Epoch 145, Loss: 28.426776885986328\n", "Epoch 146, Loss: 28.322099685668945\n", "Epoch 147, Loss: 28.217817306518555\n", "Epoch 148, Loss: 28.11393165588379\n", "Epoch 149, Loss: 28.01043128967285\n", "Epoch 150, Loss: 27.907325744628906\n", "Epoch 151, Loss: 27.804603576660156\n", "Epoch 152, Loss: 27.702274322509766\n", "Epoch 153, Loss: 27.60032844543457\n", "Epoch 154, Loss: 27.498767852783203\n", "Epoch 155, Loss: 27.397586822509766\n", "Epoch 156, Loss: 27.296785354614258\n", "Epoch 157, Loss: 27.196372985839844\n", "Epoch 158, Loss: 27.096330642700195\n", "Epoch 159, Loss: 26.996667861938477\n", "Epoch 160, Loss: 26.89737892150879\n", "Epoch 161, Loss: 26.798465728759766\n", "Epoch 162, Loss: 26.699922561645508\n", "Epoch 163, Loss: 26.60175323486328\n", "Epoch 164, Loss: 26.503950119018555\n", "Epoch 165, Loss: 26.406524658203125\n", "Epoch 166, Loss: 26.30945587158203\n", "Epoch 167, Loss: 26.212759017944336\n", "Epoch 168, Loss: 26.116424560546875\n", "Epoch 169, Loss: 26.02045249938965\n", "Epoch 170, Loss: 25.92484474182129\n", "Epoch 171, Loss: 25.8295955657959\n", "Epoch 172, Loss: 25.734704971313477\n", "Epoch 173, Loss: 25.640172958374023\n", "Epoch 174, Loss: 25.545991897583008\n", "Epoch 175, Loss: 25.45216941833496\n", "Epoch 176, Loss: 25.35870361328125\n", "Epoch 177, Loss: 25.265588760375977\n", "Epoch 178, Loss: 25.172819137573242\n", "Epoch 179, Loss: 25.080406188964844\n", "Epoch 180, Loss: 24.98833656311035\n", "Epoch 181, Loss: 24.8966121673584\n", "Epoch 182, Loss: 24.80524253845215\n", "Epoch 183, Loss: 24.71420669555664\n", "Epoch 184, Loss: 24.62352180480957\n", "Epoch 185, Loss: 24.533170700073242\n", "Epoch 186, Loss: 24.44316864013672\n", "Epoch 187, Loss: 24.35349464416504\n", "Epoch 188, Loss: 24.264169692993164\n", "Epoch 189, Loss: 24.17517852783203\n", "Epoch 190, Loss: 24.086517333984375\n", "Epoch 191, Loss: 23.99819564819336\n", "Epoch 192, Loss: 23.910205841064453\n", "Epoch 193, Loss: 23.822547912597656\n", "Epoch 194, Loss: 23.73521614074707\n", "Epoch 195, Loss: 23.648218154907227\n", "Epoch 196, Loss: 23.56155014038086\n", "Epoch 197, Loss: 23.47519874572754\n", "Epoch 198, Loss: 23.389179229736328\n", "Epoch 199, Loss: 23.303483963012695\n", "Epoch 200, Loss: 23.218111038208008\n", "Epoch 201, Loss: 23.133058547973633\n", "Epoch 202, Loss: 23.04832649230957\n", "Epoch 203, Loss: 22.963916778564453\n", "Epoch 204, Loss: 22.879819869995117\n", "Epoch 205, Loss: 22.79604148864746\n", "Epoch 206, Loss: 22.712581634521484\n", "Epoch 207, Loss: 22.62943458557129\n", "Epoch 208, Loss: 22.546600341796875\n", "Epoch 209, Loss: 22.464082717895508\n", "Epoch 210, Loss: 22.381868362426758\n", "Epoch 211, Loss: 22.299968719482422\n", "Epoch 212, Loss: 22.218379974365234\n", "Epoch 213, Loss: 22.137088775634766\n", "Epoch 214, Loss: 22.056114196777344\n", "Epoch 215, Loss: 21.975439071655273\n", "Epoch 216, Loss: 21.895069122314453\n", "Epoch 217, Loss: 21.815000534057617\n", "Epoch 218, Loss: 21.7352352142334\n", "Epoch 219, Loss: 21.655773162841797\n", "Epoch 220, Loss: 21.57660484313965\n", "Epoch 221, Loss: 21.49774169921875\n", "Epoch 222, Loss: 21.419166564941406\n", "Epoch 223, Loss: 21.34089469909668\n", "Epoch 224, Loss: 21.262920379638672\n", "Epoch 225, Loss: 21.185232162475586\n", "Epoch 226, Loss: 21.107839584350586\n", "Epoch 227, Loss: 21.030736923217773\n", "Epoch 228, Loss: 20.953927993774414\n", "Epoch 229, Loss: 20.87740707397461\n", "Epoch 230, Loss: 20.80117416381836\n", "Epoch 231, Loss: 20.72522735595703\n", "Epoch 232, Loss: 20.649568557739258\n", "Epoch 233, Loss: 20.57419204711914\n", "Epoch 234, Loss: 20.499103546142578\n", "Epoch 235, Loss: 20.424297332763672\n", "Epoch 236, Loss: 20.349769592285156\n", "Epoch 237, Loss: 20.27552604675293\n", "Epoch 238, Loss: 20.20155906677246\n", "Epoch 239, Loss: 20.127872467041016\n", "Epoch 240, Loss: 20.05446434020996\n", "Epoch 241, Loss: 19.981334686279297\n", "Epoch 242, Loss: 19.908477783203125\n", "Epoch 243, Loss: 19.835895538330078\n", "Epoch 244, Loss: 19.76358413696289\n", "Epoch 245, Loss: 19.69154930114746\n", "Epoch 246, Loss: 19.619783401489258\n", "Epoch 247, Loss: 19.548288345336914\n", "Epoch 248, Loss: 19.47706413269043\n", "Epoch 249, Loss: 19.406105041503906\n", "Epoch 250, Loss: 19.335418701171875\n", "Epoch 251, Loss: 19.26499366760254\n", "Epoch 252, Loss: 19.194833755493164\n", "Epoch 253, Loss: 19.124942779541016\n", "Epoch 254, Loss: 19.055309295654297\n", "Epoch 255, Loss: 18.985942840576172\n", "Epoch 256, Loss: 18.91683578491211\n", "Epoch 257, Loss: 18.847990036010742\n", "Epoch 258, Loss: 18.77940559387207\n", "Epoch 259, Loss: 18.711078643798828\n", "Epoch 260, Loss: 18.64300537109375\n", "Epoch 261, Loss: 18.5751895904541\n", "Epoch 262, Loss: 18.50762939453125\n", "Epoch 263, Loss: 18.440326690673828\n", "Epoch 264, Loss: 18.373273849487305\n", "Epoch 265, Loss: 18.30647850036621\n", "Epoch 266, Loss: 18.23992919921875\n", "Epoch 267, Loss: 18.173635482788086\n", "Epoch 268, Loss: 18.107585906982422\n", "Epoch 269, Loss: 18.041791915893555\n", "Epoch 270, Loss: 17.97624397277832\n", "Epoch 271, Loss: 17.910938262939453\n", "Epoch 272, Loss: 17.84587860107422\n", "Epoch 273, Loss: 17.781070709228516\n", "Epoch 274, Loss: 17.716503143310547\n", "Epoch 275, Loss: 17.652179718017578\n", "Epoch 276, Loss: 17.58810043334961\n", "Epoch 277, Loss: 17.524261474609375\n", "Epoch 278, Loss: 17.460657119750977\n", "Epoch 279, Loss: 17.39729881286621\n", "Epoch 280, Loss: 17.33417510986328\n", "Epoch 281, Loss: 17.27129554748535\n", "Epoch 282, Loss: 17.208646774291992\n", "Epoch 283, Loss: 17.146238327026367\n", "Epoch 284, Loss: 17.08405876159668\n", "Epoch 285, Loss: 17.02212142944336\n", "Epoch 286, Loss: 16.960412979125977\n", "Epoch 287, Loss: 16.898937225341797\n", "Epoch 288, Loss: 16.837696075439453\n", "Epoch 289, Loss: 16.776681900024414\n", "Epoch 290, Loss: 16.715898513793945\n", "Epoch 291, Loss: 16.655344009399414\n", "Epoch 292, Loss: 16.595020294189453\n", "Epoch 293, Loss: 16.534921646118164\n", "Epoch 294, Loss: 16.475046157836914\n", "Epoch 295, Loss: 16.4153995513916\n", "Epoch 296, Loss: 16.35597801208496\n", "Epoch 297, Loss: 16.296781539916992\n", "Epoch 298, Loss: 16.237804412841797\n", "Epoch 299, Loss: 16.179054260253906\n", "Epoch 300, Loss: 16.12052345275879\n", "Epoch 301, Loss: 16.062211990356445\n", "Epoch 302, Loss: 16.004117965698242\n", "Epoch 303, Loss: 15.946245193481445\n", "Epoch 304, Loss: 15.888594627380371\n", "Epoch 305, Loss: 15.831155776977539\n", "Epoch 306, Loss: 15.77393627166748\n", "Epoch 307, Loss: 15.71692943572998\n", "Epoch 308, Loss: 15.660139083862305\n", "Epoch 309, Loss: 15.603562355041504\n", "Epoch 310, Loss: 15.547200202941895\n", "Epoch 311, Loss: 15.491046905517578\n", "Epoch 312, Loss: 15.43510913848877\n", "Epoch 313, Loss: 15.379379272460938\n", "Epoch 314, Loss: 15.32386302947998\n", "Epoch 315, Loss: 15.26855182647705\n", "Epoch 316, Loss: 15.213452339172363\n", "Epoch 317, Loss: 15.15855884552002\n", "Epoch 318, Loss: 15.10387134552002\n", "Epoch 319, Loss: 15.049391746520996\n", "Epoch 320, Loss: 14.995116233825684\n", "Epoch 321, Loss: 14.941041946411133\n", "Epoch 322, Loss: 14.887176513671875\n", "Epoch 323, Loss: 14.833512306213379\n", "Epoch 324, Loss: 14.780049324035645\n", "Epoch 325, Loss: 14.726792335510254\n", "Epoch 326, Loss: 14.67372989654541\n", "Epoch 327, Loss: 14.620871543884277\n", "Epoch 328, Loss: 14.568208694458008\n", "Epoch 329, Loss: 14.515746116638184\n", "Epoch 330, Loss: 14.463484764099121\n", "Epoch 331, Loss: 14.41141414642334\n", "Epoch 332, Loss: 14.35954475402832\n", "Epoch 333, Loss: 14.30786418914795\n", "Epoch 334, Loss: 14.256383895874023\n", "Epoch 335, Loss: 14.205097198486328\n", "Epoch 336, Loss: 14.154003143310547\n", "Epoch 337, Loss: 14.103100776672363\n", "Epoch 338, Loss: 14.052389144897461\n", "Epoch 339, Loss: 14.001873016357422\n", "Epoch 340, Loss: 13.951542854309082\n", "Epoch 341, Loss: 13.901403427124023\n", "Epoch 342, Loss: 13.851452827453613\n", "Epoch 343, Loss: 13.801692008972168\n", "Epoch 344, Loss: 13.752116203308105\n", "Epoch 345, Loss: 13.702729225158691\n", "Epoch 346, Loss: 13.65352725982666\n", "Epoch 347, Loss: 13.604512214660645\n", "Epoch 348, Loss: 13.555682182312012\n", "Epoch 349, Loss: 13.50702953338623\n", "Epoch 350, Loss: 13.45856761932373\n", "Epoch 351, Loss: 13.410286903381348\n", "Epoch 352, Loss: 13.362186431884766\n", "Epoch 353, Loss: 13.314266204833984\n", "Epoch 354, Loss: 13.26652717590332\n", "Epoch 355, Loss: 13.218972206115723\n", "Epoch 356, Loss: 13.171588897705078\n", "Epoch 357, Loss: 13.124390602111816\n", "Epoch 358, Loss: 13.077366828918457\n", "Epoch 359, Loss: 13.030521392822266\n", "Epoch 360, Loss: 12.983851432800293\n", "Epoch 361, Loss: 12.937359809875488\n", "Epoch 362, Loss: 12.891043663024902\n", "Epoch 363, Loss: 12.844895362854004\n", "Epoch 364, Loss: 12.798928260803223\n", "Epoch 365, Loss: 12.753133773803711\n", "Epoch 366, Loss: 12.707507133483887\n", "Epoch 367, Loss: 12.662055015563965\n", "Epoch 368, Loss: 12.616774559020996\n", "Epoch 369, Loss: 12.571664810180664\n", "Epoch 370, Loss: 12.526723861694336\n", "Epoch 371, Loss: 12.481949806213379\n", "Epoch 372, Loss: 12.437348365783691\n", "Epoch 373, Loss: 12.392916679382324\n", "Epoch 374, Loss: 12.348648071289062\n", "Epoch 375, Loss: 12.304547309875488\n", "Epoch 376, Loss: 12.260616302490234\n", "Epoch 377, Loss: 12.216845512390137\n", "Epoch 378, Loss: 12.173242568969727\n", "Epoch 379, Loss: 12.129802703857422\n", "Epoch 380, Loss: 12.086525917053223\n", "Epoch 381, Loss: 12.043412208557129\n", "Epoch 382, Loss: 12.00046443939209\n", "Epoch 383, Loss: 11.95767593383789\n", "Epoch 384, Loss: 11.91504955291748\n", "Epoch 385, Loss: 11.872584342956543\n", "Epoch 386, Loss: 11.830276489257812\n", "Epoch 387, Loss: 11.788128852844238\n", "Epoch 388, Loss: 11.74614143371582\n", "Epoch 389, Loss: 11.704310417175293\n", "Epoch 390, Loss: 11.662637710571289\n", "Epoch 391, Loss: 11.62112045288086\n", "Epoch 392, Loss: 11.57976245880127\n", "Epoch 393, Loss: 11.53856086730957\n", "Epoch 394, Loss: 11.497511863708496\n", "Epoch 395, Loss: 11.456618309020996\n", "Epoch 396, Loss: 11.415877342224121\n", "Epoch 397, Loss: 11.375290870666504\n", "Epoch 398, Loss: 11.334859848022461\n", "Epoch 399, Loss: 11.29457950592041\n", "Epoch 400, Loss: 11.254451751708984\n", "Epoch 401, Loss: 11.214471817016602\n", "Epoch 402, Loss: 11.174643516540527\n", "Epoch 403, Loss: 11.134966850280762\n", "Epoch 404, Loss: 11.095440864562988\n", "Epoch 405, Loss: 11.056061744689941\n", "Epoch 406, Loss: 11.016830444335938\n", "Epoch 407, Loss: 10.977749824523926\n", "Epoch 408, Loss: 10.938813209533691\n", "Epoch 409, Loss: 10.9000244140625\n", "Epoch 410, Loss: 10.861380577087402\n", "Epoch 411, Loss: 10.822884559631348\n", "Epoch 412, Loss: 10.78453254699707\n", "Epoch 413, Loss: 10.74632740020752\n", "Epoch 414, Loss: 10.70826244354248\n", "Epoch 415, Loss: 10.670343399047852\n", "Epoch 416, Loss: 10.63256549835205\n", "Epoch 417, Loss: 10.59493350982666\n", "Epoch 418, Loss: 10.557437896728516\n", "Epoch 419, Loss: 10.520085334777832\n", "Epoch 420, Loss: 10.482876777648926\n", "Epoch 421, Loss: 10.445805549621582\n", "Epoch 422, Loss: 10.408872604370117\n", "Epoch 423, Loss: 10.372082710266113\n", "Epoch 424, Loss: 10.335428237915039\n", "Epoch 425, Loss: 10.29891300201416\n", "Epoch 426, Loss: 10.262533187866211\n", "Epoch 427, Loss: 10.226293563842773\n", "Epoch 428, Loss: 10.190189361572266\n", "Epoch 429, Loss: 10.154221534729004\n", "Epoch 430, Loss: 10.118389129638672\n", "Epoch 431, Loss: 10.08269214630127\n", "Epoch 432, Loss: 10.04712963104248\n", "Epoch 433, Loss: 10.011701583862305\n", "Epoch 434, Loss: 9.976404190063477\n", "Epoch 435, Loss: 9.941242218017578\n", "Epoch 436, Loss: 9.906213760375977\n", "Epoch 437, Loss: 9.871312141418457\n", "Epoch 438, Loss: 9.8365478515625\n", "Epoch 439, Loss: 9.801911354064941\n", "Epoch 440, Loss: 9.767406463623047\n", "Epoch 441, Loss: 9.7330322265625\n", "Epoch 442, Loss: 9.698782920837402\n", "Epoch 443, Loss: 9.66466999053955\n", "Epoch 444, Loss: 9.630680084228516\n", "Epoch 445, Loss: 9.596821784973145\n", "Epoch 446, Loss: 9.563085556030273\n", "Epoch 447, Loss: 9.529481887817383\n", "Epoch 448, Loss: 9.496004104614258\n", "Epoch 449, Loss: 9.462651252746582\n", "Epoch 450, Loss: 9.429425239562988\n", "Epoch 451, Loss: 9.396322250366211\n", "Epoch 452, Loss: 9.363343238830566\n", "Epoch 453, Loss: 9.330492973327637\n", "Epoch 454, Loss: 9.297761917114258\n", "Epoch 455, Loss: 9.265155792236328\n", "Epoch 456, Loss: 9.232675552368164\n", "Epoch 457, Loss: 9.200313568115234\n", "Epoch 458, Loss: 9.168072700500488\n", "Epoch 459, Loss: 9.135957717895508\n", "Epoch 460, Loss: 9.103960990905762\n", "Epoch 461, Loss: 9.0720853805542\n", "Epoch 462, Loss: 9.040329933166504\n", "Epoch 463, Loss: 9.008692741394043\n", "Epoch 464, Loss: 8.977176666259766\n", "Epoch 465, Loss: 8.945779800415039\n", "Epoch 466, Loss: 8.914501190185547\n", "Epoch 467, Loss: 8.883337020874023\n", "Epoch 468, Loss: 8.852293014526367\n", "Epoch 469, Loss: 8.821365356445312\n", "Epoch 470, Loss: 8.79055404663086\n", "Epoch 471, Loss: 8.759859085083008\n", "Epoch 472, Loss: 8.729279518127441\n", "Epoch 473, Loss: 8.698817253112793\n", "Epoch 474, Loss: 8.668466567993164\n", "Epoch 475, Loss: 8.63823413848877\n", "Epoch 476, Loss: 8.608112335205078\n", "Epoch 477, Loss: 8.578104019165039\n", "Epoch 478, Loss: 8.548209190368652\n", "Epoch 479, Loss: 8.518428802490234\n", "Epoch 480, Loss: 8.488758087158203\n", "Epoch 481, Loss: 8.459199905395508\n", "Epoch 482, Loss: 8.429753303527832\n", "Epoch 483, Loss: 8.400418281555176\n", "Epoch 484, Loss: 8.371193885803223\n", "Epoch 485, Loss: 8.342079162597656\n", "Epoch 486, Loss: 8.31307315826416\n", "Epoch 487, Loss: 8.284175872802734\n", "Epoch 488, Loss: 8.255391120910645\n", "Epoch 489, Loss: 8.22671127319336\n", "Epoch 490, Loss: 8.198140144348145\n", "Epoch 491, Loss: 8.169678688049316\n", "Epoch 492, Loss: 8.141321182250977\n", "Epoch 493, Loss: 8.11307430267334\n", "Epoch 494, Loss: 8.084931373596191\n", "Epoch 495, Loss: 8.056894302368164\n", "Epoch 496, Loss: 8.028964042663574\n", "Epoch 497, Loss: 8.001137733459473\n", "Epoch 498, Loss: 7.973416805267334\n", "Epoch 499, Loss: 7.94580078125\n" ] } ], "execution_count": 7 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:05:30.351053Z", "start_time": "2025-06-24T12:05:14.172644Z" } }, "cell_type": "code", "source": "!pip install visdom", "id": "c15dae5a5c994ff1", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting visdom\r\n", " Downloading visdom-0.2.4.tar.gz (1.4 MB)\r\n", "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m1.4/1.4 MB\u001B[0m \u001B[31m3.8 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n", "\u001B[?25h Preparing metadata (setup.py) ... \u001B[?25ldone\r\n", "\u001B[?25hRequirement already satisfied: numpy>=1.8 in /opt/conda/lib/python3.10/site-packages (from visdom) (1.26.3)\r\n", "Collecting scipy (from visdom)\r\n", " Downloading scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\r\n", "Requirement already satisfied: requests in /opt/conda/lib/python3.10/site-packages (from visdom) (2.31.0)\r\n", "Requirement already satisfied: tornado in /opt/conda/lib/python3.10/site-packages (from visdom) (6.5.1)\r\n", "Requirement already satisfied: six in /opt/conda/lib/python3.10/site-packages (from visdom) (1.16.0)\r\n", "Requirement already satisfied: jsonpatch in /opt/conda/lib/python3.10/site-packages (from visdom) (1.32)\r\n", "Requirement already satisfied: websocket-client in /opt/conda/lib/python3.10/site-packages (from visdom) (1.8.0)\r\n", "Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from visdom) (3.1)\r\n", "Requirement already satisfied: pillow in /opt/conda/lib/python3.10/site-packages (from visdom) (10.2.0)\r\n", "Requirement already satisfied: jsonpointer>=1.9 in /opt/conda/lib/python3.10/site-packages (from jsonpatch->visdom) (2.1)\r\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests->visdom) (2.0.4)\r\n", "Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.10/site-packages (from requests->visdom) (3.4)\r\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.10/site-packages (from requests->visdom) (2.1.0)\r\n", "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.10/site-packages (from requests->visdom) (2024.2.2)\r\n", "Downloading scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.7 MB)\r\n", "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m37.7/37.7 MB\u001B[0m \u001B[31m6.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m\r\n", "\u001B[?25hBuilding wheels for collected packages: visdom\r\n", "\u001B[33m DEPRECATION: Building 'visdom' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'visdom'. Discussion can be found at https://github.com/pypa/pip/issues/6334\u001B[0m\u001B[33m\r\n", "\u001B[0m Building wheel for visdom (setup.py) ... \u001B[?25ldone\r\n", "\u001B[?25h Created wheel for visdom: filename=visdom-0.2.4-py3-none-any.whl size=1408194 sha256=ac4a41963386402b0b7026649cfe03640129a6763c260f6d33e0591afc354b68\r\n", " Stored in directory: /root/.cache/pip/wheels/42/29/49/5bed207bac4578e4d2c0c5fc0226bfd33a7e2953ea56356855\r\n", "Successfully built visdom\r\n", "Installing collected packages: scipy, visdom\r\n", "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m2/2\u001B[0m [visdom]\r\n", "\u001B[1A\u001B[2KSuccessfully installed scipy-1.15.3 visdom-0.2.4\r\n", "\u001B[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001B[0m\u001B[33m\r\n", "\u001B[0m" ] } ], "execution_count": 8 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:32:27.272951Z", "start_time": "2025-06-24T12:32:27.260914Z" } }, "cell_type": "code", "source": [ "import subprocess\n", "\n", "# 启动 visdom 服务\n", "subprocess.Popen([\"visdom\", \"--host\", \"0.0.0.0\"])" ], "id": "e02f8d6a2b1eb39a", "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 21 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:32:46.766514Z", "start_time": "2025-06-24T12:32:36.056568Z" } }, "cell_type": "code", "source": [ "from visdom import Visdom\n", "import numpy as np\n", "import time\n", "\n", "# 将窗口类实例化\n", "viz = Visdom()\n", "# 创建窗口并实例化\n", "viz.line([0.], [0], win='train_loss', opts=dict(title='Loss', xlabel='Epoch', ylabel='Loss'))\n", "\n", "for epoch in range(100):\n", " # 模拟损失值\n", " loss = 0.2 * np.random.random() + 1\n", "\n", " # 更新窗口\n", " viz.line([loss], [epoch], win='train_loss', update='append')\n", "\n", " # 打印损失\n", " # print(f'Epoch {epoch}, Loss: {loss}')\n", "\n", " # 模拟训练时间\n", " time.sleep(0.1)\n", "\n", "img = np.zeros((3, 100, 100))\n", "img[0] = np.arange(0, 10000).reshape(100, 100) / 10000\n", "img[1] = np.arange(0, 10000).reshape(100, 100) / 10000\n", "\n", "# 可视化图像\n", "viz.image(img, win='my_image', opts=dict(title='My Image'))" ], "id": "e25e293885967efc", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Setting up a new session...\n", "INFO:tornado.access:200 POST /env/main (::1) 0.42ms\n", "INFO:tornado.access:101 GET /vis_socket (::1) 0.52ms\n", "INFO:root:Opened visdom socket from ip: ::1\n", "INFO:tornado.access:200 POST /events (::1) 0.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 0.77ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 2.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.14ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.08ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 1.21ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 0.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /update (::1) 1.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 0.89ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.77ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.68ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.02ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.78ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.00ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.74ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 0.81ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 0.90ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 0.96ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.24ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.21ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.26ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 1.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.16ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.28ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.36ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /update (::1) 1.10ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 0.96ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 0.96ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.44ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /update (::1) 1.26ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.63ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.30ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.04ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /update (::1) 0.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.01ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.23ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.68ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /update (::1) 1.12ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.23ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 3.12ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.09ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.24ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.05ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.69ms\n", "INFO:tornado.access:200 POST /update (::1) 1.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 1.34ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.73ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.69ms\n", "INFO:tornado.access:200 POST /update (::1) 1.95ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.33ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.26ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.11ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 1.49ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.65ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.08ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.74ms\n", "INFO:tornado.access:200 POST /update (::1) 1.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.28ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /update (::1) 1.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.78ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 1.81ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.79ms\n", "INFO:tornado.access:200 POST /update (::1) 1.39ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.28ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.21ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 0.99ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 1.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /events (::1) 1.41ms\n" ] }, { "data": { "text/plain": [ "'my_image'" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 22 }, { "metadata": { "ExecuteTime": { "end_time": "2025-06-24T12:40:19.230624Z", "start_time": "2025-06-24T12:40:15.382195Z" } }, "cell_type": "code", "source": [ "# Visdom\n", "from visdom import Visdom\n", "import numpy as np\n", "\n", "# 训练\n", "model = LinearModel()\n", "optimizer = torch.optim.SGD(model.parameters(), lr=1e-4, weight_decay=1e-2, momentum=0.9)\n", "y_train = torch.tensor(y_train, dtype=torch.float32)\n", "\n", "# 实例化一个窗口\n", "viz = Visdom()\n", "# 创建窗口并实例化\n", "viz.line([0.], [0], win='train_loss', opts=dict(title='Loss', xlabel='Epoch', ylabel='Loss'))\n", "\n", "for epoch in range(500):\n", " input = torch.from_numpy(x_train)\n", " out = model(input)\n", " loss = nn.MSELoss()(out, y_train)\n", " model.zero_grad()\n", " loss.backward()\n", " optimizer.step()\n", " # 打印损失\n", " # print(f'Epoch {epoch}, Loss: {loss.item()}')\n", "\n", " # 记录损失\n", " viz.line([loss.item()], [epoch], win='train_loss', update='append')" ], "id": "de57a336ab346864", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_15/2491798258.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " y_train = torch.tensor(y_train, dtype=torch.float32)\n", "Setting up a new session...\n", "INFO:tornado.access:200 POST /env/main (::1) 0.57ms\n", "INFO:tornado.access:101 GET /vis_socket (::1) 0.57ms\n", "INFO:root:Opened visdom socket from ip: ::1\n", "INFO:tornado.access:200 POST /events (::1) 0.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.01ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.08ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.16ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.26ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.72ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.08ms\n", "INFO:tornado.access:200 POST /update (::1) 1.49ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.66ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.86ms\n", "INFO:tornado.access:200 POST /update (::1) 1.05ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.67ms\n", "INFO:tornado.access:200 POST /update (::1) 1.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 0.92ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.55ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.21ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.69ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.21ms\n", "INFO:tornado.access:200 POST /update (::1) 1.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.96ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.07ms\n", "INFO:tornado.access:200 POST /update (::1) 1.49ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.75ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.03ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.91ms\n", "INFO:tornado.access:200 POST /update (::1) 1.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.93ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.06ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.75ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.96ms\n", "INFO:tornado.access:200 POST /update (::1) 1.54ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.15ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.22ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.92ms\n", "INFO:tornado.access:200 POST /update (::1) 1.33ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.61ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.54ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 0.90ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.49ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.73ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /update (::1) 1.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.61ms\n", "INFO:tornado.access:200 POST /update (::1) 0.86ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.23ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /update (::1) 1.01ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 0.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /update (::1) 1.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /update (::1) 1.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.77ms\n", "INFO:tornado.access:200 POST /update (::1) 1.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.96ms\n", "INFO:tornado.access:200 POST /update (::1) 2.00ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.98ms\n", "INFO:tornado.access:200 POST /update (::1) 1.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /update (::1) 1.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.90ms\n", "INFO:tornado.access:200 POST /update (::1) 1.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.08ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.75ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.17ms\n", "INFO:tornado.access:200 POST /update (::1) 1.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.88ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.02ms\n", "INFO:tornado.access:200 POST /update (::1) 1.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 1.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.04ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.39ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.09ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.66ms\n", "INFO:tornado.access:200 POST /update (::1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.08ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.28ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.05ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.56ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.53ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.54ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.49ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.34ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 0.95ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.24ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.31ms\n", "INFO:tornado.access:200 POST /update (::1) 1.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.56ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.30ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.31ms\n", "INFO:tornado.access:200 POST /update (::1) 1.28ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.62ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.00ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.30ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /update (::1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 2.75ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 2.09ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.34ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.23ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.53ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.39ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.60ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 2.48ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.24ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.46ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.32ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.86ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.09ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /update (::1) 1.15ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.29ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.44ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /update (::1) 1.25ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 1.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.29ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /update (::1) 1.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 1.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.15ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.30ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 1.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.78ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.77ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 1.44ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.44ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.27ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.32ms\n", "INFO:tornado.access:200 POST /update (::1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.60ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.29ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.31ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.27ms\n", "INFO:tornado.access:200 POST /update (::1) 1.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.32ms\n", "INFO:tornado.access:200 POST /update (::1) 1.80ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.53ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /update (::1) 1.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.30ms\n", "INFO:tornado.access:200 POST /update (::1) 1.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.56ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.30ms\n", "INFO:tornado.access:200 POST /update (::1) 1.73ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /update (::1) 1.31ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.33ms\n", "INFO:tornado.access:200 POST /update (::1) 1.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.83ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 2.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.53ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 2.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 2.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.80ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.34ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 1.53ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.92ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.14ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.18ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.80ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.95ms\n", "INFO:tornado.access:200 POST /update (::1) 2.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 1.91ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /update (::1) 1.74ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.96ms\n", "INFO:tornado.access:200 POST /update (::1) 1.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 1.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 1.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.68ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.08ms\n", "INFO:tornado.access:200 POST /update (::1) 1.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.63ms\n", "INFO:tornado.access:200 POST /update (::1) 1.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 1.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.74ms\n", "INFO:tornado.access:200 POST /update (::1) 1.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.23ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 2.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 2.03ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.01ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.99ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.88ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.74ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.14ms\n", "INFO:tornado.access:200 POST /update (::1) 2.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 2.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.95ms\n", "INFO:tornado.access:200 POST /update (::1) 1.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /update (::1) 1.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 2.17ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.39ms\n", "INFO:tornado.access:200 POST /update (::1) 1.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.78ms\n", "INFO:tornado.access:200 POST /update (::1) 1.50ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.61ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /update (::1) 1.62ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 1.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.45ms\n", "INFO:tornado.access:200 POST /update (::1) 2.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.88ms\n", "INFO:tornado.access:200 POST /update (::1) 1.61ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 2.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.04ms\n", "INFO:tornado.access:200 POST /update (::1) 1.64ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 1.66ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.63ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /update (::1) 1.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.77ms\n", "INFO:tornado.access:200 POST /update (::1) 1.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 1.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 1.74ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 1.75ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.05ms\n", "INFO:tornado.access:200 POST /update (::1) 1.96ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.99ms\n", "INFO:tornado.access:200 POST /update (::1) 2.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.02ms\n", "INFO:tornado.access:200 POST /update (::1) 1.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.99ms\n", "INFO:tornado.access:200 POST /update (::1) 2.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 2.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /update (::1) 1.88ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.73ms\n", "INFO:tornado.access:200 POST /update (::1) 1.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.79ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.86ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.80ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.30ms\n", "INFO:tornado.access:200 POST /update (::1) 1.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.03ms\n", "INFO:tornado.access:200 POST /update (::1) 1.86ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.91ms\n", "INFO:tornado.access:200 POST /update (::1) 2.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.04ms\n", "INFO:tornado.access:200 POST /update (::1) 1.68ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.96ms\n", "INFO:tornado.access:200 POST /update (::1) 2.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /update (::1) 1.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.21ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.76ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 2.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.98ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.38ms\n", "INFO:tornado.access:200 POST /update (::1) 1.63ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.20ms\n", "INFO:tornado.access:200 POST /update (::1) 1.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /update (::1) 2.13ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.33ms\n", "INFO:tornado.access:200 POST /update (::1) 2.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.66ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.32ms\n", "INFO:tornado.access:200 POST /update (::1) 2.04ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.00ms\n", "INFO:tornado.access:200 POST /update (::1) 1.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 1.72ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.00ms\n", "INFO:tornado.access:200 POST /update (::1) 2.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.06ms\n", "INFO:tornado.access:200 POST /update (::1) 2.81ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.08ms\n", "INFO:tornado.access:200 POST /update (::1) 2.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.78ms\n", "INFO:tornado.access:200 POST /update (::1) 3.15ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.07ms\n", "INFO:tornado.access:200 POST /update (::1) 2.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 1.88ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.98ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.74ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.69ms\n", "INFO:tornado.access:200 POST /update (::1) 2.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.68ms\n", "INFO:tornado.access:200 POST /update (::1) 3.33ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.29ms\n", "INFO:tornado.access:200 POST /update (::1) 2.30ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.99ms\n", "INFO:tornado.access:200 POST /update (::1) 2.61ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.45ms\n", "INFO:tornado.access:200 POST /update (::1) 2.33ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /update (::1) 2.05ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.21ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.91ms\n", "INFO:tornado.access:200 POST /update (::1) 2.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 2.24ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.03ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.68ms\n", "INFO:tornado.access:200 POST /update (::1) 1.74ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /update (::1) 2.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 1.93ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.39ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.25ms\n", "INFO:tornado.access:200 POST /update (::1) 1.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.26ms\n", "INFO:tornado.access:200 POST /update (::1) 2.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.05ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.77ms\n", "INFO:tornado.access:200 POST /update (::1) 1.84ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 2.25ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 2.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.66ms\n", "INFO:tornado.access:200 POST /update (::1) 2.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /update (::1) 2.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 2.20ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.94ms\n", "INFO:tornado.access:200 POST /update (::1) 2.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 3.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 2.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /update (::1) 3.36ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.94ms\n", "INFO:tornado.access:200 POST /update (::1) 2.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.42ms\n", "INFO:tornado.access:200 POST /update (::1) 3.31ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.88ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /update (::1) 4.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.62ms\n", "INFO:tornado.access:200 POST /update (::1) 2.98ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.22ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.84ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 11.10ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.26ms\n", "INFO:tornado.access:200 POST /update (::1) 2.84ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.73ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.82ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.16ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.33ms\n", "INFO:tornado.access:200 POST /update (::1) 4.81ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 5.77ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 6.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 3.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 5.65ms\n", "INFO:tornado.access:200 POST /update (::1) 3.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 3.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.43ms\n", "INFO:tornado.access:200 POST /update (::1) 3.33ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.07ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.66ms\n", "INFO:tornado.access:200 POST /update (::1) 3.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /update (::1) 4.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.41ms\n", "INFO:tornado.access:200 POST /update (::1) 3.26ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 3.49ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.76ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.71ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 3.14ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /update (::1) 2.62ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.17ms\n", "INFO:tornado.access:200 POST /update (::1) 2.48ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.09ms\n", "INFO:tornado.access:200 POST /update (::1) 2.49ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.85ms\n", "INFO:tornado.access:200 POST /update (::1) 1.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 2.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.40ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.60ms\n", "INFO:tornado.access:200 POST /update (::1) 4.05ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /update (::1) 3.01ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 3.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.76ms\n", "INFO:tornado.access:200 POST /update (::1) 2.73ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 3.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 2.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 2.37ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /update (::1) 2.04ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 1.94ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 2.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.94ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 3.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.74ms\n", "INFO:tornado.access:200 POST /update (::1) 3.90ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /update (::1) 2.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.26ms\n", "INFO:tornado.access:200 POST /update (::1) 2.62ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.65ms\n", "INFO:tornado.access:200 POST /update (::1) 2.25ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.44ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /update (::1) 3.15ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 2.35ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /update (::1) 2.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 2.66ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /update (::1) 2.88ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.74ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.10ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.28ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.95ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.67ms\n", "INFO:tornado.access:200 POST /update (::1) 6.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.77ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.71ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.40ms\n", "INFO:tornado.access:200 POST /update (::1) 2.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.00ms\n", "INFO:tornado.access:200 POST /update (::1) 2.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.90ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.59ms\n", "INFO:tornado.access:200 POST /update (::1) 2.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 2.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 2.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.61ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.55ms\n", "INFO:tornado.access:200 POST /update (::1) 3.28ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.97ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.58ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.37ms\n", "INFO:tornado.access:200 POST /update (::1) 2.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.85ms\n", "INFO:tornado.access:200 POST /update (::1) 2.42ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.72ms\n", "INFO:tornado.access:200 POST /update (::1) 1.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.60ms\n", "INFO:tornado.access:200 POST /update (::1) 2.56ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /update (::1) 2.46ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.78ms\n", "INFO:tornado.access:200 POST /update (::1) 2.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /update (::1) 2.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.69ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.46ms\n", "INFO:tornado.access:200 POST /update (::1) 3.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /update (::1) 3.19ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /update (::1) 2.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 2.69ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /update (::1) 1.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /update (::1) 2.62ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 2.11ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.30ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.26ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 3.61ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.63ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 2.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.81ms\n", "INFO:tornado.access:200 POST /update (::1) 1.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.64ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.18ms\n", "INFO:tornado.access:200 POST /update (::1) 2.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.73ms\n", "INFO:tornado.access:200 POST /update (::1) 2.00ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.15ms\n", "INFO:tornado.access:200 POST /update (::1) 1.93ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.95ms\n", "INFO:tornado.access:200 POST /update (::1) 1.92ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.16ms\n", "INFO:tornado.access:200 POST /update (::1) 2.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.89ms\n", "INFO:tornado.access:200 POST /update (::1) 1.94ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 2.89ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.50ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.74ms\n", "INFO:tornado.access:200 POST /update (::1) 2.24ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 2.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.30ms\n", "INFO:tornado.access:200 POST /update (::1) 2.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /update (::1) 2.30ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /update (::1) 1.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /update (::1) 2.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 2.23ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 2.59ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /update (::1) 2.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.08ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 1.94ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /update (::1) 1.97ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.39ms\n", "INFO:tornado.access:200 POST /update (::1) 2.14ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /update (::1) 2.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.22ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 2.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /update (::1) 2.54ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /update (::1) 2.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.31ms\n", "INFO:tornado.access:200 POST /update (::1) 2.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.60ms\n", "INFO:tornado.access:200 POST /update (::1) 2.01ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /update (::1) 2.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.06ms\n", "INFO:tornado.access:200 POST /update (::1) 2.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.85ms\n", "INFO:tornado.access:200 POST /update (::1) 2.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /update (::1) 2.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.69ms\n", "INFO:tornado.access:200 POST /update (::1) 2.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.89ms\n", "INFO:tornado.access:200 POST /update (::1) 2.28ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.68ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.74ms\n", "INFO:tornado.access:200 POST /update (::1) 2.63ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.04ms\n", "INFO:tornado.access:200 POST /update (::1) 2.04ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.80ms\n", "INFO:tornado.access:200 POST /update (::1) 2.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.09ms\n", "INFO:tornado.access:200 POST /update (::1) 2.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.97ms\n", "INFO:tornado.access:200 POST /update (::1) 2.79ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.27ms\n", "INFO:tornado.access:200 POST /update (::1) 2.75ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.21ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.82ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 1.08ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.81ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.19ms\n", "INFO:tornado.access:200 POST /update (::1) 2.33ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.22ms\n", "INFO:tornado.access:200 POST /update (::1) 2.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.33ms\n", "INFO:tornado.access:200 POST /update (::1) 3.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.26ms\n", "INFO:tornado.access:200 POST /update (::1) 3.00ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.10ms\n", "INFO:tornado.access:200 POST /update (::1) 2.51ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.40ms\n", "INFO:tornado.access:200 POST /update (::1) 2.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 2.67ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 2.45ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.97ms\n", "INFO:tornado.access:200 POST /update (::1) 2.91ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.19ms\n", "INFO:tornado.access:200 POST /update (::1) 2.83ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.43ms\n", "INFO:tornado.access:200 POST /update (::1) 4.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.51ms\n", "INFO:tornado.access:200 POST /update (::1) 2.57ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /update (::1) 2.29ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.76ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.73ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.98ms\n", "INFO:tornado.access:200 POST /update (::1) 2.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.76ms\n", "INFO:tornado.access:200 POST /update (::1) 2.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.19ms\n", "INFO:tornado.access:200 POST /update (::1) 2.90ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.63ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.03ms\n", "INFO:tornado.access:200 POST /update (::1) 2.24ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.47ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 2.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.22ms\n", "INFO:tornado.access:200 POST /update (::1) 2.77ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 3.30ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.62ms\n", "INFO:tornado.access:200 POST /update (::1) 3.56ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 3.56ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.59ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.35ms\n", "INFO:tornado.access:200 POST /update (::1) 3.27ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.72ms\n", "INFO:tornado.access:200 POST /update (::1) 4.74ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.57ms\n", "INFO:tornado.access:200 POST /update (::1) 2.86ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.67ms\n", "INFO:tornado.access:200 POST /update (::1) 2.48ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 3.04ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.57ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.78ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 2.20ms\n", "INFO:tornado.access:200 POST /update (::1) 2.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.54ms\n", "INFO:tornado.access:200 POST /update (::1) 2.38ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /update (::1) 2.75ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.43ms\n", "INFO:tornado.access:200 POST /update (::1) 2.18ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.68ms\n", "INFO:tornado.access:200 POST /update (::1) 2.87ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.53ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 2.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.38ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.70ms\n", "INFO:tornado.access:200 POST /update (::1) 2.47ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.16ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.01ms\n", "INFO:tornado.access:200 POST /update (::1) 2.00ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.77ms\n", "INFO:tornado.access:200 POST /update (::1) 2.71ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.72ms\n", "INFO:tornado.access:200 POST /update (::1) 2.52ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /update (::1) 2.68ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.99ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.35ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.97ms\n", "INFO:tornado.access:200 POST /update (::1) 2.32ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.13ms\n", "INFO:tornado.access:200 POST /update (::1) 2.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.36ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.91ms\n", "INFO:tornado.access:200 POST /update (::1) 2.02ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.98ms\n", "INFO:tornado.access:200 POST /update (::1) 2.48ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.37ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /update (::1) 2.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.41ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /update (::1) 2.70ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.48ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.87ms\n", "INFO:tornado.access:200 POST /update (::1) 2.43ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.65ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.29ms\n", "INFO:tornado.access:200 POST /update (::1) 2.72ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.54ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.90ms\n", "INFO:tornado.access:200 POST /update (::1) 3.11ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.83ms\n", "INFO:tornado.access:200 POST /update (::1) 2.12ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.40ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.93ms\n", "INFO:tornado.access:200 POST /update (::1) 2.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.09ms\n", "INFO:tornado.access:200 POST /update (::1) 3.39ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /update (::1) 2.49ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.41ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.25ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.42ms\n", "INFO:tornado.access:200 POST /update (::1) 2.88ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.72ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.17ms\n", "INFO:tornado.access:200 POST /update (::1) 2.24ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.76ms\n", "INFO:tornado.access:200 POST /update (::1) 2.36ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.55ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.14ms\n", "INFO:tornado.access:200 POST /update (::1) 2.65ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.49ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.77ms\n", "INFO:tornado.access:200 POST /update (::1) 2.17ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.58ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.16ms\n", "INFO:tornado.access:200 POST /update (::1) 2.61ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.44ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.96ms\n", "INFO:tornado.access:200 POST /update (::1) 3.94ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.52ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.84ms\n", "INFO:tornado.access:200 POST /update (::1) 3.06ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.42ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.07ms\n", "INFO:tornado.access:200 POST /update (::1) 2.80ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.46ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.75ms\n", "INFO:tornado.access:200 POST /update (::1) 3.15ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.43ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.77ms\n", "INFO:tornado.access:200 POST /update (::1) 2.85ms\n", "INFO:tornado.access:200 POST /win_exists (::1) 0.45ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 0.82ms\n", "INFO:tornado.access:200 POST /update (::1) 2.09ms\n", "INFO:tornado.access:200 POST /env/main (172.18.0.1) 1.25ms\n" ] } ], "execution_count": 23 } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }