{ "artifact": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras", "sha256": "91a95e3ef51cf69dd0e3aa448f66c976bac6bd51152d6bd8189a4fb960906521", "size_bytes": 18053, "marker": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_marker.png", "top_level_layers_seen_by_modelscan_logic": [ "InputLayer", "Functional" ], "lambda_locations": [ "root.config.layers[1].config.layers[1]" ], "lambda_function_configs": [ { "module": "keras.visualization", "class_name": "function", "config": "plot_image_gallery", "registered_name": null } ], "runtime_run": { "cmd": [ "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\.venv\\Scripts\\python.exe", "-c", "import json, os, pathlib\nimport numpy as np\nimport keras\nmodel_path = pathlib.Path(r'C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras')\nmarker = pathlib.Path(r'C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_marker.png')\nmarker.unlink(missing_ok=True)\nos.chdir(model_path.parent)\nmodel = keras.saving.load_model(model_path, safe_mode=True)\nafter_load = marker.exists()\noutputs = model(np.ones((1, 2, 2, 1), dtype='float32'))\nprimary_sum = float(np.sum(outputs[0].numpy()))\nresult = {\n 'safe_mode_load_succeeded': True,\n 'marker_after_load': after_load,\n 'marker_after_inference': marker.exists(),\n 'marker_size_bytes': marker.stat().st_size if marker.exists() else 0,\n 'primary_output_sum': primary_sum,\n 'secondary_output_is_none': outputs[1] is None,\n}\nprint(json.dumps(result, sort_keys=True))\n" ], "returncode": 0, "stdout": "{\"marker_after_inference\": true, \"marker_after_load\": false, \"marker_size_bytes\": 414, \"primary_output_sum\": 4.0, \"safe_mode_load_succeeded\": true, \"secondary_output_is_none\": true}\n", "stderr": "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563902.968798 29284 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563908.295750 29284 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING:tensorflow:TensorFlow GPU support is not available on native Windows for TensorFlow >= 2.11. Even if CUDA/cuDNN are installed, GPU will not be used. Please use WSL2 or the TensorFlow-DirectML plugin.\nI0000 00:00:1778563910.590353 29284 cpu_feature_guard.cc:227] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\nTo enable the following instructions: SSE3 SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" }, "runtime_json": { "marker_after_inference": true, "marker_after_load": false, "marker_size_bytes": 414, "primary_output_sum": 4.0, "safe_mode_load_succeeded": true, "secondary_output_is_none": true }, "modelscan_run": { "cmd": [ "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\.venv\\Scripts\\modelscan.exe", "scan", "-p", "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras", "-r", "json", "-o", "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\modelscan_safe_mode_public_function.json", "--show-skipped" ], "returncode": 0, "stdout": "No settings file detected at C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\modelscan-settings.toml. Using defaults. \n\nScanning C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras using modelscan.scanners.KerasLambdaDetectScan model scan\nModel Config not found in: C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras:model.weights.h5\nScanning C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras:model.weights.h5 using modelscan.scanners.H5LambdaDetectScan model scan\n{\"summary\": {\"total_issues_by_severity\": {\"LOW\": 0, \"MEDIUM\": 0, \"HIGH\": 0, \n\"CRITICAL\": 0}, \"total_issues\": 0, \"input_path\": \n\"C:\\\\Users\\\\Pragnyan\\\\dev\\\\huntr-exp1\\\\keras\\\\lab\\\\safe_mode_public_function_ne\nsted.keras\", \"absolute_path\": \n\"C:\\\\Users\\\\Pragnyan\\\\dev\\\\huntr-exp1\\\\keras\\\\lab\", \"modelscan_version\": \n\"0.8.8\", \"timestamp\": \"2026-05-12T11:02:06.184664\", \"scanned\": \n{\"total_scanned\": 1, \"scanned_files\": \n[\"safe_mode_public_function_nested.keras\"]}, \"skipped\": {\"total_skipped\": 3, \n\"skipped_files\": [{\"category\": \"SCAN_NOT_SUPPORTED\", \"description\": \"Model Scan\ndid not scan file\", \"source\": \n\"safe_mode_public_function_nested.keras:metadata.json\"}, {\"category\": \n\"SCAN_NOT_SUPPORTED\", \"description\": \"Model Scan did not scan file\", \"source\": \n\"safe_mode_public_function_nested.keras:config.json\"}, {\"category\": \n\"MODEL_CONFIG\", \"description\": \"Model Config not found\", \"source\": \n\"safe_mode_public_function_nested.keras:model.weights.h5\"}]}}, \"issues\": [], \n\"errors\": []}\n", "stderr": "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563920.692200 12080 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563924.444316 12080 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n" }, "modelscan_json": { "summary": { "total_issues_by_severity": { "LOW": 0, "MEDIUM": 0, "HIGH": 0, "CRITICAL": 0 }, "total_issues": 0, "input_path": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_nested.keras", "absolute_path": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab", "modelscan_version": "0.8.8", "timestamp": "2026-05-12T11:02:06.184664", "scanned": { "total_scanned": 1, "scanned_files": [ "safe_mode_public_function_nested.keras" ] }, "skipped": { "total_skipped": 3, "skipped_files": [ { "category": "SCAN_NOT_SUPPORTED", "description": "Model Scan did not scan file", "source": "safe_mode_public_function_nested.keras:metadata.json" }, { "category": "SCAN_NOT_SUPPORTED", "description": "Model Scan did not scan file", "source": "safe_mode_public_function_nested.keras:config.json" }, { "category": "MODEL_CONFIG", "description": "Model Config not found", "source": "safe_mode_public_function_nested.keras:model.weights.h5" } ] } }, "issues": [], "errors": [] }, "control_artifact": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras", "control_sha256": "a2018f9ebccb565c8e7296659085a24dc41ac9f3a9d48a5af17a28406c2feaee", "control_top_level_layers": [ "InputLayer", "Lambda" ], "control_lambda_locations": [ "root.config.layers[1]" ], "control_runtime_run": { "cmd": [ "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\.venv\\Scripts\\python.exe", "-c", "import json, os, pathlib\nimport numpy as np\nimport keras\nmodel_path = pathlib.Path(r'C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras')\nmarker = pathlib.Path(r'C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_control_marker.png')\nmarker.unlink(missing_ok=True)\nos.chdir(model_path.parent)\nmodel = keras.saving.load_model(model_path, safe_mode=True)\nafter_load = marker.exists()\noutputs = model(np.ones((1, 2, 2, 1), dtype='float32'))\nprimary_sum = float(np.sum(outputs[0].numpy()))\nresult = {\n 'safe_mode_load_succeeded': True,\n 'marker_after_load': after_load,\n 'marker_after_inference': marker.exists(),\n 'marker_size_bytes': marker.stat().st_size if marker.exists() else 0,\n 'primary_output_sum': primary_sum,\n 'secondary_output_is_none': outputs[1] is None,\n}\nprint(json.dumps(result, sort_keys=True))\n" ], "returncode": 0, "stdout": "{\"marker_after_inference\": true, \"marker_after_load\": false, \"marker_size_bytes\": 414, \"primary_output_sum\": 4.0, \"safe_mode_load_succeeded\": true, \"secondary_output_is_none\": true}\n", "stderr": "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563912.637126 3004 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563916.769076 3004 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING:tensorflow:TensorFlow GPU support is not available on native Windows for TensorFlow >= 2.11. Even if CUDA/cuDNN are installed, GPU will not be used. Please use WSL2 or the TensorFlow-DirectML plugin.\nI0000 00:00:1778563918.354668 3004 cpu_feature_guard.cc:227] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\nTo enable the following instructions: SSE3 SSE4.1 SSE4.2 AVX AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" }, "control_runtime_json": { "marker_after_inference": true, "marker_after_load": false, "marker_size_bytes": 414, "primary_output_sum": 4.0, "safe_mode_load_succeeded": true, "secondary_output_is_none": true }, "control_modelscan_run": { "cmd": [ "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\.venv\\Scripts\\modelscan.exe", "scan", "-p", "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras", "-r", "json", "-o", "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\modelscan_safe_mode_public_function_control.json", "--show-skipped" ], "returncode": 1, "stdout": "No settings file detected at C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\modelscan-settings.toml. Using defaults. \n\nScanning C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras using modelscan.scanners.KerasLambdaDetectScan model scan\nModel Config not found in: C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras:model.weights.h5\nScanning C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras:model.weights.h5 using modelscan.scanners.H5LambdaDetectScan model scan\n{\"summary\": {\"total_issues_by_severity\": {\"LOW\": 0, \"MEDIUM\": 1, \"HIGH\": 0, \n\"CRITICAL\": 0}, \"total_issues\": 1, \"input_path\": \n\"C:\\\\Users\\\\Pragnyan\\\\dev\\\\huntr-exp1\\\\keras\\\\lab\\\\safe_mode_public_function_to\np_level_control.keras\", \"absolute_path\": \n\"C:\\\\Users\\\\Pragnyan\\\\dev\\\\huntr-exp1\\\\keras\\\\lab\", \"modelscan_version\": \n\"0.8.8\", \"timestamp\": \"2026-05-12T11:02:14.380336\", \"scanned\": \n{\"total_scanned\": 1, \"scanned_files\": \n[\"safe_mode_public_function_top_level_control.keras\"]}, \"skipped\": \n{\"total_skipped\": 3, \"skipped_files\": [{\"category\": \"SCAN_NOT_SUPPORTED\", \n\"description\": \"Model Scan did not scan file\", \"source\": \n\"safe_mode_public_function_top_level_control.keras:metadata.json\"}, \n{\"category\": \"SCAN_NOT_SUPPORTED\", \"description\": \"Model Scan did not scan \nfile\", \"source\": \n\"safe_mode_public_function_top_level_control.keras:config.json\"}, {\"category\": \n\"MODEL_CONFIG\", \"description\": \"Model Config not found\", \"source\": \n\"safe_mode_public_function_top_level_control.keras:model.weights.h5\"}]}}, \n\"issues\": [{\"description\": \"Use of unsafe operator 'Lambda' from module \n'Keras'\", \"operator\": \"Lambda\", \"module\": \"Keras\", \"source\": \n\"safe_mode_public_function_top_level_control.keras:config.json\", \"scanner\": \n\"modelscan.scanners.KerasLambdaDetectScan\", \"severity\": \"MEDIUM\"}], \"errors\": \n[]}\n", "stderr": "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563928.013549 2368 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\nWARNING: All log messages before absl::InitializeLog() is called are written to STDERR\nI0000 00:00:1778563932.532402 2368 port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n" }, "control_modelscan_json": { "summary": { "total_issues_by_severity": { "LOW": 0, "MEDIUM": 1, "HIGH": 0, "CRITICAL": 0 }, "total_issues": 1, "input_path": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab\\safe_mode_public_function_top_level_control.keras", "absolute_path": "C:\\Users\\Pragnyan\\dev\\huntr-exp1\\keras\\lab", "modelscan_version": "0.8.8", "timestamp": "2026-05-12T11:02:14.380336", "scanned": { "total_scanned": 1, "scanned_files": [ "safe_mode_public_function_top_level_control.keras" ] }, "skipped": { "total_skipped": 3, "skipped_files": [ { "category": "SCAN_NOT_SUPPORTED", "description": "Model Scan did not scan file", "source": "safe_mode_public_function_top_level_control.keras:metadata.json" }, { "category": "SCAN_NOT_SUPPORTED", "description": "Model Scan did not scan file", "source": "safe_mode_public_function_top_level_control.keras:config.json" }, { "category": "MODEL_CONFIG", "description": "Model Config not found", "source": "safe_mode_public_function_top_level_control.keras:model.weights.h5" } ] } }, "issues": [ { "description": "Use of unsafe operator 'Lambda' from module 'Keras'", "operator": "Lambda", "module": "Keras", "source": "safe_mode_public_function_top_level_control.keras:config.json", "scanner": "modelscan.scanners.KerasLambdaDetectScan", "severity": "MEDIUM" } ], "errors": [] }, "versions": { "PIL": "12.2.0", "keras": "3.14.1", "matplotlib": "3.10.9", "modelscan": "0.8.8", "numpy": "2.4.4", "python": "3.12.12 (main, Oct 28 2025, 14:15:42) [MSC v.1944 64 bit (AMD64)]", "tensorflow": "2.21.0" } }