Forráskód Böngészése

autoencoder - proper KDE

Felix Kleinsteuber 3 éve
szülő
commit
5e5c0018c7

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 21 - 27
approach4_autoencoder.ipynb


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 137
approach4_autoencoder2.ipynb


+ 1030 - 8
check_csv.ipynb

@@ -2,15 +2,13 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "The autoreload extension is already loaded. To reload it, use:\n",
-      "  %reload_ext autoreload\n",
       "Found 32 sessions\n"
      ]
     }
@@ -31,7 +29,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -43,7 +41,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -107,7 +105,7 @@
     "                images = session.get_motion_images_from_date(last_date)\n",
     "\n",
     "                if len(images) < last_date_occurences:\n",
-    "                    less_images += last_date_occurences\n",
+    "                    less_found += last_date_occurences\n",
     "                elif len(images) > last_date_occurences:\n",
     "                    ambiguous += last_date_occurences\n",
     "                else:\n",
@@ -119,7 +117,7 @@
     "                last_date_occurences = 1\n",
     "print(f\"Successfully found {successful} images\")\n",
     "print(f\"Skipped {skipped} images because session was not found\")\n",
-    "print(f\"For {not_found} session dates less images were found than specified (inconsistency)\")\n",
+    "print(f\"For {less_found} session dates less images were found than specified (inconsistency)\")\n",
     "print(f\"For {ambiguous} session dates more images were found than specified (ambiguous)\")\n"
    ]
   },
