alen commited on
Commit
a8b27bf
·
verified ·
1 Parent(s): b3cb3c7

Upload note-tools.ipynb

Browse files
Files changed (1) hide show
  1. note-tools.ipynb +1390 -26
note-tools.ipynb CHANGED
@@ -1354,7 +1354,7 @@
1354
  },
1355
  {
1356
  "cell_type": "code",
1357
- "execution_count": 1,
1358
  "id": "004c592f",
1359
  "metadata": {},
1360
  "outputs": [],
@@ -1429,20 +1429,1399 @@
1429
  },
1430
  {
1431
  "cell_type": "code",
1432
- "execution_count": 2,
1433
  "id": "7ee45771",
1434
  "metadata": {},
1435
  "outputs": [
1436
  {
1437
- "ename": "NameError",
1438
- "evalue": "name 'data_new' is not defined",
1439
- "output_type": "error",
1440
- "traceback": [
1441
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
1442
- "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
1443
- "Cell \u001b[1;32mIn[2], line 17\u001b[0m\n\u001b[0;32m 14\u001b[0m scaler_list \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m 16\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m points \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m55\u001b[39m):\n\u001b[1;32m---> 17\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[43mdata_new\u001b[49m[data_new[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mID Vị Trí\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m==\u001b[39m points]\n\u001b[0;32m 18\u001b[0m df[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDatetime\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mto_datetime(df[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDatetime\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;28mformat\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mH:\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mM \u001b[39m\u001b[38;5;132;01m%d\u001b[39;00m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mm/\u001b[39m\u001b[38;5;124m%\u001b[39m\u001b[38;5;124mY\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 19\u001b[0m \u001b[38;5;66;03m# df.sort_values(\"Datetime\", inplace=True)\u001b[39;00m\n",
1444
- "\u001b[1;31mNameError\u001b[0m: name 'data_new' is not defined"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1445
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1446
  }
1447
  ],
1448
  "source": [
@@ -1519,7 +2898,7 @@
1519
  " train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=False)\n",
1520
  " test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False)\n",
1521
  "\n",
1522
- " epochs = 30\n",
1523
  " \n",
1524
  " for epoch in range(epochs):\n",
1525
  "\n",
@@ -2653,21 +4032,6 @@
2653
  "demo.launch(server_name=\"0.0.0.0\", server_port=7864, share=True)\n"
2654
  ]
2655
  },
2656
- {
2657
- "cell_type": "code",
2658
- "execution_count": null,
2659
- "id": "13b158b9",
2660
- "metadata": {},
2661
- "outputs": [],
2662
- "source": [
2663
- "cd aqi_app/\n",
2664
- "git init\n",
2665
- "git remote add origin https://huggingface.co/spaces/<your_username>/aqi-predictor\n",
2666
- "git add .\n",
2667
- "git commit -m \"Initial commit\"\n",
2668
- "git push origin master\n"
2669
- ]
2670
- },
2671
  {
2672
  "cell_type": "code",
2673
  "execution_count": null,
 
1354
  },
1355
  {
1356
  "cell_type": "code",
1357
+ "execution_count": 5,
1358
  "id": "004c592f",
1359
  "metadata": {},
1360
  "outputs": [],
 
1429
  },
1430
  {
1431
  "cell_type": "code",
1432
+ "execution_count": 6,
1433
  "id": "7ee45771",
1434
  "metadata": {},
1435
  "outputs": [
1436
  {
1437
+ "name": "stdout",
1438
+ "output_type": "stream",
1439
+ "text": [
1440
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1441
+ "Epoch 0, Loss: 0.0917\n",
1442
+ "Epoch 50, Loss: 0.0027\n",
1443
+ "torch.Size([493]) torch.Size([493])\n",
1444
+ "\n",
1445
+ "📈 Dự đoán PM2.5:\n",
1446
+ "Thực tế: 87.10 - Dự đoán: 81.90\n",
1447
+ "Thực tế: 87.60 - Dự đoán: 82.16\n",
1448
+ "Thực tế: 89.10 - Dự đoán: 87.36\n",
1449
+ "Thực tế: 85.00 - Dự đoán: 89.80\n",
1450
+ "Thực tế: 74.60 - Dự đoán: 83.03\n",
1451
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1452
+ "Epoch 0, Loss: 0.0832\n",
1453
+ "Epoch 50, Loss: 0.0109\n",
1454
+ "torch.Size([555]) torch.Size([555])\n",
1455
+ "\n",
1456
+ "📈 Dự đoán PM2.5:\n",
1457
+ "Thực tế: 31.30 - Dự đoán: 49.90\n",
1458
+ "Thực tế: 33.80 - Dự đoán: 55.05\n",
1459
+ "Thực tế: 30.30 - Dự đoán: 67.14\n",
1460
+ "Thực tế: 39.75 - Dự đoán: 83.83\n",
1461
+ "Thực tế: 49.20 - Dự đoán: 119.75\n",
1462
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1463
+ "Epoch 0, Loss: 0.0144\n",
1464
+ "Epoch 50, Loss: 0.0078\n",
1465
+ "torch.Size([576]) torch.Size([576])\n",
1466
+ "\n",
1467
+ "📈 Dự đoán PM2.5:\n",
1468
+ "Thực tế: 28.60 - Dự đoán: 34.15\n",
1469
+ "Thực tế: 20.40 - Dự đoán: 34.37\n",
1470
+ "Thực tế: 12.70 - Dự đoán: 33.50\n",
1471
+ "Thực tế: 19.00 - Dự đoán: 35.19\n",
1472
+ "Thực tế: 12.60 - Dự đoán: 36.14\n",
1473
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1474
+ "Epoch 0, Loss: 0.0191\n",
1475
+ "Epoch 50, Loss: 0.0261\n",
1476
+ "torch.Size([572]) torch.Size([572])\n",
1477
+ "\n",
1478
+ "📈 Dự đoán PM2.5:\n",
1479
+ "Thực tế: 97.60 - Dự đoán: 96.11\n",
1480
+ "Thực tế: 94.50 - Dự đoán: 95.53\n",
1481
+ "Thực tế: 84.10 - Dự đoán: 94.21\n",
1482
+ "Thực tế: 93.30 - Dự đoán: 93.42\n",
1483
+ "Thực tế: 92.20 - Dự đoán: 94.26\n",
1484
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1485
+ "Epoch 0, Loss: 0.0317\n",
1486
+ "Epoch 50, Loss: 0.0042\n",
1487
+ "torch.Size([565]) torch.Size([565])\n",
1488
+ "\n",
1489
+ "📈 Dự đoán PM2.5:\n",
1490
+ "Thực tế: 26.10 - Dự đoán: 22.25\n",
1491
+ "Thực tế: 26.70 - Dự đoán: 22.84\n",
1492
+ "Thực tế: 25.90 - Dự đoán: 23.31\n",
1493
+ "Thực tế: 25.90 - Dự đoán: 21.91\n",
1494
+ "Thực tế: 25.10 - Dự đoán: 22.11\n",
1495
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1496
+ "Epoch 0, Loss: 0.0039\n",
1497
+ "Epoch 50, Loss: 0.0001\n",
1498
+ "torch.Size([513]) torch.Size([513])\n",
1499
+ "\n",
1500
+ "📈 Dự đoán PM2.5:\n",
1501
+ "Thực tế: 65.10 - Dự đoán: 76.13\n",
1502
+ "Thực tế: 55.60 - Dự đoán: 64.22\n",
1503
+ "Thực tế: 72.00 - Dự đoán: 55.60\n",
1504
+ "Thực tế: 74.20 - Dự đoán: 61.71\n",
1505
+ "Thực tế: 73.30 - Dự đoán: 65.64\n",
1506
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1507
+ "Epoch 0, Loss: 0.1406\n",
1508
+ "Epoch 50, Loss: 0.0044\n",
1509
+ "torch.Size([576]) torch.Size([576])\n",
1510
+ "\n",
1511
+ "📈 Dự đoán PM2.5:\n",
1512
+ "Thực tế: 31.60 - Dự đoán: 52.48\n",
1513
+ "Thực tế: 62.20 - Dự đoán: 35.65\n",
1514
+ "Thực tế: 34.90 - Dự đoán: 39.71\n",
1515
+ "Thực tế: 5.60 - Dự đoán: 32.47\n",
1516
+ "Thực tế: 9.70 - Dự đoán: 17.29\n",
1517
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1518
+ "Epoch 0, Loss: 0.0445\n",
1519
+ "Epoch 50, Loss: 0.0223\n",
1520
+ "torch.Size([576]) torch.Size([576])\n",
1521
+ "\n",
1522
+ "📈 Dự đoán PM2.5:\n",
1523
+ "Thực tế: 23.90 - Dự đoán: 27.69\n",
1524
+ "Thực tế: 61.20 - Dự đoán: 28.08\n",
1525
+ "Thực tế: 14.20 - Dự đoán: 28.17\n",
1526
+ "Thực tế: 7.60 - Dự đoán: 27.63\n",
1527
+ "Thực tế: 12.80 - Dự đoán: 27.84\n",
1528
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1529
+ "Epoch 0, Loss: 0.0926\n",
1530
+ "Epoch 50, Loss: 0.0118\n",
1531
+ "torch.Size([571]) torch.Size([571])\n",
1532
+ "\n",
1533
+ "📈 Dự đoán PM2.5:\n",
1534
+ "Thực tế: 6.70 - Dự đoán: 9.23\n",
1535
+ "Thực tế: 4.90 - Dự đoán: 7.96\n",
1536
+ "Thực tế: 6.80 - Dự đoán: 7.40\n",
1537
+ "Thực tế: 7.30 - Dự đoán: 8.06\n",
1538
+ "Thực tế: 10.90 - Dự đoán: 8.22\n",
1539
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1540
+ "Epoch 0, Loss: 0.0567\n",
1541
+ "Epoch 50, Loss: 0.0393\n",
1542
+ "torch.Size([570]) torch.Size([570])\n",
1543
+ "\n",
1544
+ "📈 Dự đoán PM2.5:\n",
1545
+ "Thực tế: 12.40 - Dự đoán: 33.77\n",
1546
+ "Thực tế: 18.10 - Dự đoán: 32.35\n",
1547
+ "Thực tế: 21.30 - Dự đoán: 39.04\n",
1548
+ "Thực tế: 26.90 - Dự đoán: 38.88\n",
1549
+ "Thực tế: 24.50 - Dự đoán: 30.12\n",
1550
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1551
+ "Epoch 0, Loss: 0.0419\n",
1552
+ "Epoch 50, Loss: 0.0010\n",
1553
+ "torch.Size([573]) torch.Size([573])\n",
1554
+ "\n",
1555
+ "📈 Dự đoán PM2.5:\n",
1556
+ "Thực tế: 51.20 - Dự đoán: 45.55\n",
1557
+ "Thực tế: 56.30 - Dự đoán: 51.39\n",
1558
+ "Thực tế: 57.60 - Dự đoán: 52.94\n",
1559
+ "Thực tế: 58.20 - Dự đoán: 53.35\n",
1560
+ "Thực tế: 62.00 - Dự đoán: 55.96\n",
1561
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1562
+ "Epoch 0, Loss: 0.0070\n",
1563
+ "Epoch 50, Loss: 0.0113\n",
1564
+ "torch.Size([558]) torch.Size([558])\n",
1565
+ "\n",
1566
+ "📈 Dự đoán PM2.5:\n",
1567
+ "Thực tế: 94.20 - Dự đoán: 67.58\n",
1568
+ "Thực tế: 96.40 - Dự đoán: 67.64\n",
1569
+ "Thực tế: 118.20 - Dự đoán: 67.83\n",
1570
+ "Thực tế: 128.90 - Dự đoán: 67.97\n",
1571
+ "Thực tế: 130.60 - Dự đoán: 68.13\n",
1572
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1573
+ "Epoch 0, Loss: 0.0301\n",
1574
+ "Epoch 50, Loss: 0.0226\n",
1575
+ "torch.Size([575]) torch.Size([575])\n",
1576
+ "\n",
1577
+ "📈 Dự đoán PM2.5:\n",
1578
+ "Thực tế: 151.90 - Dự đoán: 104.79\n",
1579
+ "Thực tế: 154.40 - Dự đoán: 99.47\n",
1580
+ "Thực tế: 156.40 - Dự đoán: 101.35\n",
1581
+ "Thực tế: 156.70 - Dự đoán: 98.93\n",
1582
+ "Thực tế: 157.80 - Dự đoán: 98.30\n",
1583
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1584
+ "Epoch 0, Loss: 0.0039\n",
1585
+ "Epoch 50, Loss: 0.0053\n",
1586
+ "torch.Size([552]) torch.Size([552])\n",
1587
+ "\n",
1588
+ "📈 Dự đoán PM2.5:\n",
1589
+ "Thực tế: 138.80 - Dự đoán: 105.56\n",
1590
+ "Thực tế: 125.40 - Dự đoán: 111.65\n",
1591
+ "Thực tế: 91.30 - Dự đoán: 109.90\n",
1592
+ "Thực tế: 72.00 - Dự đoán: 102.37\n",
1593
+ "Thực tế: 87.30 - Dự đoán: 101.22\n",
1594
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1595
+ "Epoch 0, Loss: 0.0285\n",
1596
+ "Epoch 50, Loss: 0.0247\n",
1597
+ "torch.Size([571]) torch.Size([571])\n",
1598
+ "\n",
1599
+ "📈 Dự đoán PM2.5:\n",
1600
+ "Thực tế: 128.20 - Dự đoán: 122.81\n",
1601
+ "Thực tế: 119.70 - Dự đoán: 122.81\n",
1602
+ "Thực tế: 90.00 - Dự đoán: 122.81\n",
1603
+ "Thực tế: 86.90 - Dự đoán: 122.81\n",
1604
+ "Thực tế: 81.60 - Dự đoán: 122.81\n",
1605
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1606
+ "Epoch 0, Loss: 0.0234\n",
1607
+ "Epoch 50, Loss: 0.0141\n",
1608
+ "torch.Size([577]) torch.Size([577])\n",
1609
+ "\n",
1610
+ "📈 Dự đoán PM2.5:\n",
1611
+ "Thực tế: 151.20 - Dự đoán: 136.51\n",
1612
+ "Thực tế: 153.10 - Dự đoán: 149.85\n",
1613
+ "Thực tế: 158.80 - Dự đoán: 153.01\n",
1614
+ "Thực tế: 162.20 - Dự đoán: 168.68\n",
1615
+ "Thực tế: 161.50 - Dự đoán: 167.50\n",
1616
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1617
+ "Epoch 0, Loss: 0.0109\n",
1618
+ "Epoch 50, Loss: 0.0020\n",
1619
+ "torch.Size([574]) torch.Size([574])\n",
1620
+ "\n",
1621
+ "📈 Dự đoán PM2.5:\n",
1622
+ "Thực tế: 165.00 - Dự đoán: 172.43\n",
1623
+ "Thực tế: 153.30 - Dự đoán: 160.95\n",
1624
+ "Thực tế: 126.50 - Dự đoán: 147.86\n",
1625
+ "Thực tế: 142.40 - Dự đoán: 116.05\n",
1626
+ "Thực tế: 155.30 - Dự đoán: 150.18\n",
1627
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1628
+ "Epoch 0, Loss: 0.0188\n",
1629
+ "Epoch 50, Loss: 0.0159\n",
1630
+ "torch.Size([574]) torch.Size([574])\n",
1631
+ "\n",
1632
+ "📈 Dự đoán PM2.5:\n",
1633
+ "Thực tế: 121.60 - Dự đoán: 87.24\n",
1634
+ "Thực tế: 139.30 - Dự đoán: 97.99\n",
1635
+ "Thực tế: 158.10 - Dự đoán: 113.33\n",
1636
+ "Thực tế: 151.10 - Dự đoán: 135.36\n",
1637
+ "Thực tế: 136.10 - Dự đoán: 132.28\n",
1638
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1639
+ "Epoch 0, Loss: 0.0128\n",
1640
+ "Epoch 50, Loss: 0.0024\n",
1641
+ "torch.Size([570]) torch.Size([570])\n",
1642
+ "\n",
1643
+ "📈 Dự đoán PM2.5:\n",
1644
+ "Thực tế: 8.90 - Dự đoán: 9.05\n",
1645
+ "Thực tế: 8.70 - Dự đoán: 9.11\n",
1646
+ "Thực tế: 8.90 - Dự đoán: 9.18\n",
1647
+ "Thực tế: 9.50 - Dự đoán: 9.46\n",
1648
+ "Thực tế: 9.90 - Dự đoán: 9.54\n",
1649
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1650
+ "Epoch 0, Loss: 0.0142\n",
1651
+ "Epoch 50, Loss: 0.0107\n",
1652
+ "torch.Size([571]) torch.Size([571])\n",
1653
+ "\n",
1654
+ "📈 Dự đoán PM2.5:\n",
1655
+ "Thực tế: 12.30 - Dự đoán: 35.51\n",
1656
+ "Thực tế: 12.30 - Dự đoán: 63.01\n",
1657
+ "Thực tế: 120.10 - Dự đoán: 39.78\n",
1658
+ "Thực tế: 90.70 - Dự đoán: 33.02\n",
1659
+ "Thực tế: 102.00 - Dự đoán: 33.91\n",
1660
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1661
+ "Epoch 0, Loss: 0.0131\n",
1662
+ "Epoch 50, Loss: 0.0104\n",
1663
+ "torch.Size([555]) torch.Size([555])\n",
1664
+ "\n",
1665
+ "📈 Dự đoán PM2.5:\n",
1666
+ "Thực tế: 66.20 - Dự đoán: 62.79\n",
1667
+ "Thực tế: 61.70 - Dự đoán: 62.55\n",
1668
+ "Thực tế: 59.80 - Dự đoán: 62.31\n",
1669
+ "Thực tế: 59.50 - Dự đoán: 57.20\n",
1670
+ "Thực tế: 65.80 - Dự đoán: 55.81\n",
1671
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1672
+ "Epoch 0, Loss: 0.0758\n",
1673
+ "Epoch 50, Loss: 0.0282\n",
1674
+ "torch.Size([574]) torch.Size([574])\n",
1675
+ "\n",
1676
+ "📈 Dự đoán PM2.5:\n",
1677
+ "Thực tế: 13.10 - Dự đoán: 48.60\n",
1678
+ "Thực tế: 5.80 - Dự đoán: 31.32\n",
1679
+ "Thực tế: 8.80 - Dự đoán: 25.89\n",
1680
+ "Thực tế: 8.20 - Dự đoán: 24.66\n",
1681
+ "Thực tế: 14.60 - Dự đoán: 23.96\n",
1682
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1683
+ "Epoch 0, Loss: 0.0000\n",
1684
+ "Epoch 50, Loss: 0.0000\n",
1685
+ "torch.Size([575]) torch.Size([575])\n",
1686
+ "\n",
1687
+ "📈 Dự đoán PM2.5:\n",
1688
+ "Thực tế: 9.32 - Dự đoán: 7.49\n",
1689
+ "Thực tế: 9.54 - Dự đoán: 7.49\n",
1690
+ "Thực tế: 9.77 - Dự đoán: 7.49\n",
1691
+ "Thực tế: 10.00 - Dự đoán: 7.49\n",
1692
+ "Thực tế: 10.22 - Dự đoán: 7.49\n",
1693
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1694
+ "Epoch 0, Loss: 0.0149\n",
1695
+ "Epoch 50, Loss: 0.0263\n",
1696
+ "torch.Size([526]) torch.Size([526])\n",
1697
+ "\n",
1698
+ "📈 Dự đoán PM2.5:\n",
1699
+ "Thực tế: 63.90 - Dự đoán: 70.18\n",
1700
+ "Thực tế: 65.40 - Dự đoán: 67.89\n",
1701
+ "Thực tế: 68.70 - Dự đoán: 67.41\n",
1702
+ "Thực tế: 78.00 - Dự đoán: 63.65\n",
1703
+ "Thực tế: 77.10 - Dự đoán: 70.37\n",
1704
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1705
+ "Epoch 0, Loss: 0.0229\n",
1706
+ "Epoch 50, Loss: 0.0113\n",
1707
+ "torch.Size([573]) torch.Size([573])\n",
1708
+ "\n",
1709
+ "📈 Dự đoán PM2.5:\n",
1710
+ "Thực tế: 33.70 - Dự đoán: 30.98\n",
1711
+ "Thực tế: 30.20 - Dự đoán: 31.24\n",
1712
+ "Thực tế: 26.20 - Dự đoán: 31.75\n",
1713
+ "Thực tế: 24.90 - Dự đoán: 31.13\n",
1714
+ "Thực tế: 22.30 - Dự đoán: 30.78\n",
1715
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1716
+ "Epoch 0, Loss: 0.0009\n",
1717
+ "Epoch 50, Loss: 0.0012\n",
1718
+ "torch.Size([514]) torch.Size([514])\n",
1719
+ "\n",
1720
+ "📈 Dự đoán PM2.5:\n",
1721
+ "Thực tế: 105.90 - Dự đoán: 104.82\n",
1722
+ "Thực tế: 106.70 - Dự đoán: 105.52\n",
1723
+ "Thực tế: 116.60 - Dự đoán: 106.10\n",
1724
+ "Thực tế: 119.70 - Dự đoán: 114.36\n",
1725
+ "Thực tế: 130.30 - Dự đoán: 114.56\n",
1726
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1727
+ "Epoch 0, Loss: 0.0637\n",
1728
+ "Epoch 50, Loss: 0.0063\n",
1729
+ "torch.Size([565]) torch.Size([565])\n",
1730
+ "\n",
1731
+ "📈 Dự đoán PM2.5:\n",
1732
+ "Thực tế: 8.20 - Dự đoán: 14.52\n",
1733
+ "Thực tế: 5.00 - Dự đoán: 14.17\n",
1734
+ "Thực tế: 5.00 - Dự đoán: 14.46\n",
1735
+ "Thực tế: 6.20 - Dự đoán: 15.15\n",
1736
+ "Thực tế: 4.80 - Dự đoán: 14.99\n",
1737
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1738
+ "Epoch 0, Loss: 0.0552\n",
1739
+ "Epoch 50, Loss: 0.0178\n",
1740
+ "torch.Size([576]) torch.Size([576])\n",
1741
+ "\n",
1742
+ "📈 Dự đoán PM2.5:\n",
1743
+ "Thực tế: 17.20 - Dự đoán: 32.04\n",
1744
+ "Thực tế: 34.70 - Dự đoán: 58.76\n",
1745
+ "Thực tế: 53.30 - Dự đoán: 57.56\n",
1746
+ "Thực tế: 15.70 - Dự đoán: 33.56\n",
1747
+ "Thực tế: 22.60 - Dự đoán: 26.56\n",
1748
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1749
+ "Epoch 0, Loss: 0.0139\n",
1750
+ "Epoch 50, Loss: 0.0132\n",
1751
+ "torch.Size([572]) torch.Size([572])\n",
1752
+ "\n",
1753
+ "📈 Dự đoán PM2.5:\n",
1754
+ "Thực tế: 22.20 - Dự đoán: 62.34\n",
1755
+ "Thực tế: 18.60 - Dự đoán: 52.07\n",
1756
+ "Thực tế: 19.50 - Dự đoán: 45.60\n",
1757
+ "Thực tế: 40.70 - Dự đoán: 45.43\n",
1758
+ "Thực tế: 29.50 - Dự đoán: 45.29\n",
1759
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1760
+ "Epoch 0, Loss: 0.2210\n",
1761
+ "Epoch 50, Loss: 0.0464\n",
1762
+ "torch.Size([217]) torch.Size([217])\n",
1763
+ "\n",
1764
+ "📈 Dự đoán PM2.5:\n",
1765
+ "Thực tế: 34.00 - Dự đoán: 29.15\n",
1766
+ "Thực tế: 24.00 - Dự đoán: 31.69\n",
1767
+ "Thực tế: 24.90 - Dự đoán: 33.65\n",
1768
+ "Thực tế: 22.20 - Dự đoán: 34.56\n",
1769
+ "Thực tế: 20.50 - Dự đoán: 35.23\n",
1770
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1771
+ "Epoch 0, Loss: 0.0858\n",
1772
+ "Epoch 50, Loss: 0.0859\n",
1773
+ "torch.Size([153]) torch.Size([153])\n",
1774
+ "\n",
1775
+ "📈 Dự đoán PM2.5:\n",
1776
+ "Thực tế: 46.30 - Dự đoán: 4.20\n",
1777
+ "Thực tế: 38.80 - Dự đoán: 4.20\n",
1778
+ "Thực tế: 40.90 - Dự đoán: 4.20\n",
1779
+ "Thực tế: 45.50 - Dự đoán: 4.20\n",
1780
+ "Thực tế: 51.50 - Dự đoán: 4.20\n",
1781
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1782
+ "Epoch 0, Loss: 0.0571\n",
1783
+ "Epoch 50, Loss: 0.0582\n",
1784
+ "torch.Size([237]) torch.Size([237])\n",
1785
+ "\n",
1786
+ "📈 Dự đoán PM2.5:\n",
1787
+ "Thực tế: 0.10 - Dự đoán: 0.14\n",
1788
+ "Thực tế: 0.20 - Dự đoán: 0.14\n",
1789
+ "Thực tế: 0.10 - Dự đoán: 0.14\n",
1790
+ "Thực tế: 0.20 - Dự đoán: 0.13\n",
1791
+ "Thực tế: 0.20 - Dự đoán: 0.14\n",
1792
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1793
+ "Epoch 0, Loss: 0.0109\n",
1794
+ "Epoch 50, Loss: 0.0115\n",
1795
+ "torch.Size([224]) torch.Size([224])\n",
1796
+ "\n",
1797
+ "📈 Dự đoán PM2.5:\n",
1798
+ "Thực tế: 16.60 - Dự đoán: 4.20\n",
1799
+ "Thực tế: 13.10 - Dự đoán: 4.20\n",
1800
+ "Thực tế: 13.30 - Dự đoán: 4.20\n",
1801
+ "Thực tế: 14.60 - Dự đoán: 4.20\n",
1802
+ "Thực tế: 16.90 - Dự đoán: 4.20\n",
1803
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1804
+ "Epoch 0, Loss: 0.0892\n",
1805
+ "Epoch 50, Loss: 0.0352\n",
1806
+ "torch.Size([223]) torch.Size([223])\n",
1807
+ "\n",
1808
+ "📈 Dự đoán PM2.5:\n",
1809
+ "Thực tế: 30.80 - Dự đoán: 44.36\n",
1810
+ "Thực tế: 36.30 - Dự đoán: 44.70\n",
1811
+ "Thực tế: 34.90 - Dự đoán: 45.79\n",
1812
+ "Thực tế: 35.00 - Dự đoán: 51.84\n",
1813
+ "Thực tế: 43.90 - Dự đoán: 53.92\n",
1814
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1815
+ "Epoch 0, Loss: 0.0193\n",
1816
+ "Epoch 50, Loss: 0.0126\n",
1817
+ "torch.Size([504]) torch.Size([504])\n",
1818
+ "\n",
1819
+ "📈 Dự đoán PM2.5:\n",
1820
+ "Thực tế: 58.50 - Dự đoán: 87.48\n",
1821
+ "Thực tế: 58.70 - Dự đoán: 86.72\n",
1822
+ "Thực tế: 59.90 - Dự đoán: 84.37\n",
1823
+ "Thực tế: 61.50 - Dự đoán: 85.66\n",
1824
+ "Thực tế: 58.30 - Dự đoán: 84.42\n",
1825
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1826
+ "Epoch 0, Loss: 0.0110\n",
1827
+ "Epoch 50, Loss: 0.0139\n",
1828
+ "torch.Size([576]) torch.Size([576])\n",
1829
+ "\n",
1830
+ "📈 Dự đoán PM2.5:\n",
1831
+ "Thực tế: 134.10 - Dự đoán: 140.24\n",
1832
+ "Thực tế: 104.40 - Dự đoán: 87.21\n",
1833
+ "Thực tế: 99.20 - Dự đoán: 89.18\n",
1834
+ "Thực tế: 113.40 - Dự đoán: 115.20\n",
1835
+ "Thực tế: 104.90 - Dự đoán: 146.22\n",
1836
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1837
+ "Epoch 0, Loss: 0.0111\n",
1838
+ "Epoch 50, Loss: 0.0128\n",
1839
+ "torch.Size([571]) torch.Size([571])\n",
1840
+ "\n",
1841
+ "📈 Dự đoán PM2.5:\n",
1842
+ "Thực tế: 160.10 - Dự đoán: 135.32\n",
1843
+ "Thực tế: 154.40 - Dự đoán: 154.75\n",
1844
+ "Thực tế: 147.60 - Dự đoán: 148.75\n",
1845
+ "Thực tế: 153.10 - Dự đoán: 145.85\n",
1846
+ "Thực tế: 152.90 - Dự đoán: 152.42\n",
1847
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1848
+ "Epoch 0, Loss: 0.0089\n",
1849
+ "Epoch 50, Loss: 0.0100\n",
1850
+ "torch.Size([576]) torch.Size([576])\n",
1851
+ "\n",
1852
+ "📈 Dự đoán PM2.5:\n",
1853
+ "Thực tế: 116.50 - Dự đoán: 127.77\n",
1854
+ "Thực tế: 115.50 - Dự đoán: 112.28\n",
1855
+ "Thực tế: 103.30 - Dự đoán: 114.51\n",
1856
+ "Thực tế: 111.70 - Dự đoán: 113.00\n",
1857
+ "Thực tế: 114.30 - Dự đoán: 107.32\n",
1858
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1859
+ "Epoch 0, Loss: 0.0228\n",
1860
+ "Epoch 50, Loss: 0.0093\n",
1861
+ "torch.Size([553]) torch.Size([553])\n",
1862
+ "\n",
1863
+ "📈 Dự đoán PM2.5:\n",
1864
+ "Thực tế: 174.90 - Dự đoán: 164.70\n",
1865
+ "Thực tế: 181.50 - Dự đoán: 170.37\n",
1866
+ "Thực tế: 178.90 - Dự đoán: 177.30\n",
1867
+ "Thực tế: 181.70 - Dự đoán: 169.84\n",
1868
+ "Thực tế: 184.20 - Dự đoán: 176.20\n",
1869
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1870
+ "Epoch 0, Loss: 0.0148\n",
1871
+ "Epoch 50, Loss: 0.0131\n",
1872
+ "torch.Size([575]) torch.Size([575])\n",
1873
+ "\n",
1874
+ "📈 Dự đoán PM2.5:\n",
1875
+ "Thực tế: 121.40 - Dự đoán: 96.93\n",
1876
+ "Thực tế: 97.30 - Dự đoán: 114.75\n",
1877
+ "Thực tế: 114.30 - Dự đoán: 84.26\n",
1878
+ "Thực tế: 135.10 - Dự đoán: 112.53\n",
1879
+ "Thực tế: 120.30 - Dự đoán: 126.53\n",
1880
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1881
+ "Epoch 0, Loss: 0.0293\n",
1882
+ "Epoch 50, Loss: 0.0024\n",
1883
+ "torch.Size([572]) torch.Size([572])\n",
1884
+ "\n",
1885
+ "📈 Dự đoán PM2.5:\n",
1886
+ "Thực tế: 9.20 - Dự đoán: 21.75\n",
1887
+ "Thực tế: 9.50 - Dự đoán: 15.95\n",
1888
+ "Thực tế: 11.20 - Dự đoán: 17.31\n",
1889
+ "Thực tế: 12.00 - Dự đoán: 19.05\n",
1890
+ "Thực tế: 6.20 - Dự đoán: 19.08\n",
1891
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1892
+ "Epoch 0, Loss: 0.0115\n",
1893
+ "Epoch 50, Loss: 0.0040\n",
1894
+ "torch.Size([552]) torch.Size([552])\n",
1895
+ "\n",
1896
+ "📈 Dự đoán PM2.5:\n",
1897
+ "Thực tế: 14.40 - Dự đoán: 15.35\n",
1898
+ "Thực tế: 14.70 - Dự đoán: 15.47\n",
1899
+ "Thực tế: 14.90 - Dự đoán: 15.70\n",
1900
+ "Thực tế: 15.50 - Dự đoán: 15.72\n",
1901
+ "Thực tế: 16.70 - Dự đoán: 15.83\n",
1902
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1903
+ "Epoch 0, Loss: 0.0287\n",
1904
+ "Epoch 50, Loss: 0.0105\n",
1905
+ "torch.Size([555]) torch.Size([555])\n",
1906
+ "\n",
1907
+ "📈 Dự đoán PM2.5:\n",
1908
+ "Thực tế: 91.50 - Dự đoán: 84.25\n",
1909
+ "Thực tế: 84.40 - Dự đoán: 84.80\n",
1910
+ "Thực tế: 84.00 - Dự đoán: 84.33\n",
1911
+ "Thực tế: 73.60 - Dự đoán: 84.27\n",
1912
+ "Thực tế: 73.80 - Dự đoán: 84.16\n",
1913
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1914
+ "Epoch 0, Loss: 0.0023\n",
1915
+ "Epoch 50, Loss: 0.0020\n",
1916
+ "torch.Size([555]) torch.Size([555])\n",
1917
+ "\n",
1918
+ "📈 Dự đoán PM2.5:\n",
1919
+ "Thực tế: 34.60 - Dự đoán: 33.18\n",
1920
+ "Thực tế: 32.70 - Dự đoán: 32.96\n",
1921
+ "Thực tế: 30.30 - Dự đoán: 30.99\n",
1922
+ "Thực tế: 30.00 - Dự đoán: 28.41\n",
1923
+ "Thực tế: 27.80 - Dự đoán: 28.57\n",
1924
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1925
+ "Epoch 0, Loss: 0.0041\n",
1926
+ "Epoch 50, Loss: 0.0027\n",
1927
+ "torch.Size([518]) torch.Size([518])\n",
1928
+ "\n",
1929
+ "📈 Dự đoán PM2.5:\n",
1930
+ "Thực tế: 44.00 - Dự đoán: 38.24\n",
1931
+ "Thực tế: 42.00 - Dự đoán: 43.23\n",
1932
+ "Thực tế: 49.00 - Dự đoán: 44.68\n",
1933
+ "Thực tế: 51.50 - Dự đoán: 49.57\n",
1934
+ "Thực tế: 58.50 - Dự đoán: 52.09\n",
1935
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1936
+ "Epoch 0, Loss: 0.0025\n",
1937
+ "Epoch 50, Loss: 0.0033\n",
1938
+ "torch.Size([539]) torch.Size([539])\n",
1939
+ "\n",
1940
+ "📈 Dự đoán PM2.5:\n",
1941
+ "Thực tế: 28.90 - Dự đoán: 26.51\n",
1942
+ "Thực tế: 32.90 - Dự đoán: 28.01\n",
1943
+ "Thực tế: 41.50 - Dự đoán: 30.34\n",
1944
+ "Thực tế: 40.70 - Dự đoán: 35.74\n",
1945
+ "Thực tế: 45.00 - Dự đoán: 35.21\n",
1946
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1947
+ "Epoch 0, Loss: 0.0013\n",
1948
+ "Epoch 50, Loss: 0.0018\n",
1949
+ "torch.Size([517]) torch.Size([517])\n",
1950
+ "\n",
1951
+ "📈 Dự đoán PM2.5:\n",
1952
+ "Thực tế: 10.60 - Dự đoán: 10.79\n",
1953
+ "Thực tế: 13.20 - Dự đoán: 8.98\n",
1954
+ "Thực tế: 17.70 - Dự đoán: 11.56\n",
1955
+ "Thực tế: 17.70 - Dự đoán: 17.12\n",
1956
+ "Thực tế: 19.10 - Dự đoán: 15.47\n",
1957
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1958
+ "Epoch 0, Loss: 0.0044\n",
1959
+ "Epoch 50, Loss: 0.0009\n",
1960
+ "torch.Size([522]) torch.Size([522])\n",
1961
+ "\n",
1962
+ "📈 Dự đoán PM2.5:\n",
1963
+ "Thực tế: 24.90 - Dự đoán: 25.93\n",
1964
+ "Thực tế: 25.90 - Dự đoán: 27.41\n",
1965
+ "Thực tế: 44.90 - Dự đoán: 29.80\n",
1966
+ "Thực tế: 51.00 - Dự đoán: 51.94\n",
1967
+ "Thực tế: 54.10 - Dự đoán: 53.07\n",
1968
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1969
+ "Epoch 0, Loss: 0.0084\n",
1970
+ "Epoch 50, Loss: 0.0073\n",
1971
+ "torch.Size([512]) torch.Size([512])\n",
1972
+ "\n",
1973
+ "📈 Dự đoán PM2.5:\n",
1974
+ "Thực tế: 36.80 - Dự đoán: 35.90\n",
1975
+ "Thực tế: 41.60 - Dự đoán: 39.01\n",
1976
+ "Thực tế: 47.00 - Dự đoán: 43.35\n",
1977
+ "Thực tế: 45.20 - Dự đoán: 47.65\n",
1978
+ "Thực tế: 39.80 - Dự đoán: 44.83\n",
1979
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1980
+ "Epoch 0, Loss: 0.0128\n",
1981
+ "Epoch 50, Loss: 0.0111\n",
1982
+ "torch.Size([519]) torch.Size([519])\n",
1983
+ "\n",
1984
+ "📈 Dự đoán PM2.5:\n",
1985
+ "Thực tế: 55.00 - Dự đoán: 70.43\n",
1986
+ "Thực tế: 44.70 - Dự đoán: 65.10\n",
1987
+ "Thực tế: 61.10 - Dự đoán: 59.70\n",
1988
+ "Thực tế: 53.70 - Dự đoán: 62.19\n",
1989
+ "Thực tế: 62.20 - Dự đoán: 60.40\n",
1990
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
1991
+ "Epoch 0, Loss: 0.0063\n",
1992
+ "Epoch 50, Loss: 0.0016\n",
1993
+ "torch.Size([547]) torch.Size([547])\n",
1994
+ "\n",
1995
+ "📈 Dự đoán PM2.5:\n",
1996
+ "Thực tế: 67.80 - Dự đoán: 57.83\n",
1997
+ "Thực tế: 72.80 - Dự đoán: 57.22\n",
1998
+ "Thực tế: 66.80 - Dự đoán: 58.54\n",
1999
+ "Thực tế: 73.00 - Dự đoán: 66.25\n",
2000
+ "Thực tế: 69.90 - Dự đoán: 64.97\n",
2001
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
2002
+ "Epoch 0, Loss: 0.0884\n",
2003
+ "Epoch 50, Loss: 0.0104\n",
2004
+ "torch.Size([190]) torch.Size([190])\n",
2005
+ "\n",
2006
+ "📈 Dự đoán PM2.5:\n",
2007
+ "Thực tế: 41.60 - Dự đoán: 34.49\n",
2008
+ "Thực tế: 37.90 - Dự đoán: 36.41\n",
2009
+ "Thực tế: 30.10 - Dự đoán: 36.26\n",
2010
+ "Thực tế: 27.80 - Dự đoán: 31.88\n",
2011
+ "Thực tế: 27.60 - Dự đoán: 28.47\n",
2012
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
2013
+ "Epoch 0, Loss: 0.0405\n",
2014
+ "Epoch 50, Loss: 0.0295\n",
2015
+ "torch.Size([576]) torch.Size([576])\n",
2016
+ "\n",
2017
+ "📈 Dự đoán PM2.5:\n",
2018
+ "Thực tế: 39.30 - Dự đoán: 44.50\n",
2019
+ "Thực tế: 33.40 - Dự đoán: 42.80\n",
2020
+ "Thực tế: 22.80 - Dự đoán: 43.96\n",
2021
+ "Thực tế: 30.40 - Dự đoán: 45.36\n",
2022
+ "Thực tế: 28.00 - Dự đoán: 51.27\n",
2023
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
2024
+ "Epoch 0, Loss: 0.0200\n",
2025
+ "Epoch 50, Loss: 0.0131\n",
2026
+ "torch.Size([576]) torch.Size([576])\n",
2027
+ "\n",
2028
+ "📈 Dự đoán PM2.5:\n",
2029
+ "Thực tế: 3.80 - Dự đoán: 4.28\n",
2030
+ "Thực tế: 3.70 - Dự đoán: 4.28\n",
2031
+ "Thực tế: 3.10 - Dự đoán: 4.28\n",
2032
+ "Thực tế: 2.90 - Dự đoán: 4.28\n",
2033
+ "Thực tế: 8.20 - Dự đoán: 4.28\n",
2034
+ "['Datetime', 'AQI_PM2.5', 'Kinh độ', 'Vĩ độ', 'Tên', 'ID Vị Trí']\n",
2035
+ "Epoch 0, Loss: 0.0009\n",
2036
+ "Epoch 50, Loss: 0.0006\n",
2037
+ "torch.Size([575]) torch.Size([575])\n",
2038
+ "\n",
2039
+ "📈 Dự đoán PM2.5:\n",
2040
+ "Thực tế: 0.50 - Dự đoán: 1.89\n",
2041
+ "Thực tế: 0.50 - Dự đoán: 1.87\n",
2042
+ "Thực tế: 0.40 - Dự đoán: 1.86\n",
2043
+ "Thực tế: 0.50 - Dự đoán: 1.86\n",
2044
+ "Thực tế: 0.40 - Dự đoán: 1.87\n"
2045
  ]
2046
+ },
2047
+ {
2048
+ "data": {
2049
+ "text/plain": [
2050
+ "[LSTMModel(\n",
2051
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2052
+ " (attention): Sequential(\n",
2053
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2054
+ " (1): Tanh()\n",
2055
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2056
+ " )\n",
2057
+ " (fc): Sequential(\n",
2058
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2059
+ " (1): ReLU()\n",
2060
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2061
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2062
+ " )\n",
2063
+ " ),\n",
2064
+ " LSTMModel(\n",
2065
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2066
+ " (attention): Sequential(\n",
2067
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2068
+ " (1): Tanh()\n",
2069
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2070
+ " )\n",
2071
+ " (fc): Sequential(\n",
2072
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2073
+ " (1): ReLU()\n",
2074
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2075
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2076
+ " )\n",
2077
+ " ),\n",
2078
+ " LSTMModel(\n",
2079
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2080
+ " (attention): Sequential(\n",
2081
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2082
+ " (1): Tanh()\n",
2083
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2084
+ " )\n",
2085
+ " (fc): Sequential(\n",
2086
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2087
+ " (1): ReLU()\n",
2088
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2089
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2090
+ " )\n",
2091
+ " ),\n",
2092
+ " LSTMModel(\n",
2093
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2094
+ " (attention): Sequential(\n",
2095
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2096
+ " (1): Tanh()\n",
2097
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2098
+ " )\n",
2099
+ " (fc): Sequential(\n",
2100
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2101
+ " (1): ReLU()\n",
2102
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2103
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2104
+ " )\n",
2105
+ " ),\n",
2106
+ " LSTMModel(\n",
2107
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2108
+ " (attention): Sequential(\n",
2109
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2110
+ " (1): Tanh()\n",
2111
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2112
+ " )\n",
2113
+ " (fc): Sequential(\n",
2114
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2115
+ " (1): ReLU()\n",
2116
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2117
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2118
+ " )\n",
2119
+ " ),\n",
2120
+ " LSTMModel(\n",
2121
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2122
+ " (attention): Sequential(\n",
2123
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2124
+ " (1): Tanh()\n",
2125
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2126
+ " )\n",
2127
+ " (fc): Sequential(\n",
2128
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2129
+ " (1): ReLU()\n",
2130
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2131
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2132
+ " )\n",
2133
+ " ),\n",
2134
+ " LSTMModel(\n",
2135
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2136
+ " (attention): Sequential(\n",
2137
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2138
+ " (1): Tanh()\n",
2139
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2140
+ " )\n",
2141
+ " (fc): Sequential(\n",
2142
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2143
+ " (1): ReLU()\n",
2144
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2145
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2146
+ " )\n",
2147
+ " ),\n",
2148
+ " LSTMModel(\n",
2149
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2150
+ " (attention): Sequential(\n",
2151
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2152
+ " (1): Tanh()\n",
2153
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2154
+ " )\n",
2155
+ " (fc): Sequential(\n",
2156
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2157
+ " (1): ReLU()\n",
2158
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2159
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2160
+ " )\n",
2161
+ " ),\n",
2162
+ " LSTMModel(\n",
2163
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2164
+ " (attention): Sequential(\n",
2165
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2166
+ " (1): Tanh()\n",
2167
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2168
+ " )\n",
2169
+ " (fc): Sequential(\n",
2170
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2171
+ " (1): ReLU()\n",
2172
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2173
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2174
+ " )\n",
2175
+ " ),\n",
2176
+ " LSTMModel(\n",
2177
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2178
+ " (attention): Sequential(\n",
2179
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2180
+ " (1): Tanh()\n",
2181
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2182
+ " )\n",
2183
+ " (fc): Sequential(\n",
2184
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2185
+ " (1): ReLU()\n",
2186
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2187
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2188
+ " )\n",
2189
+ " ),\n",
2190
+ " LSTMModel(\n",
2191
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2192
+ " (attention): Sequential(\n",
2193
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2194
+ " (1): Tanh()\n",
2195
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2196
+ " )\n",
2197
+ " (fc): Sequential(\n",
2198
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2199
+ " (1): ReLU()\n",
2200
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2201
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2202
+ " )\n",
2203
+ " ),\n",
2204
+ " LSTMModel(\n",
2205
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2206
+ " (attention): Sequential(\n",
2207
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2208
+ " (1): Tanh()\n",
2209
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2210
+ " )\n",
2211
+ " (fc): Sequential(\n",
2212
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2213
+ " (1): ReLU()\n",
2214
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2215
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2216
+ " )\n",
2217
+ " ),\n",
2218
+ " LSTMModel(\n",
2219
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2220
+ " (attention): Sequential(\n",
2221
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2222
+ " (1): Tanh()\n",
2223
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2224
+ " )\n",
2225
+ " (fc): Sequential(\n",
2226
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2227
+ " (1): ReLU()\n",
2228
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2229
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2230
+ " )\n",
2231
+ " ),\n",
2232
+ " LSTMModel(\n",
2233
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2234
+ " (attention): Sequential(\n",
2235
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2236
+ " (1): Tanh()\n",
2237
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2238
+ " )\n",
2239
+ " (fc): Sequential(\n",
2240
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2241
+ " (1): ReLU()\n",
2242
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2243
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2244
+ " )\n",
2245
+ " ),\n",
2246
+ " LSTMModel(\n",
2247
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2248
+ " (attention): Sequential(\n",
2249
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2250
+ " (1): Tanh()\n",
2251
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2252
+ " )\n",
2253
+ " (fc): Sequential(\n",
2254
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2255
+ " (1): ReLU()\n",
2256
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2257
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2258
+ " )\n",
2259
+ " ),\n",
2260
+ " LSTMModel(\n",
2261
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2262
+ " (attention): Sequential(\n",
2263
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2264
+ " (1): Tanh()\n",
2265
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2266
+ " )\n",
2267
+ " (fc): Sequential(\n",
2268
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2269
+ " (1): ReLU()\n",
2270
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2271
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2272
+ " )\n",
2273
+ " ),\n",
2274
+ " LSTMModel(\n",
2275
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2276
+ " (attention): Sequential(\n",
2277
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2278
+ " (1): Tanh()\n",
2279
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2280
+ " )\n",
2281
+ " (fc): Sequential(\n",
2282
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2283
+ " (1): ReLU()\n",
2284
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2285
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2286
+ " )\n",
2287
+ " ),\n",
2288
+ " LSTMModel(\n",
2289
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2290
+ " (attention): Sequential(\n",
2291
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2292
+ " (1): Tanh()\n",
2293
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2294
+ " )\n",
2295
+ " (fc): Sequential(\n",
2296
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2297
+ " (1): ReLU()\n",
2298
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2299
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2300
+ " )\n",
2301
+ " ),\n",
2302
+ " LSTMModel(\n",
2303
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2304
+ " (attention): Sequential(\n",
2305
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2306
+ " (1): Tanh()\n",
2307
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2308
+ " )\n",
2309
+ " (fc): Sequential(\n",
2310
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2311
+ " (1): ReLU()\n",
2312
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2313
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2314
+ " )\n",
2315
+ " ),\n",
2316
+ " LSTMModel(\n",
2317
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2318
+ " (attention): Sequential(\n",
2319
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2320
+ " (1): Tanh()\n",
2321
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2322
+ " )\n",
2323
+ " (fc): Sequential(\n",
2324
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2325
+ " (1): ReLU()\n",
2326
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2327
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2328
+ " )\n",
2329
+ " ),\n",
2330
+ " LSTMModel(\n",
2331
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2332
+ " (attention): Sequential(\n",
2333
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2334
+ " (1): Tanh()\n",
2335
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2336
+ " )\n",
2337
+ " (fc): Sequential(\n",
2338
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2339
+ " (1): ReLU()\n",
2340
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2341
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2342
+ " )\n",
2343
+ " ),\n",
2344
+ " LSTMModel(\n",
2345
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2346
+ " (attention): Sequential(\n",
2347
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2348
+ " (1): Tanh()\n",
2349
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2350
+ " )\n",
2351
+ " (fc): Sequential(\n",
2352
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2353
+ " (1): ReLU()\n",
2354
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2355
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2356
+ " )\n",
2357
+ " ),\n",
2358
+ " LSTMModel(\n",
2359
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2360
+ " (attention): Sequential(\n",
2361
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2362
+ " (1): Tanh()\n",
2363
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2364
+ " )\n",
2365
+ " (fc): Sequential(\n",
2366
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2367
+ " (1): ReLU()\n",
2368
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2369
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2370
+ " )\n",
2371
+ " ),\n",
2372
+ " LSTMModel(\n",
2373
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2374
+ " (attention): Sequential(\n",
2375
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2376
+ " (1): Tanh()\n",
2377
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2378
+ " )\n",
2379
+ " (fc): Sequential(\n",
2380
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2381
+ " (1): ReLU()\n",
2382
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2383
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2384
+ " )\n",
2385
+ " ),\n",
2386
+ " LSTMModel(\n",
2387
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2388
+ " (attention): Sequential(\n",
2389
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2390
+ " (1): Tanh()\n",
2391
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2392
+ " )\n",
2393
+ " (fc): Sequential(\n",
2394
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2395
+ " (1): ReLU()\n",
2396
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2397
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2398
+ " )\n",
2399
+ " ),\n",
2400
+ " LSTMModel(\n",
2401
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2402
+ " (attention): Sequential(\n",
2403
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2404
+ " (1): Tanh()\n",
2405
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2406
+ " )\n",
2407
+ " (fc): Sequential(\n",
2408
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2409
+ " (1): ReLU()\n",
2410
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2411
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2412
+ " )\n",
2413
+ " ),\n",
2414
+ " LSTMModel(\n",
2415
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2416
+ " (attention): Sequential(\n",
2417
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2418
+ " (1): Tanh()\n",
2419
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2420
+ " )\n",
2421
+ " (fc): Sequential(\n",
2422
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2423
+ " (1): ReLU()\n",
2424
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2425
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2426
+ " )\n",
2427
+ " ),\n",
2428
+ " LSTMModel(\n",
2429
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2430
+ " (attention): Sequential(\n",
2431
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2432
+ " (1): Tanh()\n",
2433
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2434
+ " )\n",
2435
+ " (fc): Sequential(\n",
2436
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2437
+ " (1): ReLU()\n",
2438
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2439
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2440
+ " )\n",
2441
+ " ),\n",
2442
+ " LSTMModel(\n",
2443
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2444
+ " (attention): Sequential(\n",
2445
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2446
+ " (1): Tanh()\n",
2447
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2448
+ " )\n",
2449
+ " (fc): Sequential(\n",
2450
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2451
+ " (1): ReLU()\n",
2452
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2453
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2454
+ " )\n",
2455
+ " ),\n",
2456
+ " LSTMModel(\n",
2457
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2458
+ " (attention): Sequential(\n",
2459
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2460
+ " (1): Tanh()\n",
2461
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2462
+ " )\n",
2463
+ " (fc): Sequential(\n",
2464
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2465
+ " (1): ReLU()\n",
2466
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2467
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2468
+ " )\n",
2469
+ " ),\n",
2470
+ " LSTMModel(\n",
2471
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2472
+ " (attention): Sequential(\n",
2473
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2474
+ " (1): Tanh()\n",
2475
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2476
+ " )\n",
2477
+ " (fc): Sequential(\n",
2478
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2479
+ " (1): ReLU()\n",
2480
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2481
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2482
+ " )\n",
2483
+ " ),\n",
2484
+ " LSTMModel(\n",
2485
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2486
+ " (attention): Sequential(\n",
2487
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2488
+ " (1): Tanh()\n",
2489
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2490
+ " )\n",
2491
+ " (fc): Sequential(\n",
2492
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2493
+ " (1): ReLU()\n",
2494
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2495
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2496
+ " )\n",
2497
+ " ),\n",
2498
+ " LSTMModel(\n",
2499
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2500
+ " (attention): Sequential(\n",
2501
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2502
+ " (1): Tanh()\n",
2503
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2504
+ " )\n",
2505
+ " (fc): Sequential(\n",
2506
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2507
+ " (1): ReLU()\n",
2508
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2509
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2510
+ " )\n",
2511
+ " ),\n",
2512
+ " LSTMModel(\n",
2513
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2514
+ " (attention): Sequential(\n",
2515
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2516
+ " (1): Tanh()\n",
2517
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2518
+ " )\n",
2519
+ " (fc): Sequential(\n",
2520
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2521
+ " (1): ReLU()\n",
2522
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2523
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2524
+ " )\n",
2525
+ " ),\n",
2526
+ " LSTMModel(\n",
2527
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2528
+ " (attention): Sequential(\n",
2529
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2530
+ " (1): Tanh()\n",
2531
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2532
+ " )\n",
2533
+ " (fc): Sequential(\n",
2534
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2535
+ " (1): ReLU()\n",
2536
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2537
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2538
+ " )\n",
2539
+ " ),\n",
2540
+ " LSTMModel(\n",
2541
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2542
+ " (attention): Sequential(\n",
2543
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2544
+ " (1): Tanh()\n",
2545
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2546
+ " )\n",
2547
+ " (fc): Sequential(\n",
2548
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2549
+ " (1): ReLU()\n",
2550
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2551
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2552
+ " )\n",
2553
+ " ),\n",
2554
+ " LSTMModel(\n",
2555
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2556
+ " (attention): Sequential(\n",
2557
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2558
+ " (1): Tanh()\n",
2559
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2560
+ " )\n",
2561
+ " (fc): Sequential(\n",
2562
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2563
+ " (1): ReLU()\n",
2564
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2565
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2566
+ " )\n",
2567
+ " ),\n",
2568
+ " LSTMModel(\n",
2569
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2570
+ " (attention): Sequential(\n",
2571
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2572
+ " (1): Tanh()\n",
2573
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2574
+ " )\n",
2575
+ " (fc): Sequential(\n",
2576
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2577
+ " (1): ReLU()\n",
2578
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2579
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2580
+ " )\n",
2581
+ " ),\n",
2582
+ " LSTMModel(\n",
2583
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2584
+ " (attention): Sequential(\n",
2585
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2586
+ " (1): Tanh()\n",
2587
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2588
+ " )\n",
2589
+ " (fc): Sequential(\n",
2590
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2591
+ " (1): ReLU()\n",
2592
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2593
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2594
+ " )\n",
2595
+ " ),\n",
2596
+ " LSTMModel(\n",
2597
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2598
+ " (attention): Sequential(\n",
2599
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2600
+ " (1): Tanh()\n",
2601
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2602
+ " )\n",
2603
+ " (fc): Sequential(\n",
2604
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2605
+ " (1): ReLU()\n",
2606
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2607
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2608
+ " )\n",
2609
+ " ),\n",
2610
+ " LSTMModel(\n",
2611
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2612
+ " (attention): Sequential(\n",
2613
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2614
+ " (1): Tanh()\n",
2615
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2616
+ " )\n",
2617
+ " (fc): Sequential(\n",
2618
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2619
+ " (1): ReLU()\n",
2620
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2621
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2622
+ " )\n",
2623
+ " ),\n",
2624
+ " LSTMModel(\n",
2625
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2626
+ " (attention): Sequential(\n",
2627
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2628
+ " (1): Tanh()\n",
2629
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2630
+ " )\n",
2631
+ " (fc): Sequential(\n",
2632
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2633
+ " (1): ReLU()\n",
2634
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2635
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2636
+ " )\n",
2637
+ " ),\n",
2638
+ " LSTMModel(\n",
2639
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2640
+ " (attention): Sequential(\n",
2641
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2642
+ " (1): Tanh()\n",
2643
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2644
+ " )\n",
2645
+ " (fc): Sequential(\n",
2646
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2647
+ " (1): ReLU()\n",
2648
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2649
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2650
+ " )\n",
2651
+ " ),\n",
2652
+ " LSTMModel(\n",
2653
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2654
+ " (attention): Sequential(\n",
2655
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2656
+ " (1): Tanh()\n",
2657
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2658
+ " )\n",
2659
+ " (fc): Sequential(\n",
2660
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2661
+ " (1): ReLU()\n",
2662
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2663
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2664
+ " )\n",
2665
+ " ),\n",
2666
+ " LSTMModel(\n",
2667
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2668
+ " (attention): Sequential(\n",
2669
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2670
+ " (1): Tanh()\n",
2671
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2672
+ " )\n",
2673
+ " (fc): Sequential(\n",
2674
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2675
+ " (1): ReLU()\n",
2676
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2677
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2678
+ " )\n",
2679
+ " ),\n",
2680
+ " LSTMModel(\n",
2681
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2682
+ " (attention): Sequential(\n",
2683
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2684
+ " (1): Tanh()\n",
2685
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2686
+ " )\n",
2687
+ " (fc): Sequential(\n",
2688
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2689
+ " (1): ReLU()\n",
2690
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2691
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2692
+ " )\n",
2693
+ " ),\n",
2694
+ " LSTMModel(\n",
2695
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2696
+ " (attention): Sequential(\n",
2697
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2698
+ " (1): Tanh()\n",
2699
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2700
+ " )\n",
2701
+ " (fc): Sequential(\n",
2702
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2703
+ " (1): ReLU()\n",
2704
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2705
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2706
+ " )\n",
2707
+ " ),\n",
2708
+ " LSTMModel(\n",
2709
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2710
+ " (attention): Sequential(\n",
2711
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2712
+ " (1): Tanh()\n",
2713
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2714
+ " )\n",
2715
+ " (fc): Sequential(\n",
2716
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2717
+ " (1): ReLU()\n",
2718
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2719
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2720
+ " )\n",
2721
+ " ),\n",
2722
+ " LSTMModel(\n",
2723
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2724
+ " (attention): Sequential(\n",
2725
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2726
+ " (1): Tanh()\n",
2727
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2728
+ " )\n",
2729
+ " (fc): Sequential(\n",
2730
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2731
+ " (1): ReLU()\n",
2732
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2733
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2734
+ " )\n",
2735
+ " ),\n",
2736
+ " LSTMModel(\n",
2737
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2738
+ " (attention): Sequential(\n",
2739
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2740
+ " (1): Tanh()\n",
2741
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2742
+ " )\n",
2743
+ " (fc): Sequential(\n",
2744
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2745
+ " (1): ReLU()\n",
2746
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2747
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2748
+ " )\n",
2749
+ " ),\n",
2750
+ " LSTMModel(\n",
2751
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2752
+ " (attention): Sequential(\n",
2753
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2754
+ " (1): Tanh()\n",
2755
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2756
+ " )\n",
2757
+ " (fc): Sequential(\n",
2758
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2759
+ " (1): ReLU()\n",
2760
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2761
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2762
+ " )\n",
2763
+ " ),\n",
2764
+ " LSTMModel(\n",
2765
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2766
+ " (attention): Sequential(\n",
2767
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2768
+ " (1): Tanh()\n",
2769
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2770
+ " )\n",
2771
+ " (fc): Sequential(\n",
2772
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2773
+ " (1): ReLU()\n",
2774
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2775
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2776
+ " )\n",
2777
+ " ),\n",
2778
+ " LSTMModel(\n",
2779
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2780
+ " (attention): Sequential(\n",
2781
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2782
+ " (1): Tanh()\n",
2783
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2784
+ " )\n",
2785
+ " (fc): Sequential(\n",
2786
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2787
+ " (1): ReLU()\n",
2788
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2789
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2790
+ " )\n",
2791
+ " ),\n",
2792
+ " LSTMModel(\n",
2793
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2794
+ " (attention): Sequential(\n",
2795
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2796
+ " (1): Tanh()\n",
2797
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2798
+ " )\n",
2799
+ " (fc): Sequential(\n",
2800
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2801
+ " (1): ReLU()\n",
2802
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2803
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2804
+ " )\n",
2805
+ " ),\n",
2806
+ " LSTMModel(\n",
2807
+ " (lstm): LSTM(3, 64, num_layers=2, batch_first=True, dropout=0.2)\n",
2808
+ " (attention): Sequential(\n",
2809
+ " (0): Linear(in_features=64, out_features=64, bias=True)\n",
2810
+ " (1): Tanh()\n",
2811
+ " (2): Linear(in_features=64, out_features=1, bias=False)\n",
2812
+ " )\n",
2813
+ " (fc): Sequential(\n",
2814
+ " (0): Linear(in_features=64, out_features=32, bias=True)\n",
2815
+ " (1): ReLU()\n",
2816
+ " (2): Linear(in_features=32, out_features=1, bias=True)\n",
2817
+ " (3): Softplus(beta=1.0, threshold=20.0)\n",
2818
+ " )\n",
2819
+ " )]"
2820
+ ]
2821
+ },
2822
+ "execution_count": 6,
2823
+ "metadata": {},
2824
+ "output_type": "execute_result"
2825
  }
2826
  ],
2827
  "source": [
 
2898
  " train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=False)\n",
2899
  " test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False)\n",
2900
  "\n",
2901
+ " epochs = 100\n",
2902
  " \n",
2903
  " for epoch in range(epochs):\n",
2904
  "\n",
 
4032
  "demo.launch(server_name=\"0.0.0.0\", server_port=7864, share=True)\n"
4033
  ]
4034
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4035
  {
4036
  "cell_type": "code",
4037
  "execution_count": null,