|
|
{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Example usage of Tempestpy" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pygame 2.6.0 (SDL 2.28.4, Python 3.10.12)\n", "Hello from the pygame community. https://www.pygame.org/contribute.html\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "2024-09-23 08:47:31.782344: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2024-09-23 08:47:31.796255: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2024-09-23 08:47:31.800423: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", "2024-09-23 08:47:31.810763: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2024-09-23 08:47:32.657828: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", "error: XDG_RUNTIME_DIR not set in the environment.\n" ] } ], "source": [ "from sb3_contrib import MaskablePPO\n", "from sb3_contrib.common.wrappers import ActionMasker\n", "from stable_baselines3.common.logger import Logger, CSVOutputFormat, TensorBoardOutputFormat, HumanOutputFormat\n", "\n", "import gymnasium as gym\n", "\n", "from minigrid.core.actions import Actions\n", "from minigrid.core.constants import TILE_PIXELS\n", "from minigrid.wrappers import RGBImgObsWrapper, ImgObsWrapper\n", "\n", "import tempfile, datetime, shutil\n", "\n", "import time\n", "import os\n", "\n", "from utils import MiniGridShieldHandler, create_log_dir, ShieldingConfig, MiniWrapper, expname, shield_needed, shielded_evaluation, create_shield_overlay_image\n", "from sb3utils import MiniGridSbShieldingWrapper, parse_sb3_arguments, ImageRecorderCallback, InfoCallback\n", "\n", "import os, sys\n", "from copy import deepcopy\n", "\n", "from PIL import Image" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting the training\n" ] }, { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGgAgADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDzLVNU1CPV71Ev7pU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 "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGB size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.08271026611328125 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0008902549743652344 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n", "Elapsed time is 0.026116371154785156 seconds.\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.9\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.08337211608886719 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0007877349853515625 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n", "Elapsed time is 0.02267932891845703 seconds.\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.99\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.08304810523986816 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0007925033569335938 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n", "Elapsed time is 0.022092103958129883 seconds.\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.999\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.08694028854370117 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0007922649383544922 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 80\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 81\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 82\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 83\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 84\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 85\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 86\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 343\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 345\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 346\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 347\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 348\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 349\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 470\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 479\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 484\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 485\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 486\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 487\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 488\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 489\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 490\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 491\n", "Elapsed time is 0.021901845932006836 seconds.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAYAAADcjN+JAABnNklEQVR4Ae29Ta8kN5YenKopyBhA4xmUgNtXQKn0zqI2rd50b5TSzpvxrnZdv+D6B6hqpx8geCPVu7FhYK5X3km7Qi/a876LXqmyN64BuuWNgG5XqQa6qIGEtlWAYWFm5PME89xgMBmZQQYjSEY854KXQQbJQz48POcE4yNfu7i4+HFDIgJEgAgQASJABFaFwI1VjZaDJQJEgAgQASJABBoE6ABQEIgAESACRIAIrBABOgArnHQOmQgQASJABIgAHQDKABEgAkSACBCBFSJAB2CFk84hEwEiQASIABGgA0AZIAJEgAgQASKwQgToAKxw0jlkIkAEiAARIAJ0ACgDRIAIEAEiQARWiAAdgBVOOodMBIgAESACRIAOAGWACBABIkAEiMAKEaADsMJJ55CJABEgAkSACNABoAwQASJABIgAEVghAnQAVjjpHDIRIAJEgAgQAToAlAEiQASIABEgAitEgA7ACiedQyYCRIAIEAEiQAeAMkAEiAARIAJEYIUI0AFY4aRzyESACBABIkAE6ABQBogAESACRIAIrBABOgArnHQOmQgQASJABIgAHQDKABEgAkSACBCBFSJAB2CFk84hEwEiQASIABGgA0AZIAJEgAgQASKwQgToAKxw0jlkIkAEiAARIAJ0ACgDRIAIEAEiQARWiAAdgBVOOodMBIgAESACRIAOAGWACBABIkAEiMAKEaADsMJJ55CJABEgAkSACNABoAwQASJABIgAEVghAnQAVjjpHDIRIAJEgAgQAToAlAEiQASIABEgAitEgA7ACiedQyYCRIAIEAEicDM3BB89fpy7C1n5//XrLzebi4xduBTe5J9vAog/5W/F6++P//Es39oTzi//WvRvRjr749nm43v3svUguwOAkb98mW8SLi8uNheX0MJ56K9v5+HbcM03bDNo8s84+cKa+BN/IAA5yOGE7OUvp/7f/HVeEcjNfdW3ALZ79DXOPRmz8qfynxXuA2bE/wCSWTOIfxfuufGYm193tE1qlXrfwWG1DoA7+W7awWlZydyLj/zzyhPxJ/4+BOaSi7n4+Ma4z1uVvj+CwyodgL7J78s/gl99p3IvPvLPKzPEn/gfQ2Bq+Zi6/WNj259bhZ4fgAOKrM4BODX5p84PxLXMYrkXH/nn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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.9999\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.08632326126098633 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0008187294006347656 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 80\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 81\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 82\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 83\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 84\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 85\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 86\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 93\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 94\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 95\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 96\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 97\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 98\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 106\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 107\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 108\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 109\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 110\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 343\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 345\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 346\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 347\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 348\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 349\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 357\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 358\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 359\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 360\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 361\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 362\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 371\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 372\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 373\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 374\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 375\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n", "Elapsed time is 0.022674560546875 seconds.\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 470\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 479\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 483\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 484\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 485\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 486\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 487\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 488\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 489\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 490\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 491\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 492\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 496\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 497\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 498\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 499\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 500\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 501\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 502\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 503\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 504\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 505\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAYAAADcjN+JAABsYUlEQVR4Ae29T68lt5UneJWVUKMAVVchBTw/AenMrkVuLG/sTV5pN5uaXS4asD7B+wKZ2ukDCLORcjY9GKDerGYn7RJeuN298Ep5vUoDtnojwJ5MyciHLEhwjwQ0Wqiy+vyC97xg8MY/MhhBMuJ3HvgYZJA85I+H55xg/LmvXVxc/LAjEQEiQASIABEgAptC4MamRsvBEgEiQASIABEgAhUCdAAoCESACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEAE6AJQBIkAEiAARIAIbRIAOwAYnnUMmAkSACBABIkAHgDJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARoANAGSACRIAIEAEisEEE6ABscNI5ZCJABIgAESACdAAoA0SACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEAE6AJQBIkAEiAARIAIbRIAOwAYnnUMmAkSACBABIkAHgDJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARuJkagg+ePEndhaT8//H1V7vdRcIuXApv8k83AcSf8rfh9fen/+ss3doTzq/+UfRvQjr709nuwwcPkvUguQOAkb96lW4SLi8udheX0MJp6B9vp+FbcU03bDNo8k84+cKa+BN/IAA5SOGEHOUvpf7f/WNaEUjNfdO3APZH9DVOPRmL8qfyXxTuE2bE/wSSRTOIfxPupfFYml9ztFVqk3rfwWGzDoA7+W7awWldydSLj/zTyhPxJ/5tCCwlF0vxaRvjMW9T+r4Hh006AF2T35Xfg195p1IvPvJPKzPEn/j3ITC3fMzdft/Yjuc2oedH4IAim3MAhiZ/6PxIXPMslnrxkX9a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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 1.0\n", "Training with shield:\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=512x416>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Using cpu device\n", "Wrapping the env with a `Monitor` wrapper\n", "Wrapping the env in a DummyVecEnv.\n", "Wrapping the env in a VecTransposeImage.\n", "-----------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 2 |\n", "| sum_reached_goal | 4 |\n", "| rollout/ | |\n", "| ep_len_mean | 147 |\n", "| ep_rew_mean | -1.32 |\n", "| time/ | |\n", "| fps | 122 |\n", "| iterations | 1 |\n", "| time_elapsed | 16 |\n", "| total_timesteps | 2048 |\n", "-----------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 3 |\n", "| sum_reached_goal | 7 |\n", "| rollout/ | |\n", "| ep_len_mean | 155 |\n", "| ep_rew_mean | -1.4 |\n", "| time/ | |\n", "| fps | 64 |\n", "| iterations | 2 |\n", "| time_elapsed | 63 |\n", "| total_timesteps | 4096 |\n", "| train/ | |\n", "| approx_kl | 0.004596745 |\n", "| clip_fraction | 0.0505 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.965 |\n", "| explained_variance | 0.00267 |\n", "| learning_rate | 0.0003 |\n", "| loss | 0.00807 |\n", "| n_updates | 10 |\n", "| policy_gradient_loss | -0.00159 |\n", "| value_loss | 0.153 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 3 |\n", "| sum_reached_goal | 12 |\n", "| rollout/ | |\n", "| ep_len_mean | 157 |\n", "| ep_rew_mean | -1.34 |\n", "| time/ | |\n", "| fps | 55 |\n", "| iterations | 3 |\n", "| time_elapsed | 110 |\n", "| total_timesteps | 6144 |\n", "| train/ | |\n", "| approx_kl | 0.007139873 |\n", "| clip_fraction | 0.0514 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.989 |\n", "| explained_variance | 0.652 |\n", "| learning_rate | 0.0003 |\n", "| loss | 0.00669 |\n", "| n_updates | 20 |\n", "| policy_gradient_loss | -0.00884 |\n", "| value_loss | 0.0208 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 6 |\n", "| sum_reached_goal | 18 |\n", "| rollout/ | |\n", "| ep_len_mean | 151 |\n", "| ep_rew_mean | -1.29 |\n", "| time/ | |\n", "| fps | 51 |\n", "| iterations | 4 |\n", "| time_elapsed | 157 |\n", "| total_timesteps | 8192 |\n", "| train/ | |\n", "| approx_kl | 0.018118031 |\n", "| clip_fraction | 0.232 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.965 |\n", "| explained_variance | 0.662 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0331 |\n", "| n_updates | 30 |\n", "| policy_gradient_loss | -0.029 |\n", "| value_loss | 0.0188 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 7 |\n", "| sum_reached_goal | 27 |\n", "| rollout/ | |\n", "| ep_len_mean | 143 |\n", "| ep_rew_mean | -1.15 |\n", "| time/ | |\n", "| fps | 51 |\n", "| iterations | 5 |\n", "| time_elapsed | 200 |\n", "| total_timesteps | 10240 |\n", "| train/ | |\n", "| approx_kl | 0.026092233 |\n", "| clip_fraction | 0.305 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.899 |\n", "| explained_variance | 0.779 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0443 |\n", "| n_updates | 40 |\n", "| policy_gradient_loss | -0.0379 |\n", "| value_loss | 0.0181 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 12 |\n", "| sum_reached_goal | 41 |\n", "| rollout/ | |\n", "| ep_len_mean | 129 |\n", "| ep_rew_mean | -0.987 |\n", "| time/ | |\n", "| fps | 50 |\n", "| iterations | 6 |\n", "| time_elapsed | 243 |\n", "| total_timesteps | 12288 |\n", "| train/ | |\n", "| approx_kl | 0.031460643 |\n", "| clip_fraction | 0.366 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.904 |\n", "| explained_variance | 0.738 |\n", "| learning_rate | 0.0003 |\n", "| loss | 0.0227 |\n", "| n_updates | 50 |\n", "| policy_gradient_loss | -0.0438 |\n", "| value_loss | 0.0274 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 13 |\n", "| sum_reached_goal | 61 |\n", "| rollout/ | |\n", "| ep_len_mean | 113 |\n", "| ep_rew_mean | -0.68 |\n", "| time/ | |\n", "| fps | 49 |\n", "| iterations | 7 |\n", "| time_elapsed | 287 |\n", "| total_timesteps | 14336 |\n", "| train/ | |\n", "| approx_kl | 0.029588418 |\n", "| clip_fraction | 0.326 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.844 |\n", "| explained_variance | 0.839 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0211 |\n", "| n_updates | 60 |\n", "| policy_gradient_loss | -0.0413 |\n", "| value_loss | 0.0256 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 17 |\n", "| sum_reached_goal | 96 |\n", "| rollout/ | |\n", "| ep_len_mean | 76.9 |\n", "| ep_rew_mean | -0.129 |\n", "| time/ | |\n", "| fps | 49 |\n", "| iterations | 8 |\n", "| time_elapsed | 330 |\n", "| total_timesteps | 16384 |\n", "| train/ | |\n", "| approx_kl | 0.029721234 |\n", "| clip_fraction | 0.354 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.818 |\n", "| explained_variance | 0.77 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0383 |\n", "| n_updates | 70 |\n", "| policy_gradient_loss | -0.0478 |\n", "| value_loss | 0.0336 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 20 |\n", "| sum_reached_goal | 125 |\n", "| rollout/ | |\n", "| ep_len_mean | 61.6 |\n", "| ep_rew_mean | 0.154 |\n", "| time/ | |\n", "| fps | 49 |\n", "| iterations | 9 |\n", "| time_elapsed | 374 |\n", "| total_timesteps | 18432 |\n", "| train/ | |\n", "| approx_kl | 0.028434563 |\n", "| clip_fraction | 0.32 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.753 |\n", "| explained_variance | 0.856 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0663 |\n", "| n_updates | 80 |\n", "| policy_gradient_loss | -0.0471 |\n", "| value_loss | 0.0295 |\n", "-----------------------------------------\n", "-----------------------------------------\n", "| info/ | |\n", "| no_shield_action | 0 |\n", "| sum_opened_door | 0 |\n", "| sum_picked_up | 0 |\n", "| sum_ran_into_lava | 21 |\n", "| sum_reached_goal | 164 |\n", "| rollout/ | |\n", "| ep_len_mean | 54.5 |\n", "| ep_rew_mean | 0.285 |\n", "| time/ | |\n", "| fps | 48 |\n", "| iterations | 10 |\n", "| time_elapsed | 418 |\n", "| total_timesteps | 20480 |\n", "| train/ | |\n", "| approx_kl | 0.030364938 |\n", "| clip_fraction | 0.363 |\n", "| clip_range | 0.2 |\n", "| entropy_loss | -0.772 |\n", "| explained_variance | 0.897 |\n", "| learning_rate | 0.0003 |\n", "| loss | -0.0341 |\n", "| n_updates | 90 |\n", "| policy_gradient_loss | -0.0478 |\n", "| value_loss | 0.0312 |\n", "-----------------------------------------\n" ] } ], "source": [ "GRID_TO_PRISM_BINARY=os.getenv(\"M2P_BINARY\")\n", "\n", "def mask_fn(env: gym.Env):\n", " return env.create_action_mask()\n", "\n", "def nomask_fn(env: gym.Env):\n", " return [1.0] * 7\n", "\n", "def main():\n", " env = \"MiniGrid-LavaSlipperyCliff-16x13-Slip10-Time-v0\"\n", " \n", " formula = \"Pmax=? [G ! AgentIsOnLava]\"\n", " value_for_training = 0.99\n", " shield_comparison = \"absolute\"\n", " shielding = ShieldingConfig.Training\n", " \n", " logger = Logger(\"/tmp\", output_formats=[HumanOutputFormat(sys.stdout)])\n", " \n", " env = gym.make(env, render_mode=\"rgb_array\")\n", " image_env = RGBImgObsWrapper(env, TILE_PIXELS)\n", " env = RGBImgObsWrapper(env, 8)\n", " env = ImgObsWrapper(env)\n", " env = MiniWrapper(env)\n", "\n", " \n", " env.reset()\n", " Image.fromarray(env.render()).show()\n", " \n", " shield_handlers = dict()\n", " if shield_needed(shielding):\n", " for value in [0.9, 0.99, 0.999, 0.9999, 1.0]:\n", " shield_handler = MiniGridShieldHandler(GRID_TO_PRISM_BINARY, \"grid.txt\", \"grid.prism\", formula, shield_value=value, shield_comparison=shield_comparison, nocleanup=False, prism_file=None)\n", " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handler, create_shield_at_reset=False)\n", " create_shield_overlay_image(image_env, shield_handler.create_shield())\n", " print(f\"The shield for shield_value = {value}\")\n", "\n", " shield_handlers[value] = shield_handler\n", "\n", "\n", " if shielding == ShieldingConfig.Training:\n", " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handlers[value_for_training], create_shield_at_reset=False)\n", " env = ActionMasker(env, mask_fn)\n", " print(\"Training with shield:\")\n", " create_shield_overlay_image(image_env, shield_handlers[value_for_training].create_shield())\n", " elif shielding == ShieldingConfig.Disabled:\n", " env = ActionMasker(env, nomask_fn)\n", " else:\n", " assert(False) \n", " model = MaskablePPO(\"CnnPolicy\", env, verbose=1, device=\"auto\")\n", " model.set_logger(logger)\n", " steps = 20_000\n", "\n", " #assert(False)\n", " model.learn(steps,callback=[InfoCallback()])\n", "\n", "\n", "\n", "if __name__ == '__main__':\n", " print(\"Starting the training\")\n", " main()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 4 }
|