@@ -130,7 +128,1031 @@
    "outputs": [],
    "source": [
     "import numpy as np\n",
-    "np.save(\"test_images.npy\", results)"
+    "np.save(\"csv_test_images.npy\", results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[0,\n",
+       " 1,\n",
+       " 2,\n",
+       " 3,\n",
+       " 4,\n",
+       " 5,\n",
+       " 431,\n",
+       " 432,\n",
+       " 433,\n",
+       " 434,\n",
+       " 435,\n",
+       " 436,\n",
+       " 437,\n",
+       " 438,\n",
+       " 439,\n",
+       " 440,\n",
+       " 441,\n",
+       " 442,\n",
+       " 443,\n",
+       " 444,\n",
+       " 445,\n",
+       " 446,\n",
+       " 447,\n",
+       " 448,\n",
+       " 449,\n",
+       " 450,\n",
+       " 451,\n",
+       " 452,\n",
+       " 453,\n",
+       " 454,\n",
+       " 455,\n",
+       " 456,\n",
+       " 457,\n",
+       " 458,\n",
+       " 459,\n",
+       " 460,\n",
+       " 461,\n",
+       " 462,\n",
+       " 463,\n",
+       " 464,\n",
+       " 465,\n",
+       " 466,\n",
+       " 467,\n",
+       " 468,\n",
+       " 469,\n",
+       " 470,\n",
+       " 471,\n",
+       " 472,\n",
+       " 473,\n",
+       " 474,\n",
+       " 475,\n",
+       " 476,\n",
+       " 477,\n",
+       " 478,\n",
+       " 479,\n",
+       " 480,\n",
+       " 2176,\n",
+       " 2177,\n",
+       " 2178,\n",
+       " 2179,\n",
+       " 2180,\n",
+       " 2181,\n",
+       " 2182,\n",
+       " 2183,\n",
+       " 2184,\n",
+       " 2185,\n",
+       " 2186,\n",
+       " 2187,\n",
+       " 2188,\n",
+       " 2189,\n",
+       " 2190,\n",
+       " 2286,\n",
+       " 2287,\n",
+       " 2288,\n",
+       " 2289,\n",
+       " 2290,\n",
+       " 2291,\n",
+       " 2292,\n",
+       " 2293,\n",
+       " 2294,\n",
+       " 2295,\n",
+       " 2326,\n",
+       " 2327,\n",
+       " 2328,\n",
+       " 2329,\n",
+       " 2330,\n",
+       " 2331,\n",
+       " 2332,\n",
+       " 2333,\n",
+       " 2334,\n",
+       " 2335,\n",
+       " 2336,\n",
+       " 2337,\n",
+       " 2338,\n",
+       " 2339,\n",
+       " 2340,\n",
+       " 2341,\n",
+       " 2342,\n",
+       " 2343,\n",
+       " 2344,\n",
+       " 2345,\n",
+       " 2346,\n",
+       " 2347,\n",
+       " 2348,\n",
+       " 2349,\n",
+       " 2350,\n",
+       " 2351,\n",
+       " 2352,\n",
+       " 2353,\n",
+       " 2354,\n",
+       " 2355,\n",
+       " 2356,\n",
+       " 2357,\n",
+       " 2358,\n",
+       " 2359,\n",
+       " 2360,\n",
+       " 2361,\n",
+       " 2362,\n",
+       " 2363,\n",
+       " 2364,\n",
+       " 2365,\n",
+       " 2366,\n",
+       " 2367,\n",
+       " 2368,\n",
+       " 2369,\n",
+       " 2370,\n",
+       " 2371,\n",
+       " 2372,\n",
+       " 2373,\n",
+       " 2374,\n",
+       " 2375,\n",
+       " 2376,\n",
+       " 2377,\n",
+       " 2378,\n",
+       " 2379,\n",
+       " 2380,\n",
+       " 2381,\n",
+       " 2382,\n",
+       " 2383,\n",
+       " 2384,\n",
+       " 2385,\n",
+       " 2386,\n",
+       " 2387,\n",
+       " 2388,\n",
+       " 2389,\n",
+       " 2390,\n",
+       " 2391,\n",
+       " 2392,\n",
+       " 2393,\n",
+       " 2394,\n",
+       " 2395,\n",
+       " 2396,\n",
+       " 2397,\n",
+       " 2398,\n",
+       " 2399,\n",
+       " 2400,\n",
+       " 2401,\n",
+       " 2402,\n",
+       " 2403,\n",
+       " 2404,\n",
+       " 2405,\n",
+       " 2406,\n",
+       " 2407,\n",
+       " 2408,\n",
+       " 2409,\n",
+       " 2410,\n",
+       " 2411,\n",
+       " 2412,\n",
+       " 2413,\n",
+       " 2414,\n",
+       " 2415,\n",
+       " 2416,\n",
+       " 2417,\n",
+       " 2418,\n",
+       " 2419,\n",
+       " 2420,\n",
+       " 2421,\n",
+       " 2422,\n",
+       " 2423,\n",
+       " 2424,\n",
+       " 2425,\n",
+       " 2426,\n",
+       " 2427,\n",
+       " 2428,\n",
+       " 2429,\n",
+       " 2430,\n",
+       " 2431,\n",
+       " 2432,\n",
+       " 2433,\n",
+       " 2434,\n",
+       " 2435,\n",
+       " 2436,\n",
+       " 2437,\n",
+       " 2438,\n",
+       " 2439,\n",
+       " 2440,\n",
+       " 2441,\n",
+       " 2442,\n",
+       " 2443,\n",
+       " 2444,\n",
+       " 2445,\n",
+       " 2446,\n",
+       " 2447,\n",
+       " 2448,\n",
+       " 2449,\n",
+       " 2450,\n",
+       " 2451,\n",
+       " 2452,\n",
+       " 2453,\n",
+       " 2454,\n",
+       " 2455,\n",
+       " 2456,\n",
+       " 2457,\n",
+       " 2458,\n",
+       " 2459,\n",
+       " 2460,\n",
+       " 2461,\n",
+       " 2462,\n",
+       " 2463,\n",
+       " 2464,\n",
+       " 2465,\n",
+       " 2466,\n",
+       " 2467,\n",
+       " 2468,\n",
+       " 2469,\n",
+       " 2470,\n",
+       " 2471,\n",
+       " 2472,\n",
+       " 2473,\n",
+       " 2474,\n",
+       " 2475,\n",
+       " 2476,\n",
+       " 2477,\n",
+       " 2478,\n",
+       " 2479,\n",
+       " 2480,\n",
+       " 2481,\n",
+       " 2482,\n",
+       " 2483,\n",
+       " 2484,\n",
+       " 2485,\n",
+       " 2486,\n",
+       " 2487,\n",
+       " 2488,\n",
+       " 2489,\n",
+       " 2490,\n",
+       " 2491,\n",
+       " 2492,\n",
+       " 2493,\n",
+       " 2494,\n",
+       " 2495,\n",
+       " 2496,\n",
+       " 2497,\n",
+       " 2498,\n",
+       " 2499,\n",
+       " 2500,\n",
+       " 2501,\n",
+       " 2502,\n",
+       " 2503,\n",
+       " 2504,\n",
+       " 2505,\n",
+       " 2506,\n",
+       " 2507,\n",
+       " 2508,\n",
+       " 2509,\n",
+       " 2510,\n",
+       " 2511,\n",
+       " 2512,\n",
+       " 2513,\n",
+       " 2514,\n",
+       " 2515,\n",
+       " 2516,\n",
+       " 2517,\n",
+       " 2518,\n",
+       " 2519,\n",
+       " 2520,\n",
+       " 2521,\n",
+       " 2522,\n",
+       " 2523,\n",
+       " 2524,\n",
+       " 2525,\n",
+       " 2526,\n",
+       " 2527,\n",
+       " 2528,\n",
+       " 2529,\n",
+       " 2530,\n",
+       " 2531,\n",
+       " 2532,\n",
+       " 2533,\n",
+       " 2534,\n",
+       " 2535,\n",
+       " 2536,\n",
+       " 2537,\n",
+       " 2538,\n",
+       " 2539,\n",
+       " 2540,\n",
+       " 2541,\n",
+       " 2542,\n",
+       " 2543,\n",
+       " 2544,\n",
+       " 2545,\n",
+       " 2546,\n",
+       " 2547,\n",
+       " 2548,\n",
+       " 2549,\n",
+       " 2550,\n",
+       " 2551,\n",
+       " 2552,\n",
+       " 2553,\n",
+       " 2554,\n",
+       " 2555,\n",
+       " 2556,\n",
+       " 2557,\n",
+       " 2558,\n",
+       " 2559,\n",
+       " 2560,\n",
+       " 2561,\n",
+       " 2562,\n",
+       " 2563,\n",
+       " 2564,\n",
+       " 2565,\n",
+       " 2566,\n",
+       " 2567,\n",
+       " 2568,\n",
+       " 2569,\n",
+       " 2570,\n",
+       " 2571,\n",
+       " 2572,\n",
+       " 2573,\n",
+       " 2574,\n",
+       " 2575,\n",
+       " 2576,\n",
+       " 2577,\n",
+       " 2578,\n",
+       " 2579,\n",
+       " 2580,\n",
+       " 2581,\n",
+       " 2582,\n",
+       " 2583,\n",
+       " 2584,\n",
+       " 2585,\n",
+       " 2586,\n",
+       " 2587,\n",
+       " 2588,\n",
+       " 2589,\n",
+       " 2590,\n",
+       " 2591,\n",
+       " 2592,\n",
+       " 2593,\n",
+       " 2594,\n",
+       " 2595,\n",
+       " 2596,\n",
+       " 2597,\n",
+       " 2598,\n",
+       " 2599,\n",
+       " 2600,\n",
+       " 2601,\n",
+       " 2602,\n",
+       " 2603,\n",
+       " 2604,\n",
+       " 2605,\n",
+       " 2606,\n",
+       " 2607,\n",
+       " 2608,\n",
+       " 2609,\n",
+       " 2610,\n",
+       " 2611,\n",
+       " 2612,\n",
+       " 2613,\n",
+       " 2614,\n",
+       " 2615,\n",
+       " 2616,\n",
+       " 2617,\n",
+       " 2618,\n",
+       " 2619,\n",
+       " 2620,\n",
+       " 2621,\n",
+       " 2622,\n",
+       " 2623,\n",
+       " 2624,\n",
+       " 2625,\n",
+       " 2626,\n",
+       " 2627,\n",
+       " 2628,\n",
+       " 2629,\n",
+       " 2630,\n",
+       " 2631,\n",
+       " 2632,\n",
+       " 2633,\n",
+       " 2634,\n",
+       " 2635,\n",
+       " 2636,\n",
+       " 2637,\n",
+       " 2638,\n",
+       " 2639,\n",
+       " 2640,\n",
+       " 2641,\n",
+       " 2642,\n",
+       " 2643,\n",
+       " 2644,\n",
+       " 2645,\n",
+       " 2646,\n",
+       " 2647,\n",
+       " 2648,\n",
+       " 2649,\n",
+       " 2650,\n",
+       " 2651,\n",
+       " 2652,\n",
+       " 2653,\n",
+       " 2654,\n",
+       " 2655,\n",
+       " 2656,\n",
+       " 2657,\n",
+       " 2658,\n",
+       " 2659,\n",
+       " 2660,\n",
+       " 2661,\n",
+       " 2662,\n",
+       " 2663,\n",
+       " 2664,\n",
+       " 2665,\n",
+       " 2666,\n",
+       " 2667,\n",
+       " 2668,\n",
+       " 2669,\n",
+       " 2670,\n",
+       " 2671,\n",
+       " 2672,\n",
+       " 2673,\n",
+       " 2674,\n",
+       " 2675,\n",
+       " 2676,\n",
+       " 2677,\n",
+       " 2678,\n",
+       " 2679,\n",
+       " 2680,\n",
+       " 2681,\n",
+       " 2682,\n",
+       " 2683,\n",
+       " 2684,\n",
+       " 2685,\n",
+       " 2686,\n",
+       " 2687,\n",
+       " 2688,\n",
+       " 2689,\n",
+       " 2690,\n",
+       " 2691,\n",
+       " 2692,\n",
+       " 2693,\n",
+       " 2694,\n",
+       " 2695,\n",
+       " 2696,\n",
+       " 2697,\n",
+       " 2698,\n",
+       " 2699,\n",
+       " 2700,\n",
+       " 2701,\n",
+       " 2702,\n",
+       " 2703,\n",
+       " 2704,\n",
+       " 2705,\n",
+       " 2706,\n",
+       " 2707,\n",
+       " 2708,\n",
+       " 2709,\n",
+       " 2710,\n",
+       " 2711,\n",
+       " 2712,\n",
+       " 2713,\n",
+       " 2714,\n",
+       " 2715,\n",
+       " 2716,\n",
+       " 2717,\n",
+       " 2718,\n",
+       " 2719,\n",
+       " 2720,\n",
+       " 2721,\n",
+       " 2722,\n",
+       " 2723,\n",
+       " 2724,\n",
+       " 2725,\n",
+       " 2726,\n",
+       " 2727,\n",
+       " 2728,\n",
+       " 2729,\n",
+       " 2730,\n",
+       " 2731,\n",
+       " 2732,\n",
+       " 2733,\n",
+       " 2734,\n",
+       " 2735,\n",
+       " 2736,\n",
+       " 2737,\n",
+       " 2738,\n",
+       " 2739,\n",
+       " 2740,\n",
+       " 2741,\n",
+       " 2742,\n",
+       " 2743,\n",
+       " 2744,\n",
+       " 2745,\n",
+       " 2746,\n",
+       " 2747,\n",
+       " 2748,\n",
+       " 2749,\n",
+       " 2750,\n",
+       " 2751,\n",
+       " 2752,\n",
+       " 2753,\n",
+       " 2754,\n",
+       " 2755,\n",
+       " 2756,\n",
+       " 2757,\n",
+       " 2758,\n",
+       " 2759,\n",
+       " 2760,\n",
+       " 2761,\n",
+       " 2762,\n",
+       " 2763,\n",
+       " 2764,\n",
+       " 2765,\n",
+       " 2766,\n",
+       " 2767,\n",
+       " 2768,\n",
+       " 2769,\n",
+       " 2770,\n",
+       " 2771,\n",
+       " 2772,\n",
+       " 2773,\n",
+       " 2774,\n",
+       " 2775,\n",
+       " 2776,\n",
+       " 2777,\n",
+       " 2778,\n",
+       " 2779,\n",
+       " 2780,\n",
+       " 2781,\n",
+       " 2782,\n",
+       " 2783,\n",
+       " 2784,\n",
+       " 2785,\n",
+       " 2786,\n",
+       " 2787,\n",
+       " 2788,\n",
+       " 2789,\n",
+       " 2790,\n",
+       " 2791,\n",
+       " 2792,\n",
+       " 2793,\n",
+       " 2794,\n",
+       " 2795,\n",
+       " 2796,\n",
+       " 2797,\n",
+       " 2798,\n",
+       " 2799,\n",
+       " 2800,\n",
+       " 2801,\n",
+       " 2802,\n",
+       " 2803,\n",
+       " 2804,\n",
+       " 2805,\n",
+       " 2806,\n",
+       " 2807,\n",
+       " 2808,\n",
+       " 2809,\n",
+       " 2810,\n",
+       " 2811,\n",
+       " 2812,\n",
+       " 2813,\n",
+       " 2814,\n",
+       " 2815,\n",
+       " 2816,\n",
+       " 2817,\n",
+       " 2818,\n",
+       " 2819,\n",
+       " 2820,\n",
+       " 2821,\n",
+       " 2822,\n",
+       " 2823,\n",
+       " 2824,\n",
+       " 2825,\n",
+       " 2826,\n",
+       " 2827,\n",
+       " 2828,\n",
+       " 2829,\n",
+       " 2830,\n",
+       " 2831,\n",
+       " 2832,\n",
+       " 2833,\n",
+       " 2834,\n",
+       " 2835,\n",
+       " 2836,\n",
+       " 2837,\n",
+       " 2838,\n",
+       " 2839,\n",
+       " 2840,\n",
+       " 2841,\n",
+       " 2842,\n",
+       " 2843,\n",
+       " 2844,\n",
+       " 2845,\n",
+       " 2846,\n",
+       " 2847,\n",
+       " 2848,\n",
+       " 2849,\n",
+       " 2850,\n",
+       " 2851,\n",
+       " 2852,\n",
+       " 2853,\n",
+       " 2854,\n",
+       " 2855,\n",
+       " 2856,\n",
+       " 2857,\n",
+       " 2858,\n",
+       " 2859,\n",
+       " 2860,\n",
+       " 2861,\n",
+       " 2862,\n",
+       " 2863,\n",
+       " 2864,\n",
+       " 2865,\n",
+       " 2866,\n",
+       " 2867,\n",
+       " 2868,\n",
+       " 2869,\n",
+       " 2870,\n",
+       " 2871,\n",
+       " 2872,\n",
+       " 2873,\n",
+       " 2874,\n",
+       " 2875,\n",
+       " 2876,\n",
+       " 2877,\n",
+       " 2878,\n",
+       " 2879,\n",
+       " 2880,\n",
+       " 2881,\n",
+       " 2882,\n",
+       " 2883,\n",
+       " 2884,\n",
+       " 2885,\n",
+       " 2886,\n",
+       " 2887,\n",
+       " 2888,\n",
+       " 2889,\n",
+       " 2890,\n",
+       " 2891,\n",
+       " 2892,\n",
+       " 2893,\n",
+       " 2894,\n",
+       " 2895,\n",
+       " 2896,\n",
+       " 2897,\n",
+       " 2898,\n",
+       " 2899,\n",
+       " 2900,\n",
+       " 2901,\n",
+       " 2902,\n",
+       " 2903,\n",
+       " 2904,\n",
+       " 2905,\n",
+       " 2906,\n",
+       " 2907,\n",
+       " 2908,\n",
+       " 2909,\n",
+       " 2910,\n",
+       " 2911,\n",
+       " 2912,\n",
+       " 2913,\n",
+       " 2914,\n",
+       " 2915,\n",
+       " 2916,\n",
+       " 2917,\n",
+       " 2918,\n",
+       " 2919,\n",
+       " 2920,\n",
+       " 2921,\n",
+       " 2922,\n",
+       " 2923,\n",
+       " 2924,\n",
+       " 2925,\n",
+       " 2926,\n",
+       " 2927,\n",
+       " 2928,\n",
+       " 2929,\n",
+       " 2930,\n",
+       " 2931,\n",
+       " 2932,\n",
+       " 2933,\n",
+       " 2934,\n",
+       " 2935,\n",
+       " 2936,\n",
+       " 2937,\n",
+       " 2938,\n",
+       " 2939,\n",
+       " 2940,\n",
+       " 2941,\n",
+       " 2942,\n",
+       " 2943,\n",
+       " 2944,\n",
+       " 2945,\n",
+       " 2946,\n",
+       " 2947,\n",
+       " 2948,\n",
+       " 2949,\n",
+       " 2950,\n",
+       " 2951,\n",
+       " 2952,\n",
+       " 2953,\n",
+       " 2954,\n",
+       " 2955,\n",
+       " 2956,\n",
+       " 2957,\n",
+       " 2958,\n",
+       " 2959,\n",
+       " 2960,\n",
+       " 2961,\n",
+       " 2962,\n",
+       " 2963,\n",
+       " 2964,\n",
+       " 2965,\n",
+       " 2966,\n",
+       " 2967,\n",
+       " 2968,\n",
+       " 2969,\n",
+       " 2970,\n",
+       " 2971,\n",
+       " 2972,\n",
+       " 2973,\n",
+       " 2974,\n",
+       " 2975,\n",
+       " 2976,\n",
+       " 2977,\n",
+       " 2978,\n",
+       " 2979,\n",
+       " 2980,\n",
+       " 2981,\n",
+       " 2982,\n",
+       " 2983,\n",
+       " 2984,\n",
+       " 2985,\n",
+       " 2986,\n",
+       " 2987,\n",
+       " 2988,\n",
+       " 2989,\n",
+       " 2990,\n",
+       " 2991,\n",
+       " 2992,\n",
+       " 2993,\n",
+       " 2994,\n",
+       " 2995,\n",
+       " 2996,\n",
+       " 2997,\n",
+       " 2998,\n",
+       " 2999,\n",
+       " 3000,\n",
+       " 3001,\n",
+       " 3002,\n",
+       " 3003,\n",
+       " 3004,\n",
+       " 3005,\n",
+       " 3006,\n",
+       " 3007,\n",
+       " 3008,\n",
+       " 3009,\n",
+       " 3010,\n",
+       " 3011,\n",
+       " 3012,\n",
+       " 3013,\n",
+       " 3014,\n",
+       " 3015,\n",
+       " 3016,\n",
+       " 3017,\n",
+       " 3018,\n",
+       " 3019,\n",
+       " 3020,\n",
+       " 3021,\n",
+       " 3022,\n",
+       " 3023,\n",
+       " 3024,\n",
+       " 3025,\n",
+       " 3026,\n",
+       " 3027,\n",
+       " 3028,\n",
+       " 3029,\n",
+       " 3030,\n",
+       " 3031,\n",
+       " 3032,\n",
+       " 3033,\n",
+       " 3034,\n",
+       " 3035,\n",
+       " 3036,\n",
+       " 3037,\n",
+       " 3038,\n",
+       " 3039,\n",
+       " 3040,\n",
+       " 3041,\n",
+       " 3042,\n",
+       " 3043,\n",
+       " 3044,\n",
+       " 3045,\n",
+       " 3046,\n",
+       " 3047,\n",
+       " 3048,\n",
+       " 3049,\n",
+       " 3050,\n",
+       " 3051,\n",
+       " 3052,\n",
+       " 3053,\n",
+       " 3054,\n",
+       " 3055,\n",
+       " 3056,\n",
+       " 3057,\n",
+       " 3058,\n",
+       " 3059,\n",
+       " 3060,\n",
+       " 3061,\n",
+       " 3062,\n",
+       " 3063,\n",
+       " 3064,\n",
+       " 3065,\n",
+       " 3066,\n",
+       " 3067,\n",
+       " 3068,\n",
+       " 3069,\n",
+       " 3070,\n",
+       " 3071,\n",
+       " 3072,\n",
+       " 3073,\n",
+       " 3074,\n",
+       " 3075,\n",
+       " 3076,\n",
+       " 3077,\n",
+       " 3078,\n",
+       " 3079,\n",
+       " 3080,\n",
+       " 3081,\n",
+       " 3082,\n",
+       " 3083,\n",
+       " 3084,\n",
+       " 3085,\n",
+       " 3086,\n",
+       " 3087,\n",
+       " 3088,\n",
+       " 3089,\n",
+       " 3090,\n",
+       " 3091,\n",
+       " 3092,\n",
+       " 3093,\n",
+       " 3094,\n",
+       " 3095,\n",
+       " 3096,\n",
+       " 3097,\n",
+       " 3098,\n",
+       " 3099,\n",
+       " 3100,\n",
+       " 3101,\n",
+       " 3102,\n",
+       " 3103,\n",
+       " 3104,\n",
+       " 3105,\n",
+       " 3106,\n",
+       " 3107,\n",
+       " 3108,\n",
+       " 3109,\n",
+       " 3110,\n",
+       " 3111,\n",
+       " 3112,\n",
+       " 3113,\n",
+       " 3114,\n",
+       " 3115,\n",
+       " 3116,\n",
+       " 3117,\n",
+       " 3118,\n",
+       " 3119,\n",
+       " 3120,\n",
+       " 3121,\n",
+       " 3122,\n",
+       " 3123,\n",
+       " 3124,\n",
+       " 3125,\n",
+       " 3126,\n",
+       " 3127,\n",
+       " 3128,\n",
+       " 3129,\n",
+       " 3130,\n",
+       " 3131,\n",
+       " 3132,\n",
+       " 3133,\n",
+       " 3134,\n",
+       " 3135,\n",
+       " 3136,\n",
+       " 3137,\n",
+       " 3138,\n",
+       " 3139,\n",
+       " 3140,\n",
+       " 3141,\n",
+       " 3142,\n",
+       " 3143,\n",
+       " 3144,\n",
+       " 3145,\n",
+       " 3146,\n",
+       " 3147,\n",
+       " 3148,\n",
+       " 3149,\n",
+       " 3150,\n",
+       " 3151,\n",
+       " 3152,\n",
+       " 3153,\n",
+       " 3154,\n",
+       " 3155,\n",
+       " 3156,\n",
+       " 3157,\n",
+       " 3158,\n",
+       " 3159,\n",
+       " 3160,\n",
+       " 3161,\n",
+       " 3162,\n",
+       " 3163,\n",
+       " 3164,\n",
+       " 3165,\n",
+       " 3166,\n",
+       " 3167,\n",
+       " 3168,\n",
+       " 3169,\n",
+       " 3170,\n",
+       " 3171,\n",
+       " 3172,\n",
+       " 3173,\n",
+       " 3174,\n",
+       " 3175,\n",
+       " 3176,\n",
+       " 3177,\n",
+       " 3178,\n",
+       " 3179,\n",
+       " 3180,\n",
+       " 3181,\n",
+       " 3182,\n",
+       " 3183,\n",
+       " 3184,\n",
+       " 3185,\n",
+       " 3186,\n",
+       " 3187,\n",
+       " 3188,\n",
+       " 3189,\n",
+       " 3190,\n",
+       " 3191,\n",
+       " 3192,\n",
+       " 3193,\n",
+       " 3194,\n",
+       " 3195,\n",
+       " 3196,\n",
+       " 3197,\n",
+       " 3198,\n",
+       " 3199,\n",
+       " 3200,\n",
+       " 3201,\n",
+       " 3202,\n",
+       " 3203,\n",
+       " 3204,\n",
+       " 3205,\n",
+       " 3206,\n",
+       " 3207,\n",
+       " 3208,\n",
+       " 3209,\n",
+       " 3210,\n",
+       " 3211,\n",
+       " 3212,\n",
+       " 3213,\n",
+       " 3214,\n",
+       " 3215,\n",
+       " 3216,\n",
+       " 3217,\n",
+       " 3218,\n",
+       " 3219,\n",
+       " 3220,\n",
+       " 3221,\n",
+       " 3222,\n",
+       " 3223,\n",
+       " 3224,\n",
+       " 3225,\n",
+       " 3226,\n",
+       " 3227,\n",
+       " 3228,\n",
+       " 3229,\n",
+       " 3230,\n",
+       " 3231,\n",
+       " 3232,\n",
+       " 3233,\n",
+       " 3234,\n",
+       " 3235,\n",
+       " 3236,\n",
+       " 3237,\n",
+       " 3238,\n",
+       " 3239,\n",
+       " 3240,\n",
+       " 3241,\n",
+       " 3242,\n",
+       " 3243,\n",
+       " 3244,\n",
+       " ...]"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "l = []\n",
+    "for i in range(3600):\n",
+    "    if [\"Fox_03\", f\"Fox_03_{i:05d}.jpg\"] not in results:\n",
+    "        l.append(i)\n",
+    "l"
    ]
   },
   {

+ 130 - 0
eval_autoencoder.py

@@ -0,0 +1,130 @@
+# Approach 4: Autoencoder
+# This script is used for evaluating an autoencoder on Motion and Lapse images.
+# See train_autoencoder.py for training.
+
+import argparse
+import os
+from glob import glob
+from tqdm import tqdm
+import numpy as np
+import torch
+from torch import nn
+from torch.autograd import Variable
+from torch.utils.data import DataLoader
+
+from py.FileUtils import dump
+from py.Dataset import Dataset
+from py.PyTorchData import create_dataloader
+from py.Autoencoder2 import Autoencoder
+from py.Labels import LABELS
+
+TRAIN_FOLDER = "./ae_train_NoBackup"
+
+def load_autoencoder(train_name: str, device: str = "cpu", model_number: int = -1):
+    if model_number < 0:
+        model_path = sorted(glob(f"./ae_train_NoBackup/{train_name}/model_*.pth"))[-1]
+    else:
+        model_path = f"./ae_train_NoBackup/{train_name}/model_{model_number:03d}.pth"
+    print(f"Loading model from {model_path}... ", end="")
+    model = Autoencoder()
+    model.load_state_dict(torch.load(model_path, map_location=torch.device(device)))
+    model.eval()
+    print("Loaded!")
+    return model
+
+def eval_autoencoder(model: Autoencoder, data_loader: DataLoader, device: str = "cpu"):
+    losses = [] # reconstruction errors
+    encodings = [] # latent representations for KDE
+    labels = []
+
+    with torch.no_grad():
+        model = model.to(device)
+        criterion = nn.MSELoss()
+
+        for features, batch_labels in tqdm(data_loader):
+            features = Variable(features).to(device)
+            labels += batch_labels
+
+            # forward
+            encoded = model.encoder(features)
+            output_batch = model.decoder(encoded)
+
+            # Calculate and save encoded representation and loss
+            encoded_flat = encoded.detach().cpu().numpy().reshape(encoded.size()[0], -1)
+            for input, enc, output in zip(features, encoded_flat, output_batch):
+                encodings.append(enc)
+                losses.append(criterion(input, output).cpu().numpy())
+    return np.array(losses), np.array(encodings), np.array(labels)
+
+def main():
+    parser = argparse.ArgumentParser(description="Autoencoder eval script - evaluates Motion and Lapse images of session")
+    parser.add_argument("name", type=str, help="Name of the training session (name of the save folder)")
+    parser.add_argument("dataset_folder", type=str, help="Path to dataset folder containing sessions")
+    parser.add_argument("session", type=str, help="Session name")
+    parser.add_argument("--device", type=str, help="PyTorch device to train on (cpu or cuda)", default="cpu")
+    parser.add_argument("--batch_size", type=int, help="Batch size (>=1)", default=32)
+    parser.add_argument("--model_number", type=int, help="Load model save of specific epoch (default: use latest)", default=-1)
+    parser.add_argument("--image_transforms", action="store_true", help="Truncate and resize images (only enable if the input images have not been truncated resized to the target size already)")
+    
+
+    args = parser.parse_args()
+
+    if args.image_transforms:
+        print("Image transforms enabled: Images will be truncated and resized.")
+    else:
+        print("Image transforms disabled: Images are expected to be of the right size.")
+
+    ds = Dataset(args.dataset_folder)
+    session = ds.create_session(args.session)
+    
+    # Target file names
+    train_dir = os.path.join(TRAIN_FOLDER, args.name)
+    save_dir = os.path.join(train_dir, "eval")
+    os.makedirs(save_dir, exist_ok=True)
+    lapse_eval_file = os.path.join(save_dir, f"{session.name}_lapse.pickle")
+    motion_eval_file = os.path.join(save_dir, f"{session.name}_motion.pickle")
+
+    # Load model
+    model = load_autoencoder(args.name, args.device, args.model_number)
+    
+    # Check CUDA
+    print("Is CUDA available:", torch.cuda.is_available())
+    if torch.cuda.is_available() and args.device != "cuda":
+        print("WARNING: CUDA is available but not activated! Use '--device cuda'.")
+    print(f"Devices: ({torch.cuda.device_count()})")
+    for i in range(torch.cuda.device_count()):
+        print(torch.cuda.get_device_name(i))
+
+
+    # Lapse eval
+    if os.path.isfile(lapse_eval_file):
+        print(f"Eval file for Lapse already exists ({lapse_eval_file}) Skipping Lapse evaluation...")
+    else:
+        print("Creating lapse data loader... ", end="")
+        lapse_loader = create_dataloader(session.get_lapse_folder(), batch_size=args.batch_size, skip_transforms=not args.image_transforms, shuffle=False)
+        results = eval_autoencoder(model, lapse_loader, args.device)
+        dump(lapse_eval_file, results)
+        print(f"Results saved to {lapse_eval_file}!")
+    
+
+    # Motion eval
+
+    def is_labeled(filename: str) -> bool:
+        return int(filename[10:-4]) <= LABELS[session.name]["max"]
+
+    def labeler(filename: str) -> int:
+        is_normal = (int(filename[10:-4]) in LABELS[session.name]["normal"])
+        return 0 if is_normal else 1
+    
+    if os.path.isfile(motion_eval_file):
+        print(f"Eval file for Motion already exists ({motion_eval_file}) Skipping Motion evaluation...")
+    else:
+        print("Creating motion data loader... ", end="")
+        motion_loader = create_dataloader(session.get_motion_folder(), batch_size=args.batch_size, skip_transforms=not args.image_transforms, shuffle=False, labeler=labeler, filter=is_labeled)
+        results = eval_autoencoder(model, motion_loader, args.device)
+        dump(motion_eval_file, results)
+        print(f"Results saved to {motion_eval_file}!")
+    print("Done.")
+
+if __name__ == "__main__":
+    main()

BIN
plots/approach4/beaver_01_kde_tar_vs_tnr.png


BIN
plots/approach4/beaver_01_loss,kde_tar_vs_tnr.png


BIN
plots/approach4/beaver_01_loss_tar_vs_tnr.png


BIN
plots/approach4/marten_01_kde_tar_vs_tnr.png


+ 12 - 1
py/FileUtils.py

@@ -1,5 +1,6 @@
 from glob import glob
 import os
+import pickle
 
 expected_subfolders = sorted(["Motion", "Lapse", "Full"])
 
@@ -33,4 +34,14 @@ def verify_expected_subfolders(session_path: str):
     """
     subfolders = list_folders(session_path)
     if sorted(subfolders) != sorted(expected_subfolders):
-        raise AssertionError(f"{session_path}: Expected subfolders {expected_subfolders} but found {subfolders}")
+        raise AssertionError(f"{session_path}: Expected subfolders {expected_subfolders} but found {subfolders}")
+
+# Pickle helpers
+
+def dump(filename: str, data):
+    with open(filename, "wb") as f:
+        pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)
+
+def load(filename: str):
+    with open(filename, "rb") as f:
+        return pickle.load(f)

+ 1 - 1
py/Labels.py

@@ -3,7 +3,7 @@ LABELS = {
     "Beaver_01": {
         "normal": [3, 4, 5, 48, 49, 50, 51, 52, 53, 54, 55, 78, 79, 80, 106, 107, 108, 109, 110, 113, 115, 132, 145, 147, 148, 149, 150, 193, 194, 195, 196, 197, 198, 199, 200, 217, 218, 219, 220, 372, 373, 374, 375, 399, 400, 401, 402, 403, 404, 405, 418, 419, 420, 425, 460, 463, 464, 465, 477, 478, 479, 480, 645, 665, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690],
         "small": list(range(86, 106)) + list(range(151, 156)) + [204, 205, 371, 392, 393, 394, 395, 416, 417, 459, 462, 476, 630, 631, 644, 677],
-        "max": 600,
+        "max": 695,
     },
     "Marten_01": {
         "normal": list(range(11, 166)) + list(range(177, 181)) + list(range(209, 301)),

+ 6 - 4
py/PyTorchData.py

@@ -4,12 +4,13 @@ from torchvision import io, transforms
 from torch.utils.data import DataLoader, Dataset
 
 class ImageDataset(Dataset):
-    def __init__(self, img_dir: str, transform = None, labeler = None):
+    def __init__(self, img_dir: str, transform = None, labeler = None, filter = lambda filename: True):
         self.img_dir = img_dir
         self.transform = transform
         self.labeler = labeler
         with os.scandir(img_dir) as it:
-            self.files = [entry.name for entry in it if entry.name.endswith(".jpg") and entry.is_file()]
+            self.files = [entry.name for entry in it if entry.name.endswith(".jpg") and entry.is_file() and filter(entry.name)]
+        print(f"{len(self.files)} files found")
     
     def __len__(self):
         return len(self.files)
@@ -24,7 +25,7 @@ class ImageDataset(Dataset):
             label = self.labeler(self.files[idx])
         return img, label
 
-def create_dataloader(img_folder: str, target_size: tuple = (256, 256), batch_size: int = 32, shuffle: bool = True, truncate_y: tuple = (40, 40), labeler = None, skip_transforms: bool = False) -> DataLoader:
+def create_dataloader(img_folder: str, target_size: tuple = (256, 256), batch_size: int = 32, shuffle: bool = True, truncate_y: tuple = (40, 40), labeler = None, skip_transforms: bool = False, filter = lambda filename: True) -> DataLoader:
     """Creates a PyTorch DataLoader from the given image folder.
 
     Args:
@@ -35,6 +36,7 @@ def create_dataloader(img_folder: str, target_size: tuple = (256, 256), batch_si
         truncate_y (tuple, optional): (a, b), cut off the first a and the last b pixel rows of the unresized image. Defaults to (40, 40).
         labeler (lambda(filename: str) -> int, optional): Lambda that maps every filename to an int label. By default all labels are 0. Defaults to None.
         skip_transforms (bool, optional): Skip truncate and resize transforms. (If the images are already truncated and resized). Defaults to False.
+        filter (lambda: str -> bool, optional): Additional filter by filename. Defaults to lambda filename: True.
 
     Returns:
         DataLoader: PyTorch DataLoader
@@ -57,7 +59,7 @@ def create_dataloader(img_folder: str, target_size: tuple = (256, 256), batch_si
             transforms.Normalize((0.5), (0.5)) # min-max normalization to [-1, 1]
         ])
 
-    data = ImageDataset(img_folder, transform=transform, labeler=labeler)
+    data = ImageDataset(img_folder, transform=transform, labeler=labeler, filter=filter)
     return DataLoader(data, batch_size=batch_size, shuffle=shuffle)
 
 def model_output_to_image(y):

BIN
test_images.npy


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott