diff --git a/README.md b/README.md index f142a28..7900882 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,20 @@ # MI-HGNN for contact estimation/classification This repository implements a Morphologically-inspired Heterogeneous graph neural network for estimating contact information on the feet of a quadruped robot. -## Environment Setup -To get started, setup a Conda Python environment with Python=3.11, and run the following command to install the necessary dependencies: +## Installation +To get started, setup a Conda Python environment with Python=3.11: ``` -pip install -r requirements.txt +conda create -n mi-hgnn python=3.11 +conda activate mi-hgnn ``` -## Installation -Then, install the library with the following command: +Then, install the library (and dependencies) with the following command: ``` pip install . ``` +Note, if you have any issues with setup, refer to the `environment_files/README.md` so you can install the exact libraries we used. + ## URDF Download The necessary URDF files are part of git submodules in this repository, so run the following commands to download them: ``` diff --git a/environment_files/README.md b/environment_files/README.md new file mode 100644 index 0000000..3340e67 --- /dev/null +++ b/environment_files/README.md @@ -0,0 +1,3 @@ +## Environment Files + +In case you have difficulty installing the libraries, this folder contains verbose `requirements.txt` files and `conda_env.yml` to provide the exact versions of all the libraries used during training. \ No newline at end of file diff --git a/environment_files/conda_env.yml b/environment_files/conda_env.yml new file mode 100644 index 0000000..a51fdd9 --- /dev/null +++ b/environment_files/conda_env.yml @@ -0,0 +1,100 @@ +name: mi-hgnn +channels: + - defaults +dependencies: + - _libgcc_mutex=0.1=main + - _openmp_mutex=5.1=1_gnu + - bzip2=1.0.8=h5eee18b_6 + - ca-certificates=2024.7.2=h06a4308_0 + - ld_impl_linux-64=2.38=h1181459_1 + - libffi=3.4.4=h6a678d5_1 + - libgcc-ng=11.2.0=h1234567_1 + - libgomp=11.2.0=h1234567_1 + - libstdcxx-ng=11.2.0=h1234567_1 + - libuuid=1.41.5=h5eee18b_0 + - ncurses=6.4=h6a678d5_0 + - openssl=3.0.14=h5eee18b_0 + - pip=24.2=py311h06a4308_0 + - python=3.11.9=h955ad1f_0 + - readline=8.2=h5eee18b_0 + - setuptools=72.1.0=py311h06a4308_0 + - sqlite=3.45.3=h5eee18b_0 + - tk=8.6.14=h39e8969_0 + - wheel=0.43.0=py311h06a4308_0 + - xz=5.4.6=h5eee18b_1 + - zlib=1.2.13=h5eee18b_1 + - pip: + - aiohappyeyeballs==2.3.6 + - aiohttp==3.10.3 + - aiosignal==1.3.1 + - appdirs==1.4.4 + - contourpy==1.2.1 + - cycler==0.12.1 + - cython==0.29.37 + - docker-pycreds==0.4.0 + - filelock==3.15.4 + - fonttools==4.53.1 + - freetype-py==2.4.0 + - frozenlist==1.4.1 + - fsspec==2024.6.1 + - gdown==5.2.0 + - imageio==2.35.0 + - jinja2==3.1.4 + - joblib==1.4.2 + - kiwisolver==1.4.5 + - lightning==2.2.1 + - lightning-utilities==0.11.6 + - lz4==4.3.3 + - markupsafe==2.1.5 + - matplotlib==3.8.3 + - mi-hgnn==0.1.0 + - mpmath==1.3.0 + - multidict==6.0.5 + - names==0.3.0 + - networkx==3.2.1 + - numpy==1.26.4 + - nvidia-cublas-cu12==12.1.3.1 + - nvidia-cuda-cupti-cu12==12.1.105 + - nvidia-cuda-nvrtc-cu12==12.1.105 + - nvidia-cuda-runtime-cu12==12.1.105 + - nvidia-cudnn-cu12==8.9.2.26 + - nvidia-cufft-cu12==11.0.2.54 + - nvidia-curand-cu12==10.3.2.106 + - nvidia-cusolver-cu12==11.4.5.107 + - nvidia-cusparse-cu12==12.1.0.106 + - nvidia-nccl-cu12==2.19.3 + - nvidia-nvjitlink-cu12==12.6.20 + - nvidia-nvtx-cu12==12.1.105 + - pandas==2.2.1 + - pillow==10.4.0 + - protobuf==4.25.4 + - pycollada==0.8 + - pyglet==2.0.17 + - pyopengl==3.1.7 + - pyparsing==3.1.2 + - pyribbit==0.1.46 + - pysocks==1.7.1 + - pytorch-lightning==2.4.0 + - pyyaml==6.0.2 + - rosbags==0.9.22 + - ruamel-yaml==0.18.6 + - ruamel-yaml-clib==0.2.8 + - scikit-learn==1.4.1.post1 + - scipy==1.12.0 + - sentry-sdk==2.13.0 + - setproctitle==1.3.3 + - sympy==1.13.2 + - threadpoolctl==3.5.0 + - torch==2.2.1 + - torch-geometric==2.5.0 + - torchmetrics==1.3.2 + - torchvision==0.17.1 + - trimesh==4.4.6 + - triton==2.2.0 + - typing-extensions==4.12.2 + - tzdata==2024.1 + - urchin==0.0.27 + - wandb==0.16.6 + - yarl==1.9.4 + - zstandard==0.23.0 +prefix: /home/dlittleman/miniconda3/envs/mi-hgnn diff --git a/environment_files/requirements.txt b/environment_files/requirements.txt new file mode 100644 index 0000000..ad5cb2c --- /dev/null +++ b/environment_files/requirements.txt @@ -0,0 +1,223 @@ +actionlib==1.14.0 +aiohappyeyeballs==2.3.6 +aiohttp==3.10.3 +aiosignal==1.3.1 +angles==1.9.13 +appdirs==1.4.4 +attrs==23.1.0 +base58==2.1.1 +bcrypt==4.0.1 +beautifulsoup4==4.12.2 +bondpy==1.8.6 +camera-calibration==1.17.0 +camera-calibration-parsers==1.12.0 +catkin==0.8.10 +certifi==2023.5.7 +cffi==1.15.1 +charset-normalizer==3.1.0 +click==8.1.3 +contourpy==1.2.1 +controller-manager==0.20.0 +controller-manager-msgs==0.20.0 +cryptography==41.0.1 +cv-bridge==1.16.2 +cycler==0.12.1 +Cython==0.29.37 +diagnostic-analysis==1.11.0 +diagnostic-common-diagnostics==1.11.0 +diagnostic-updater==1.11.0 +distro==1.8.0 +docker==6.1.3 +docker-pycreds==0.4.0 +dockerpty==0.4.1 +dockertown==0.2.2 +docopt==0.6.2 +dt-authentication-daffy==0.1.16 +dt-data-api-daffy==1.2.0 +dtproject==0.0.5 +duckietown-docker-utils-daffy==6.1.1 +duckietown-shell==5.5.8 +dynamic-reconfigure==1.7.3 +ecdsa==0.18.0 +filelock==3.15.4 +fonttools==4.53.1 +freetype-py==2.4.0 +frozenlist==1.4.1 +fsspec==2024.6.1 +future==0.18.3 +gazebo_plugins==2.9.2 +gazebo_ros==2.9.2 +gdown==5.2.0 +gencpp==0.7.0 +geneus==3.0.0 +genlisp==0.4.18 +genmsg==0.6.0 +gennodejs==2.0.2 +genpy==0.6.15 +gitdb==4.0.10 +GitPython==3.1.31 +humanfriendly==10.0 +idna==3.4 +ifaddr==0.2.0 +image-geometry==1.16.2 +imageio==2.35.0 +interactive-markers==1.12.0 +Jinja2==3.1.4 +joblib==1.4.2 +joint-state-publisher==1.15.1 +joint-state-publisher-gui==1.15.1 +jsonschema==3.2.0 +kiwisolver==1.4.5 +laser_geometry==1.6.7 +lightning==2.2.1 +lightning-utilities==0.11.6 +lxml==4.9.2 +lz4==4.3.3 +MarkupSafe==2.1.5 +matplotlib==3.8.3 +message-filters==1.16.0 +mi_hgnn @ file:///home/dlittleman/state-estimation-gnn +mpmath==1.3.0 +multidict==6.0.5 +names==0.3.0 +networkx==3.2.1 +numpy==1.26.4 +nvidia-cublas-cu12==12.1.3.1 +nvidia-cuda-cupti-cu12==12.1.105 +nvidia-cuda-nvrtc-cu12==12.1.105 +nvidia-cuda-runtime-cu12==12.1.105 +nvidia-cudnn-cu12==8.9.2.26 +nvidia-cufft-cu12==11.0.2.54 +nvidia-curand-cu12==10.3.2.106 +nvidia-cusolver-cu12==11.4.5.107 +nvidia-cusparse-cu12==12.1.0.106 +nvidia-nccl-cu12==2.19.3 +nvidia-nvjitlink-cu12==12.6.20 +nvidia-nvtx-cu12==12.1.105 +packaging==23.1 +pandas==2.2.1 +paramiko==3.2.0 +pillow==10.4.0 +progressbar2==4.2.0 +protobuf==4.25.4 +psutil==5.9.5 +pycollada==0.8 +pycparser==2.21 +pydantic==1.10.9 +pyglet==2.0.17 +PyNaCl==1.5.0 +PyOpenGL==3.1.7 +pyparsing==3.1.2 +pyribbit==0.1.46 +pyrsistent==0.19.3 +PySocks==1.7.1 +python-dateutil==2.8.2 +python-dotenv==0.21.1 +python-qt-binding==0.4.4 +python-utils==3.6.0 +pytorch-lightning==2.4.0 +pytz==2023.3 +PyYAML==6.0.2 +qt-dotgraph==0.4.2 +qt-gui==0.4.2 +qt-gui-cpp==0.4.2 +qt-gui-py-common==0.4.2 +requests==2.31.0 +resource_retriever==1.12.7 +rosbag==1.16.0 +rosbags==0.9.22 +rosboost-cfg==1.15.8 +rosclean==1.15.8 +roscreate==1.15.8 +rosgraph==1.16.0 +roslaunch==1.16.0 +roslib==1.15.8 +roslint==0.12.0 +roslz4==1.16.0 +rosmake==1.15.8 +rosmaster==1.16.0 +rosmsg==1.16.0 +rosnode==1.16.0 +rosparam==1.16.0 +rospy==1.16.0 +rosservice==1.16.0 +rostest==1.16.0 +rostopic==1.16.0 +rosunit==1.15.8 +roswtf==1.16.0 +rqt-console==0.4.12 +rqt-image-view==0.4.17 +rqt-logger-level==0.4.12 +rqt-moveit==0.5.11 +rqt-reconfigure==0.5.5 +rqt-robot-dashboard==0.5.8 +rqt-robot-monitor==0.5.15 +rqt-runtime-monitor==0.5.10 +rqt-rviz==0.7.0 +rqt-tf-tree==0.6.4 +rqt_action==0.4.9 +rqt_bag==0.5.1 +rqt_bag_plugins==0.5.1 +rqt_dep==0.4.12 +rqt_graph==0.4.14 +rqt_gui==0.5.3 +rqt_gui_py==0.5.3 +rqt_launch==0.4.9 +rqt_msg==0.4.10 +rqt_nav_view==0.5.7 +rqt_plot==0.4.13 +rqt_pose_view==0.5.11 +rqt_publisher==0.4.10 +rqt_py_common==0.5.3 +rqt_py_console==0.4.10 +rqt_robot_steering==0.5.12 +rqt_service_caller==0.4.10 +rqt_shell==0.4.11 +rqt_srv==0.4.9 +rqt_top==0.4.10 +rqt_topic==0.4.13 +rqt_web==0.4.10 +ruamel.yaml==0.18.6 +ruamel.yaml.clib==0.2.8 +rviz==1.14.25 +scikit-learn==1.4.1.post1 +scipy==1.12.0 +sensor-msgs==1.13.1 +sentry-sdk==2.13.0 +setproctitle==1.3.3 +six==1.16.0 +smach==2.5.2 +smach-ros==2.5.2 +smclib==1.8.6 +smmap==5.0.0 +soupsieve==2.4.1 +sympy==1.13.2 +termcolor==2.3.0 +texttable==1.6.7 +tf==1.13.2 +tf-conversions==1.13.2 +tf2-geometry-msgs==0.7.7 +tf2-kdl==0.7.7 +tf2-py==0.7.7 +tf2-ros==0.7.7 +threadpoolctl==3.5.0 +topic-tools==1.16.0 +torch==2.2.1 +torch_geometric==2.5.0 +torchmetrics==1.3.2 +torchvision==0.17.1 +tqdm==4.65.0 +trimesh==4.4.6 +triton==2.2.0 +typer==0.9.0 +typing_extensions==4.12.2 +tzdata==2024.1 +urchin==0.0.27 +urllib3==2.0.3 +wandb==0.16.6 +websocket-client==0.59.0 +whichcraft==0.6.1 +xacro==1.14.18 +yarl==1.9.4 +zeroconf==0.66.0 +zstandard==0.23.0 diff --git a/pyproject.toml b/pyproject.toml index 58209a1..1035a51 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,13 +3,32 @@ requires = ["hatchling"] build-backend = "hatchling.build" [project] -name = "grfgnn" +name = "mi_hgnn" version = "0.1.0" +dependencies = [ + "numpy==1.26.4", + "matplotlib==3.8.3", + "networkx==3.2.1", + "urchin==0.0.27", + "torch==2.2.1", + "torchvision==0.17.1", + "torchmetrics==1.3.2", + "torch_geometric==2.5.0", + "pandas==2.2.1", + "rosbags==0.9.22", + "lightning==2.2.1", + "wandb==0.16.6", + "scipy==1.12.0", + "names==0.3.0", + "scikit-learn==1.4.1.post1", + "gdown==5.2.0" +] authors = [ { name="Daniel Butterfield", email="dbutterfield3@gatech.edu" }, { name="Jackson Cheng", email="ncheng49@gatech.edu" }, + { name="Lu Gan", email="lgan@gatech.edu" }, ] -description = "A graph neural network implementation that learns to estimate contact state on a robotic quadruped." +description = "A Morphological-Informed Heterogeneous graph neural network implementation that learns to estimate contact state on a robotic quadruped." readme = "README.md" requires-python = ">=3.11" classifiers = [ diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 0394fa1..0000000 --- a/requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -numpy -matplotlib -networkx -urchin -torch -torchvision -torch_geometric -pandas -rosbags -pathlib -gdown -lightning -wandb -scipy -names \ No newline at end of file diff --git a/research/evaluator_classification.py b/research/evaluator_classification.py index 8ebd604..a1bac5a 100644 --- a/research/evaluator_classification.py +++ b/research/evaluator_classification.py @@ -1,11 +1,11 @@ from pathlib import Path -from grfgnn.lightning_py.gnnLightning import evaluate_model -from grfgnn import QuadSDKDataset_A1Speed0_5, QuadSDKDataset_A1Speed1_0, QuadSDKDataset_A1Speed1_5FlippedOver -from grfgnn.visualization import visualize_model_outputs_classification -from grfgnn.lightning_py.gnnLightning import Base_Lightning +from mi_hgnn.lightning_py.gnnLightning import evaluate_model +from mi_hgnn import QuadSDKDataset_A1Speed0_5, QuadSDKDataset_A1Speed1_0, QuadSDKDataset_A1Speed1_5FlippedOver +from mi_hgnn.visualization import visualize_model_outputs_classification +from mi_hgnn.lightning_py.gnnLightning import Base_Lightning import torch from torch.utils.data import Subset -import grfgnn.datasets_py.LinTzuYaunDataset as linData +import mi_hgnn.datasets_py.LinTzuYaunDataset as linData import numpy as np import torchmetrics diff --git a/research/sweeper_classification.py b/research/sweeper_classification.py deleted file mode 100644 index 7a99152..0000000 --- a/research/sweeper_classification.py +++ /dev/null @@ -1,78 +0,0 @@ -import grfgnn.datasets_py.LinTzuYaunDataset as linData -from pathlib import Path -import numpy as np -import torch -from grfgnn.lightning_py.gnnLightning import train_model -import yaml -import wandb - -def main(): - # Import the config yaml file - with open("./research/sweeps/sweep_class_hs_ln_abalation.yaml") as file: - config = yaml.load(file, Loader=yaml.FullLoader) - wandb.init(config=config) - - # Get the path to the URDF file - path_to_urdf = Path('urdf_files', 'MiniCheetah', 'miniCheetah.urdf').absolute() - - # Set model parameters (so they all match) - model_type = 'heterogeneous_gnn' - history_length = 150 - normalize = True - - # Initialize the Training/Validation datasets - air_walking_gait = linData.LinTzuYaunDataset_air_walking_gait( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-AWG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_difficult_slippery = linData.LinTzuYaunDataset_concrete_difficult_slippery( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CDS').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_left_circle = linData.LinTzuYaunDataset_concrete_left_circle( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CLC').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - middle_pebble = linData.LinTzuYaunDataset_middle_pebble( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-MP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - rock_road = linData.LinTzuYaunDataset_rock_road( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-RR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - asphalt_road = linData.LinTzuYaunDataset_asphalt_road( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-AR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_galloping = linData.LinTzuYaunDataset_concrete_galloping( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - grass = linData.LinTzuYaunDataset_grass( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-G').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - old_asphalt_road = linData.LinTzuYaunDataset_old_asphalt_road( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-OAR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - sidewalk = linData.LinTzuYaunDataset_sidewalk( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-S').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - train_val_datasets = [air_walking_gait, concrete_difficult_slippery, concrete_left_circle, middle_pebble, rock_road, asphalt_road, concrete_galloping, grass, old_asphalt_road, sidewalk] - - train_subsets = [] - val_subsets = [] - for dataset in train_val_datasets: - split_index = int(dataset.len() * 0.85) - train_subsets.append(torch.utils.data.Subset(dataset, np.arange(0, split_index))) - val_subsets.append(torch.utils.data.Subset(dataset, np.arange(split_index, dataset.len()))) - train_dataset = torch.utils.data.ConcatDataset(train_subsets) - val_dataset = torch.utils.data.ConcatDataset(val_subsets) - - # Initialize the Testing datasets - air_jumping_gait = linData.LinTzuYaunDataset_air_jumping_gait( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-AJG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_pronking = linData.LinTzuYaunDataset_concrete_pronking( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_right_circle = linData.LinTzuYaunDataset_concrete_right_circle( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CRC').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - forest = linData.LinTzuYaunDataset_forest( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-F').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - small_pebble = linData.LinTzuYaunDataset_small_pebble( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-SP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - test_dataset = torch.utils.data.ConcatDataset([air_jumping_gait, concrete_pronking, concrete_right_circle, forest, small_pebble]) - - # Convert them to subsets - train_dataset = torch.utils.data.Subset(train_dataset, np.arange(0, train_dataset.__len__())) - val_dataset = torch.utils.data.Subset(val_dataset, np.arange(0, val_dataset.__len__())) - test_dataset = torch.utils.data.Subset(test_dataset, np.arange(0, test_dataset.__len__())) - - # Train the model - train_model(train_dataset, val_dataset, test_dataset, normalize, num_layers=wandb.config.num_layers, hidden_size=wandb.config.hidden_size, - logger_project_name="grfgnn-class-abalation", batch_size=30, regression=False, lr=0.0001, epochs=30) - -if __name__ == '__main__': - main() diff --git a/research/sweeper_regression.py b/research/sweeper_regression.py deleted file mode 100644 index b54cd60..0000000 --- a/research/sweeper_regression.py +++ /dev/null @@ -1,65 +0,0 @@ -from pathlib import Path -from grfgnn.lightning_py.gnnLightning import train_model, evaluate_model -from grfgnn.visualization import visualize_model_outputs -import torch -from grfgnn.datasets import QuadSDKDataset_A1Speed0_5, QuadSDKDataset_A1Speed1_0, QuadSDKDataset_A1Speed1_5FlippedOver -from torch.utils.data import Subset -import wandb -import yaml - - -def main(): - # Import the config yaml file - with open("./research/sweeps/sweep2.yaml") as file: - config = yaml.load(file, Loader=yaml.FullLoader) - wandb.init(config=config) - - # TODO: Do we need to use the same A1 URDF file from QuadSDK? - path_to_urdf = Path('urdf_files', 'A1', 'a1.urdf').absolute() - path_to_quad_sdk_05 = Path( - Path('.').parent, 'datasets', 'QuadSDK-A1Speed0.5').absolute() - path_to_quad_sdk_1 = Path( - Path('.').parent, 'datasets', 'QuadSDK-A1Speed1.0').absolute() - path_to_quad_sdk_15Flipped = Path( - Path('.').parent, 'datasets', - 'QuadSDK-A1Speed1.5FlippedOver').absolute() - - model_type = wandb.config.model_type - - # Initalize the datasets - dataset_05 = QuadSDKDataset_A1Speed0_5( - path_to_quad_sdk_05, path_to_urdf, 'package://a1_description/', - 'unitree_ros/robots/a1_description', model_type, - wandb.config.history_length) - dataset_1 = QuadSDKDataset_A1Speed1_0(path_to_quad_sdk_1, path_to_urdf, - 'package://a1_description/', - 'unitree_ros/robots/a1_description', - model_type, - wandb.config.history_length) - dataset_15Flipped = QuadSDKDataset_A1Speed1_5FlippedOver( - path_to_quad_sdk_15Flipped, path_to_urdf, 'package://a1_description/', - 'unitree_ros/robots/a1_description', model_type, - wandb.config.history_length) - - # Split the data into training, validation, and testing sets - rand_gen = torch.Generator().manual_seed(10341885) - train_dataset = Subset(dataset_1, range(0, dataset_1.len())) - val_dataset, test_dataset = torch.utils.data.random_split( - dataset_05, [0.7, 0.3], generator=rand_gen) - - # Train the model, evaluate, and visualize - path_to_ckpt = train_model(train_dataset, - val_dataset, - test_dataset, - batch_size=wandb.config.batch_size, - num_layers=wandb.config.num_layers, - optimizer=wandb.config.optimizer, - lr=wandb.config.learning_rate, - epochs=wandb.config.epochs, - hidden_size=wandb.config.hidden_size) - models = sorted(Path('.', path_to_ckpt).glob(("epoch=*"))) - pred, labels = evaluate_model(models[0], test_dataset) - visualize_model_outputs(pred[0:300], labels[0:300], str(path_to_ckpt) + ".pdf") - -if __name__ == '__main__': - main() diff --git a/research/sweeps/sweep1.yaml b/research/sweeps/sweep1.yaml deleted file mode 100644 index 2aca9fe..0000000 --- a/research/sweeps/sweep1.yaml +++ /dev/null @@ -1,24 +0,0 @@ -program: research/sweeper.py -project: grfgnn-QuadSDK -name: sweep_grf -method: random -metric: - goal: minimize - name: val_MSE_loss -parameters: - model_type: - values: ["mlp", "gnn", "heterogeneous_gnn"] - learning_rate: - values: [0.1, 0.03, 0.003, 0.0003, 0.0001] - batch_size: - values: [16, 32, 64, 128, 256] - epochs: - values: [25] - optimizer: - values: ["adam", "sgd"] - hidden_size: - values: [5, 10, 20, 50, 100, 200, 1000] - num_layers: - values: [4, 5, 8, 12, 16] - history_length: - values: [1, 3, 5, 10, 20, 50] \ No newline at end of file diff --git a/research/sweeps/sweep2.yaml b/research/sweeps/sweep2.yaml deleted file mode 100644 index 6e49e4a..0000000 --- a/research/sweeps/sweep2.yaml +++ /dev/null @@ -1,28 +0,0 @@ -program: research/sweeper.py -project: grfgnn-QuadSDK -name: sweep_grf -method: random -metric: - goal: minimize - name: val_MSE_loss -parameters: - model_type: - values: ["mlp", "gnn", "heterogeneous_gnn"] - learning_rate: - values: [0.003] - batch_size: - values: [128, 256] - epochs: - min: 10 - max: 100 - optimizer: - values: ["adam"] - hidden_size: - min: 5 - max: 100 - num_layers: - min: 4 - max: 8 - history_length: - min: 1 - max: 15 \ No newline at end of file diff --git a/research/sweeps/sweep_class_hs_ln_abalation.yaml b/research/sweeps/sweep_class_hs_ln_abalation.yaml deleted file mode 100644 index 326f8bb..0000000 --- a/research/sweeps/sweep_class_hs_ln_abalation.yaml +++ /dev/null @@ -1,9 +0,0 @@ -program: research/sweeper_classification.py -project: grfgnn-class-abalation -name: sweep_class_hs_ln_abalation -method: grid -parameters: - hidden_size: - values: [5, 10, 25, 50, 128, 256] - num_layers: - values: [4, 8, 12] \ No newline at end of file diff --git a/research/train_classification.py b/research/train_classification.py index efafb39..1fddcaf 100644 --- a/research/train_classification.py +++ b/research/train_classification.py @@ -1,9 +1,643 @@ -import grfgnn.datasets_py.LinTzuYaunDataset as linData +import mi_hgnn.datasets_py.LinTzuYaunDataset as linData from pathlib import Path from torch_geometric.loader import DataLoader import numpy as np import torch -from grfgnn.lightning_py.gnnLightning import train_model +from mi_hgnn.lightning_py.gnnLightning import train_model + +def ensure_dataset_splits_match_morphoSymm(train_dataset, val_dataset, test_dataset): + """ + This test method ensures that we split along the + exact same lines that MorphoSymm does. + + Also ensures that the 85% to 15% split between train and val + is calculated correctly (with proper rounding). + """ + + # Set the desired values + des_train = torch.tensor([[-0.5070424307277502, 0.3709857262449011, -0.3871013307788826, -1.8706436620809712, 0.6202013306171170, 0.0051427851493144, 1.4497115490336714, -0.6901781893193156, 0.2274424089362442, -1.2358640175860194, -0.3717906758082477, -0.4127745555736810], + [-0.5070424307277502, 0.3709857262449011, -0.3871013307788826, -1.8706436620809712, 0.6202013306171170, 0.0051427851493144, 1.4497115490336714, -0.6901781893193156, 0.2274424089362442, -1.2358640175860194, -0.3717906758082477, -0.4127745555736810], + [0.5587155446872661, 0.2619164397173178, -0.5044238354503673, -1.8140266661777544, 0.3932564676465085, 0.1354423596814509, 1.4426297845465850, -0.7350076227469490, 0.2812821166746715, -1.5472005905384125, -0.4061096303192538, -0.4746808603812668], + [0.5587155446872661, 0.2619164397173178, -0.5044238354503673, -1.8140266661777544, 0.3932564676465085, 0.1354423596814509, 1.4426297845465850, -0.7350076227469490, 0.2812821166746715, -1.5472005905384125, -0.4061096303192538, -0.4746808603812668], + [0.9462638993836358, 0.2182887251062844, -0.5721195128513901, -1.7800564686358242, 0.2986961080754215, 0.1969305113612365, 1.4213844910853262, -0.7798284367872670, 0.3366613835858427, -1.6717352197193698, -0.4061096303192538, -0.5410084299964771], + [0.9462638993836358, 0.2182887251062844, -0.5721195128513901, -1.7800564686358242, 0.2986961080754215, 0.1969305113612365, 1.4213844910853262, -0.7798284367872670, 0.3366613835858427, -1.6717352197193698, -0.4061096303192538, -0.5410084299964771], + [1.0431509880577281, 0.1746610104952511, -0.6443159526301635, -1.7460862710938942, 0.2041199884444061, 0.2598824633327301, 1.4143027265982400, -0.8246492508275850, 0.3920391550534269, -1.7340025343098484, -0.4061096303192538, -0.6073359996116875], + [1.0431509880577281, 0.1746610104952511, -0.6443159526301635, -1.7460862710938942, 0.2041199884444061, 0.2598824633327301, 1.4143027265982400, -0.8246492508275850, 0.3920391550534269, -1.7340025343098484, -0.4061096303192538, -0.6073359996116875], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.8493768107095434, 0.1310332958842177, -0.7706619155970023, -1.6328522792874607, -0.0291288984976083, 0.4092142881330871, 1.4001391976240676, -0.9280818986129341, 0.5243328242493467, -1.7962698489003273, -0.4575880620857629, -0.7178826654287748], + [0.1711671899908966, 0.0655917239676677, -0.7932249480433580, -1.5762352833842439, -0.1993375457255648, 0.5146221415161457, 1.3718121396757224, -0.9970369971365003, 0.6150927909836816, -1.6406015624241306, -0.5090664938522720, -0.7355698740344836], + [0.1711671899908966, 0.0655917239676677, -0.7932249480433580, -1.5762352833842439, -0.1993375457255648, 0.5146221415161457, 1.3718121396757224, -0.9970369971365003, 0.6150927909836816, -1.6406015624241306, -0.5090664938522720, -0.7355698740344836], + [-1.1852520514463971, -0.1961745636985324, -0.4457625831146250, -1.2705035055068734, -0.9621402063255944, 0.9948205107157879, 1.2939127303177735, -1.2521708616736948, 1.0412000003125965, -0.8933159531951488, -0.6635017891517995, -0.3597129297565548], + [-1.1852520514463971, -0.1961745636985324, -0.4457625831146250, -1.2705035055068734, -0.9621402063255944, 0.9948205107157879, 1.2939127303177735, -1.2521708616736948, 1.0412000003125965, -0.8933159531951488, -0.6635017891517995, -0.3597129297565548], + [-1.1852520514463971, -0.1961745636985324, -0.4457625831146250, -1.2705035055068734, -0.9621402063255944, 0.9948205107157879, 1.2939127303177735, -1.2521708616736948, 1.0412000003125965, -0.8933159531951488, -0.6635017891517995, -0.3597129297565548], + [-1.1852520514463971, -0.1961745636985324, -0.4457625831146250, -1.2705035055068734, -0.9621402063255944, 0.9948205107157879, 1.2939127303177735, -1.2521708616736948, 1.0412000003125965, -0.8933159531951488, -0.6635017891517995, -0.3597129297565548], + [-0.6039295194018427, -0.2179884210040490, -0.3961269824282219, -1.2252099087843000, -1.0503965419252754, 1.0548484201988868, 1.2797492013436012, -1.2659705007657236, 1.0919658237580905, -0.9867169250808667, -0.6978207436628056, -0.3110725687470532], + [-0.6039295194018427, -0.2179884210040490, -0.3961269824282219, -1.2252099087843000, -1.0503965419252754, 1.0548484201988868, 1.2797492013436012, -1.2659705007657236, 1.0919658237580905, -0.9867169250808667, -0.6978207436628056, -0.3110725687470532], + [-0.1194940760313807, -0.2616161356150824, -0.3600287625388351, -1.1572695137004398, -1.1260448295821450, 1.1104813707118404, 1.2514044389840384, -1.2728660106180802, 1.1411898448654600, -1.0489842396713454, -0.7321396981738116, -0.2624300583623413], + [-0.1194940760313807, -0.2616161356150824, -0.3600287625388351, -1.1572695137004398, -1.1260448295821450, 1.1104813707118404, 1.2514044389840384, -1.2728660106180802, 1.1411898448654600, -1.0489842396713454, -0.7321396981738116, -0.2624300583623413], + [0.2680542786649889, -0.2834299929205991, -0.3284422717971255, -1.1006525177972231, -1.1890850692962029, 1.1587931849092417, 1.2301591455227796, -1.2728660106180802, 1.1858019179507393, -1.1423852115570634, -0.7321396981738116, -0.2270556411509238], + [0.2680542786649889, -0.2834299929205991, -0.3284422717971255, -1.1006525177972231, -1.1890850692962029, 1.1587931849092417, 1.2301591455227796, -1.2728660106180802, 1.1858019179507393, -1.1423852115570634, -0.7321396981738116, -0.2270556411509238], + [0.5587155446872661, -0.3052438502261157, -0.2968557810554158, -1.0213887235327195, -1.2521253090102609, 1.2041773985232269, 1.2018320875744346, -1.2763137655442585, 1.2242587452322169, -1.1735188688523026, -0.7321396981738116, -0.2005259029299659], + [0.6556026333613586, -0.3270577075316324, -0.2788066711107224, -0.9534483284488594, -1.3025575007815073, 1.2480971002264998, 1.1593415006519170, -1.2763137655442585, 1.2611767610627440, -1.1423852115570634, -0.7321396981738116, -0.1784152801414222], + [0.6556026333613586, -0.3270577075316324, -0.2788066711107224, -0.9534483284488594, -1.3025575007815073, 1.2480971002264998, 1.1593415006519170, -1.2763137655442585, 1.2611767610627440, -1.1423852115570634, -0.7321396981738116, -0.1784152801414222], + [0.4618284560131737, -0.4143131367536991, -0.2833184002583994, -0.7835973407392092, -1.3971178603525942, 1.3212999239539747, 1.0672785623197956, -1.2659705007657236, 1.3227097783341297, -0.9244496104903881, -0.6635017891517995, -0.1739940153337976], + [0.1711671899908966, -0.4579408513647324, -0.2923418585537535, -0.6816867481134189, -1.4538540760952463, 1.3520447114128717, 0.9964609174489331, -1.2521708616736948, 1.3473217888878146, -0.7376476667189521, -0.6120233573852903, -0.1828365449490468], + [0.1711671899908966, -0.4579408513647324, -0.2923418585537535, -0.6816867481134189, -1.4538540760952463, 1.3520447114128717, 0.9964609174489331, -1.2521708616736948, 1.3473217888878146, -0.7376476667189521, -0.6120233573852903, -0.1828365449490468], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [0.0742801013168041, -0.4361269940592158, -0.2968557810554158, -0.6363931513908455, -1.4853741959522753, 1.3637565369845439, 0.9539703305264156, -1.2383798419689818, 1.3550143506989796, -0.6131130375379948, -0.5777044028742843, -0.1872599591318817], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3924992794481824, -0.2923418585537535, -0.5571293571263420, -1.5042862678664928, 1.3754683625562161, 0.9043979791168117, -1.2176933124119118, 1.3580904781572936, -0.4885784083570376, -0.5433854483632782, -0.1961024887471309], + [-0.1194940760313807, -0.3270577075316324, -0.2833184002583994, -0.3872783694166917, -1.5042862678664928, 1.3725407619728003, 0.7627626893750866, -1.1452904589621675, 1.3411695339711869, -0.3017764645856016, -0.4575880620857629, -0.2005259029299659], + [-0.1194940760313807, -0.3270577075316324, -0.2833184002583994, -0.3872783694166917, -1.5042862678664928, 1.3725407619728003, 0.7627626893750866, -1.1452904589621675, 1.3411695339711869, -0.3017764645856016, -0.4575880620857629, -0.2005259029299659], + [0.0742801013168041, -0.3052438502261157, -0.2742927486090601, -0.3079862666542366, -1.4916782199236811, 1.3578999125797035, 0.6990268089913103, -1.1004696449218494, 1.3211724623267664, -0.2083754926998837, -0.4232691075747568, -0.1961024887471309], + [0.0742801013168041, -0.3052438502261157, -0.2742927486090601, -0.3079862666542366, -1.4916782199236811, 1.3578999125797035, 0.6990268089913103, -1.1004696449218494, 1.3211724623267664, -0.2083754926998837, -0.4232691075747568, -0.1961024887471309], + [0.0742801013168041, -0.3052438502261157, -0.2742927486090601, -0.3079862666542366, -1.4916782199236811, 1.3578999125797035, 0.6990268089913103, -1.1004696449218494, 1.3211724623267664, -0.2083754926998837, -0.4232691075747568, -0.1961024887471309], + [0.3649413673390813, -0.2834299929205991, -0.2607553678120438, -0.2513692707510199, -1.4790701719808694, 1.3359407733470714, 0.6140456351462752, -1.0487533210291748, 1.2919425219766434, -0.1772418354046444, -0.3717906758082477, -0.1961024887471309], + [0.3649413673390813, -0.2834299929205991, -0.2607553678120438, -0.2513692707510199, -1.4790701719808694, 1.3359407733470714, 0.6140456351462752, -1.0487533210291748, 1.2919425219766434, -0.1772418354046444, -0.3717906758082477, -0.1961024887471309], + [0.9462638993836358, -0.1307329917819823, -0.1975845796826096, 0.1902432972940709, -1.1890850692962029, 1.0621681332764308, 0.1466491789985822, -0.6591483949837108, 0.9919759792052271, -0.0215735489284478, -0.1487174714867081, -0.1961024887471309], + [0.9462638993836358, -0.1307329917819823, -0.1975845796826096, 0.1902432972940709, -1.1890850692962029, 1.0621681332764308, 0.1466491789985822, -0.6591483949837108, 0.9919759792052271, -0.0215735489284478, -0.1487174714867081, -0.1961024887471309], + [0.8493768107095434, -0.1089191344764657, -0.1930706571809474, 0.2355368940166444, -1.1323488535535509, 1.0094613601088847, 0.0828955942035882, -0.5970888063125014, 0.9365974600158493, 0.0406937656620309, -0.0972390397201989, -0.1961024887471309], + [0.8493768107095434, -0.1089191344764657, -0.1930706571809474, 0.2355368940166444, -1.1323488535535509, 1.0094613601088847, 0.0828955942035882, -0.5970888063125014, 0.9365974600158493, 0.0406937656620309, -0.0972390397201989, -0.1961024887471309], + [0.7524897220354509, -0.1089191344764657, -0.1885589280332703, 0.2808304907392178, -1.0756126378108986, 0.9552929215066431, 0.0191597138198119, -0.5384769725674702, 0.8827562568338351, 0.1029610802525095, -0.0629200852091928, -0.1961024887471309], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.7524897220354509, -0.1307329917819823, -0.1975845796826096, 0.5186218735327283, -0.7730037271234920, 0.6756657918881750, -0.2570291011765521, -0.2488655587684924, 0.5935569078883107, 0.3520303386144241, 0.1601531191123468, -0.2137896973528397], + [0.8493768107095434, -0.1307329917819823, -0.2020963088302867, 0.5639154702553016, -0.7036594634380283, 0.6083217274225533, -0.3066014525861560, -0.1799104602449263, 0.5212566967910328, 0.3831639959096634, 0.1944720736233528, -0.2226343763432992], + [0.8493768107095434, -0.1307329917819823, -0.2020963088302867, 0.5639154702553016, -0.7036594634380283, 0.6083217274225533, -0.3066014525861560, -0.1799104602449263, 0.5212566967910328, 0.3831639959096634, 0.1944720736233528, -0.2226343763432992], + [0.8493768107095434, -0.1307329917819823, -0.2020963088302867, 0.5978856677972317, -0.6280111757811587, 0.5380457926594902, -0.3561738039957598, -0.1143944972602230, 0.4489572334155485, 0.3831639959096634, 0.2116315508788559, -0.2314790553337587], + [1.0431509880577281, -0.1089191344764657, -0.2111197671256407, 0.7450898571455953, -0.3884582648677385, 0.2994100525418749, -0.5261361516858299, 0.0959185532366536, 0.2089834010209806, 0.3520303386144241, 0.3145884144118742, -0.2668534725451762], + [1.0431509880577281, -0.1089191344764657, -0.2111197671256407, 0.7450898571455953, -0.3884582648677385, 0.2994100525418749, -0.5261361516858299, 0.0959185532366536, 0.2089834010209806, 0.3520303386144241, 0.3145884144118742, -0.2668534725451762], + [1.0431509880577281, -0.1089191344764657, -0.2111197671256407, 0.7450898571455953, -0.3884582648677385, 0.2994100525418749, -0.5261361516858299, 0.0959185532366536, 0.2089834010209806, 0.3520303386144241, 0.3145884144118742, -0.2668534725451762], + [1.0431509880577281, -0.1089191344764657, -0.2156336896273030, 0.7903834538681688, -0.3065059532394632, 0.2203541625045810, -0.5757085030954338, 0.1614258968340414, 0.1274525643833808, 0.3520303386144241, 0.3317478916673772, -0.2845406811508849], + [1.0431509880577281, -0.1089191344764657, -0.2156336896273030, 0.7903834538681688, -0.3065059532394632, 0.2203541625045810, -0.5757085030954338, 0.1614258968340414, 0.1274525643833808, 0.3520303386144241, 0.3317478916673772, -0.2845406811508849], + [1.0431509880577281, 0.1310332958842177, -0.2968557810554158, 0.9715578407584624, 0.1284717007875366, -0.2495968930341013, -0.8235702601434528, 0.5165532736177224, -0.3432667180308134, 0.4142976532049027, 0.6062995277554259, -0.3641341945641794], + [1.0431509880577281, 0.1310332958842177, -0.2968557810554158, 0.9715578407584624, 0.1284717007875366, -0.2495968930341013, -0.8235702601434528, 0.5165532736177224, -0.3432667180308134, 0.4142976532049027, 0.6062995277554259, -0.3641341945641794], + [0.8493768107095434, 0.2837302970228344, -0.3239283492954632, 1.0168514374810358, 0.3428242758752621, -0.4648082703893678, -0.9014696695014016, 0.6889410199266377, -0.5586270444281096, 0.4765649677953814, 0.7092563912884442, -0.4039298765832215], + [0.8493768107095434, 0.2837302970228344, -0.3239283492954632, 1.0168514374810358, 0.3428242758752621, -0.4648082703893678, -0.9014696695014016, 0.6889410199266377, -0.5586270444281096, 0.4765649677953814, 0.7092563912884442, -0.4039298765832215], + [0.8493768107095434, 0.2837302970228344, -0.3239283492954632, 1.0168514374810358, 0.3428242758752621, -0.4648082703893678, -0.9014696695014016, 0.6889410199266377, -0.5586270444281096, 0.4765649677953814, 0.7092563912884442, -0.4039298765832215], + [0.8493768107095434, 0.3491718689393845, -0.3284422717971255, 1.0281748366616792, 0.4562967073605664, -0.5716806356831386, -0.9368784919368329, 0.7682393832287387, -0.6632310801684438, 0.5388322823858600, 0.7264158685439472, -0.4171958203813056], + [0.8493768107095434, 0.3491718689393845, -0.3284422717971255, 1.0281748366616792, 0.4562967073605664, -0.5716806356831386, -0.9368784919368329, 0.7682393832287387, -0.6632310801684438, 0.5388322823858600, 0.7264158685439472, -0.4171958203813056], + [0.8493768107095434, 0.4146134408559345, -0.3329540009448025, 1.0508216350229658, 0.5697691388458707, -0.6829479599470546, -0.9793690788593505, 0.8475377465308398, -0.7724508025398358, 0.6010995969763386, 0.7607348230549533, -0.4304617641793897], + [0.8493768107095434, 0.4146134408559345, -0.3329540009448025, 1.0508216350229658, 0.5697691388458707, -0.6829479599470546, -0.9793690788593505, 0.8475377465308398, -0.7724508025398358, 0.6010995969763386, 0.7607348230549533, -0.4304617641793897], + [0.7524897220354509, 0.5454965846890345, -0.3419796525941418, 1.0734684333842526, 0.7778019299022619, -0.8864475117306488, -1.0431049592431267, 0.9888956985041503, -0.9770446828330334, 0.6633669115668173, 0.8465322093324686, -0.4569936517755580], + [0.7524897220354509, 0.5891242993000678, -0.3464913817418188, 1.0734684333842526, 0.8534502175591314, -0.9596474889821067, -1.0643679571156033, 1.0371728868579619, -1.0447284595774600, 0.6945005688620567, 0.8980106410989778, -0.4702595955736422], + [0.7524897220354509, 0.6327520139111013, -0.3645404916865122, 1.0734684333842526, 0.9227944812445952, -1.0196718403701843, -1.0856132505768621, 1.0923369656768149, -1.1047234131196890, 0.6633669115668173, 0.9323295956099839, -0.4835233899965160], + [0.7524897220354509, 0.6327520139111013, -0.3645404916865122, 1.0734684333842526, 0.9227944812445952, -1.0196718403701843, -1.0856132505768621, 1.0923369656768149, -1.1047234131196890, 0.6633669115668173, 0.9323295956099839, -0.4835233899965160], + [0.7524897220354509, 0.6763797285221346, -0.3916152532805449, 1.0961152317455394, 1.0299628887584937, -1.0870151932168020, -1.1281038374993797, 1.1543965543480244, -1.1477951793104308, 0.6322332542715779, 0.9838080273764930, -0.5100552775926842], + [0.7524897220354509, 0.6763797285221346, -0.3916152532805449, 1.0961152317455394, 1.0299628887584937, -1.0870151932168020, -1.1281038374993797, 1.1543965543480244, -1.1477951793104308, 0.6322332542715779, 0.9838080273764930, -0.5100552775926842], + [0.7524897220354509, 0.6981935858276512, -0.4141760923729152, 1.1187620301068260, 1.0866991045011458, -1.1045836431933145, -1.1635126599348109, 1.1612920642003810, -1.1554862456780088, 0.5699659396810993, 1.0352864591430022, -0.5233212213907684], + [0.8493768107095434, 0.7200074431331679, -0.4367369314652856, 1.1753790260100427, 1.1119152003867689, -1.1045836431933145, -1.2201667758315009, 1.1475010444956679, -1.1462563678594804, 0.5076986250906207, 1.0696054136540083, -0.5410084299964771], + [0.8493768107095434, 0.7200074431331679, -0.4367369314652856, 1.1753790260100427, 1.1119152003867689, -1.1045836431933145, -1.2201667758315009, 1.1475010444956679, -1.1462563678594804, 0.5076986250906207, 1.0696054136540083, -0.5410084299964771], + [0.9462638993836358, 0.8072628723552346, -0.4638116930593183, 1.2886130178164763, 1.0993071524439575, -1.0870151932168020, -1.2768208917281911, 1.1268145149385980, -1.1216443573057957, 0.4454313105001421, 1.1382433226760205, -0.5586956386021859], + [0.9462638993836358, 0.8072628723552346, -0.4638116930593183, 1.2886130178164763, 1.0993071524439575, -1.0870151932168020, -1.2768208917281911, 1.1268145149385980, -1.1216443573057957, 0.4454313105001421, 1.1382433226760205, -0.5586956386021859], + [0.9462638993836358, 0.8072628723552346, -0.4638116930593183, 1.2886130178164763, 1.0993071524439575, -1.0870151932168020, -1.2768208917281911, 1.1268145149385980, -1.1216443573057957, 0.4454313105001421, 1.1382433226760205, -0.5586956386021859], + [0.9462638993836358, 1.3526093049931514, -0.6713907142241962, 1.2546428202745463, 1.0047467928728704, -0.9391514384221782, -1.1989214823702421, 1.0475161516364970, -0.9601214954815463, 0.3208966813191848, 1.4985923450415843, -0.7399932882173185], + [0.9462638993836358, 1.3526093049931514, -0.6713907142241962, 1.2546428202745463, 1.0047467928728704, -0.9391514384221782, -1.1989214823702421, 1.0475161516364970, -0.9601214954815463, 0.3208966813191848, 1.4985923450415843, -0.7399932882173185], + [0.8493768107095434, 1.4616785915207349, -0.7255380440582763, 1.1414088284681128, 0.9984427689014647, -0.9113356747847056, -1.1493491309606383, 1.0440683967103186, -0.9293564822894403, 0.3208966813191848, 1.6187515845232445, -0.8018995930249042], + [0.1711671899908966, 1.7452587364924514, -0.7571245347999860, 1.0281748366616792, 0.9732266730158415, -0.8615557905815711, -1.1139403085252071, 1.0268296220794271, -0.8816697771894343, 0.6322332542715779, 1.8075058343337780, -0.8328527454286970], + [0.1711671899908966, 1.7452587364924514, -0.7571245347999860, 1.0281748366616792, 0.9732266730158415, -0.8615557905815711, -1.1139403085252071, 1.0268296220794271, -0.8816697771894343, 0.6322332542715779, 1.8075058343337780, -0.8328527454286970], + [0.1711671899908966, 1.7452587364924514, -0.7571245347999860, 1.0281748366616792, 0.9732266730158415, -0.8615557905815711, -1.1139403085252071, 1.0268296220794271, -0.8816697771894343, 0.6322332542715779, 1.8075058343337780, -0.8328527454286970], + [-0.3132682533795655, 1.8107003084090016, -0.7345636957076156, 1.0055280383003924, 0.9480105771302183, -0.8425242519323547, -1.1139403085252071, 1.0130386023747140, -0.8632107692741706, 0.7567678834525353, 1.8589842661002871, -0.8195868016306129], + [-0.3132682533795655, 1.8107003084090016, -0.7345636957076156, 1.0055280383003924, 0.9480105771302183, -0.8425242519323547, -1.1139403085252071, 1.0130386023747140, -0.8632107692741706, 0.7567678834525353, 1.8589842661002871, -0.8195868016306129], + [-0.5070424307277502, 1.8761418803255516, -0.7029772049659059, 0.9715578407584624, 0.9164904572731893, -0.8308117147416783, -1.0856132505768621, 0.9992475826700007, -0.8509040162755348, 0.8501688553382533, 1.8933032206112932, -0.7753677054287359], + [-0.5070424307277502, 1.8761418803255516, -0.7029772049659059, 0.9715578407584624, 0.9164904572731893, -0.8308117147416783, -1.0856132505768621, 0.9992475826700007, -0.8509040162755348, 0.8501688553382533, 1.8933032206112932, -0.7753677054287359], + [-1.2821391401204896, 1.8107003084090016, -0.5946803519437605, 0.8017068530488121, 0.8534502175591314, -0.8337400269440984, -0.9864508433464367, 0.9785524337256154, -0.8601338940940633, 1.0369707991096893, 1.8418247888447841, -0.6692423044192732], + [-1.2821391401204896, 1.8107003084090016, -0.5946803519437605, 0.8017068530488121, 0.8534502175591314, -0.8337400269440984, -0.9864508433464367, 0.9785524337256154, -0.8601338940940633, 1.0369707991096893, 1.8418247888447841, -0.6692423044192732], + [-1.4759133174686745, 1.7888864511034850, -0.5269846745427377, 0.6771494620617352, 0.8471461935877256, -0.8439880522240627, -0.9085514339884879, 0.9716569238732587, -0.8755167745510131, 1.0992381137001679, 1.8075058343337780, -0.5940700558136033], + [-1.7665745834909516, 1.7670725937979681, -0.4367369314652856, 0.5525920710746582, 0.8534502175591314, -0.8630195908732790, -0.8518973180917979, 0.9716569238732587, -0.9016675965556482, 1.1303717709954071, 1.7560274025672689, -0.5012127479774350], + [-2.1541229381873213, 1.7234448791869348, -0.3194166201477862, 0.5186218735327283, 0.8597542415305373, -0.8996238492130333, -0.8377337891176253, 0.9716569238732587, -0.9493535539338609, 1.1615054282906465, 1.6702300162897536, -0.3729767241794286], + [-2.1541229381873213, 1.7234448791869348, -0.3194166201477862, 0.5186218735327283, 0.8597542415305373, -0.8996238492130333, -0.8377337891176253, 0.9716569238732587, -0.9493535539338609, 1.1615054282906465, 1.6702300162897536, -0.3729767241794286], + [-2.2510100268614135, 1.5271201634372848, -0.1208742174021739, 0.4620048776295114, 0.8723622894733488, -0.9757514270479071, -0.7881614377080215, 0.9682091689470804, -1.0431903958483031, 1.1926390855858857, 1.5672731527567354, -0.1828365449490468], + [-2.1541229381873213, 1.4180508769097016, -0.0125773643800285, 0.4053878817262947, 0.8723622894733488, -1.0255277531560205, -0.7598343797596765, 0.9682091689470804, -1.1016465379395817, 1.1615054282906465, 1.4642733905305783, -0.0722683853798563], + [-2.1541229381873213, 1.4180508769097016, -0.0125773643800285, 0.4053878817262947, 0.8723622894733488, -1.0255277531560205, -0.7598343797596765, 0.9682091689470804, -1.1016465379395817, 1.1615054282906465, 1.4642733905305783, -0.0722683853798563], + [-2.1541229381873213, 1.4180508769097016, -0.0125773643800285, 0.4053878817262947, 0.8723622894733488, -1.0255277531560205, -0.7598343797596765, 0.9682091689470804, -1.1016465379395817, 1.1615054282906465, 1.4642733905305783, -0.0722683853798563], + [-2.1541229381873213, 1.4180508769097016, -0.0125773643800285, 0.4053878817262947, 0.8723622894733488, -1.0255277531560205, -0.7598343797596765, 0.9682091689470804, -1.1016465379395817, 1.1615054282906465, 1.4642733905305783, -0.0722683853798563], + [-1.9603487608391366, 1.2217261611600514, 0.1318177085315037, 0.3487708858230779, 0.8660582655019430, -1.0957994182050581, -0.7173437928371590, 0.9785524337256154, -1.1847131951409580, 1.1926390855858857, 1.3098380952310509, 0.0824973766391081], + [-1.5728004061427669, 0.1310332958842177, 0.9260114464077905, 0.2921538899198611, 0.9543146011016241, -1.3681103928410034, -0.8660608470659704, 1.1233667600124198, -1.3508509958744714, 1.2549064001763643, 0.3317478916673772, 0.8961197193777616], + [-1.4759133174686745, -0.3706854221426658, 1.3321240969023396, 0.5186218735327283, 1.0614830086155227, -1.3988544686808961, -0.9510420209110054, 1.1957696134621640, -1.3354658722521413, 1.2549064001763643, -0.1143985169757020, 1.3029534591867966], + [-1.4759133174686745, -0.3706854221426658, 1.3321240969023396, 0.5186218735327283, 1.0614830086155227, -1.3988544686808961, -0.9510420209110054, 1.1957696134621640, -1.3354658722521413, 1.2549064001763643, -0.1143985169757020, 1.3029534591867966], + [-1.3790262287945820, -0.5888239951978325, 1.4900543572569027, 0.5865622686165883, 1.1056111764153631, -1.3959268680974801, -0.9581237853980917, 1.2061128782406991, -1.3246979307044560, 1.2549064001763643, -0.3203122440417385, 1.4754064298114697], + [-1.3790262287945820, -0.5888239951978325, 1.4900543572569027, 0.5865622686165883, 1.1056111764153631, -1.3959268680974801, -0.9581237853980917, 1.2061128782406991, -1.3246979307044560, 1.2549064001763643, -0.3203122440417385, 1.4754064298114697], + [-1.3790262287945820, -0.9814734266971326, 1.7788554698498935, 0.6771494620617352, 1.1875634880436385, -1.3842150425258080, -0.9581237853980917, 1.2233516528715906, -1.3077769865183493, 1.2237727428811251, -0.6806612664073025, 1.7672507452436896], + [-1.3790262287945820, -0.9814734266971326, 1.7788554698498935, 0.6771494620617352, 1.1875634880436385, -1.3842150425258080, -0.9581237853980917, 1.2233516528715906, -1.3077769865183493, 1.2237727428811251, -0.6806612664073025, 1.7672507452436896], + [-1.3790262287945820, -0.9814734266971326, 1.7788554698498935, 0.6771494620617352, 1.1875634880436385, -1.3842150425258080, -0.9581237853980917, 1.2233516528715906, -1.3077769865183493, 1.2237727428811251, -0.6806612664073025, 1.7672507452436896], + [-1.3790262287945820, -1.2432397143633327, 1.9593509560047977, 0.7224430587843086, 1.2506037277576965, -1.3739670172458436, -0.9368784919368329, 1.2336949176501255, -1.2985478564216142, 1.1926390855858857, -0.9037344707288421, 1.9485462454836120], + [-1.3790262287945820, -1.2432397143633327, 1.9593509560047977, 0.7224430587843086, 1.2506037277576965, -1.3739670172458436, -0.9368784919368329, 1.2336949176501255, -1.2985478564216142, 1.1926390855858857, -0.9037344707288421, 1.9485462454836120], + [-1.2821391401204896, -1.5050605366727965, 2.1398442488057166, 0.7337664579649520, 1.3073557035602772, -1.3622544800551672, -0.8943879050143154, 1.2405904275024822, -1.2908560423322426, 1.1615054282906465, -1.1439671523058847, 2.1386864247139941], + [-1.2821391401204896, -1.5050605366727965, 2.1398442488057166, 0.7337664579649520, 1.3073557035602772, -1.3622544800551672, -0.8943879050143154, 1.2405904275024822, -1.2908560423322426, 1.1615054282906465, -1.1439671523058847, 2.1386864247139941], + [-1.2821391401204896, -1.5050605366727965, 2.1398442488057166, 0.7337664579649520, 1.3073557035602772, -1.3622544800551672, -0.8943879050143154, 1.2405904275024822, -1.2908560423322426, 1.1615054282906465, -1.1439671523058847, 2.1386864247139941], + [-1.2821391401204896, -1.5050605366727965, 2.1398442488057166, 0.7337664579649520, 1.3073557035602772, -1.3622544800551672, -0.8943879050143154, 1.2405904275024822, -1.2908560423322426, 1.1615054282906465, -1.1439671523058847, 2.1386864247139941], + [-1.2821391401204896, -1.5050605366727965, 2.1398442488057166, 0.7337664579649520, 1.3073557035602772, -1.3622544800551672, -0.8943879050143154, 1.2405904275024822, -1.2908560423322426, 1.1615054282906465, -1.1439671523058847, 2.1386864247139941], + [-1.2821391401204896, -2.2685455423658802, 2.6903607456277387, 0.5978856677972317, 1.3262677754744945, -1.3373627589060895, -0.7173437928371590, 1.2336949176501255, -1.2847030396938215, 1.0681044564049285, -1.7960701867081392, 2.6869984889918062], + [-1.2821391401204896, -2.2685455423658802, 2.6903607456277387, 0.5978856677972317, 1.3262677754744945, -1.3373627589060895, -0.7173437928371590, 1.2336949176501255, -1.2847030396938215, 1.0681044564049285, -1.7960701867081392, 2.6869984889918062], + [-1.2821391401204896, -2.2685455423658802, 2.6903607456277387, 0.5978856677972317, 1.3262677754744945, -1.3373627589060895, -0.7173437928371590, 1.2336949176501255, -1.2847030396938215, 1.0681044564049285, -1.7960701867081392, 2.6869984889918062], + [-1.2821391401204896, -2.2685455423658802, 2.6903607456277387, 0.5978856677972317, 1.3262677754744945, -1.3373627589060895, -0.7173437928371590, 1.2336949176501255, -1.2847030396938215, 1.0681044564049285, -1.7960701867081392, 2.6869984889918062], + [-1.2821391401204896, -2.2685455423658802, 2.6903607456277387, 0.5978856677972317, 1.3262677754744945, -1.3373627589060895, -0.7173437928371590, 1.2336949176501255, -1.2847030396938215, 1.0681044564049285, -1.7960701867081392, 2.6869984889918062], + [-1.2821391401204896, -2.4866841154210468, 2.8708540384286576, 0.5412686718940150, 1.3262677754744945, -1.3344351583226735, -0.6536079124533827, 1.2233516528715906, -1.2893179786030857, 1.0058371418144498, -2.0019839137741759, 2.8683176323590418], + [-1.5728004061427669, -3.7082601245299807, 3.8455322956899223, 0.4393580792682247, 1.1812594640722327, -1.3681103928410034, -0.6181990900179514, 1.1750830839050943, -1.3354658722521413, 0.9435698272239712, -3.2546257534258980, 3.8632376247128279], + [-1.5728004061427669, -3.7082601245299807, 3.8455322956899223, 0.4393580792682247, 1.1812594640722327, -1.3681103928410034, -0.6181990900179514, 1.1750830839050943, -1.3354658722521413, 0.9435698272239712, -3.2546257534258980, 3.8632376247128279]], + dtype=torch.float64) + des_val = torch.tensor([[-1.4988686204302244, 1.4900277912148840, -0.9558257901557550, -1.9142587663589925, -2.3610755112891928, 1.9773051462918161, -0.3879148904948824, -2.5040080476038877, 1.9780257911438417, 0.3255999980177398, 1.5297297075982812, -0.9709257785436712], + [-1.4988686204302244, 1.4900277912148840, -0.9558257901557550, -1.9142587663589925, -2.3610755112891928, 1.9773051462918161, -0.3879148904948824, -2.5040080476038877, 1.9780257911438417, 0.3255999980177398, 1.5297297075982812, -0.9709257785436712], + [-1.4804237572896479, 1.4277897169007887, -0.9658198190590350, -1.8703503918725870, -2.2121915685280409, 1.9599171870346002, -0.3879148904948824, -2.3405822137021728, 1.9694052595705676, 0.3255999980177398, 1.4678427195006403, -0.9811596739132403], + [-1.4804237572896479, 1.4277897169007887, -0.9658198190590350, -1.8703503918725870, -2.2121915685280409, 1.9599171870346002, -0.3879148904948824, -2.3405822137021728, 1.9694052595705676, 0.3255999980177398, 1.4678427195006403, -0.9811596739132403], + [-1.4066443047273420, 1.3828313523858429, -0.9769235759502791, -1.7386252684133705, -2.0693918070919071, 1.9261687682138318, -0.4149511807732650, -2.1803686615216766, 1.9410803992841854, 0.3127616998012983, 1.4265896385166159, -0.9913985436324706], + [-1.4066443047273420, 1.3828313523858429, -0.9769235759502791, -1.7386252684133705, -2.0693918070919071, 1.9261687682138318, -0.4149511807732650, -2.1803686615216766, 1.9410803992841854, 0.3127616998012983, 1.4265896385166159, -0.9913985436324706], + [-1.4066443047273420, 1.3828313523858429, -0.9769235759502791, -1.7386252684133705, -2.0693918070919071, 1.9261687682138318, -0.4149511807732650, -2.1803686615216766, 1.9410803992841854, 0.3127616998012983, 1.4265896385166159, -0.9913985436324706], + [-1.4066443047273420, 1.3828313523858429, -0.9769235759502791, -1.7386252684133705, -2.0693918070919071, 1.9261687682138318, -0.4149511807732650, -2.1803686615216766, 1.9410803992841854, 0.3127616998012983, 1.4265896385166159, -0.9913985436324706], + [-1.4066443047273420, 1.3828313523858429, -0.9769235759502791, -1.7386252684133705, -2.0693918070919071, 1.9261687682138318, -0.4149511807732650, -2.1803686615216766, 1.9410803992841854, 0.3127616998012983, 1.4265896385166159, -0.9913985436324706], + [-1.3697545784461891, 1.3655429984097052, -0.9813651866569701, -1.6947168939269650, -2.0086259511616373, 1.9077607657193647, -0.3879148904948824, -2.1098746985622583, 1.9250712682241446, 0.2999234015848568, 1.4030164493828876, -0.9948098420889937], + [-1.3697545784461891, 1.3655429984097052, -0.9813651866569701, -1.6947168939269650, -2.0086259511616373, 1.9077607657193647, -0.3879148904948824, -2.1098746985622583, 1.9250712682241446, 0.2999234015848568, 1.4030164493828876, -0.9948098420889937], + [-1.3697545784461891, 1.3655429984097052, -0.9813651866569701, -1.6947168939269650, -2.0086259511616373, 1.9077607657193647, -0.3879148904948824, -2.1098746985622583, 1.9250712682241446, 0.2999234015848568, 1.4030164493828876, -0.9948098420889937], + [-1.2221956733215773, 1.2929319117099272, -0.9924694832991813, -1.6508085194405595, -1.7473251749294867, 1.8126526699817687, -0.3338423099381170, -1.8182780229161464, 1.8339382241453714, 0.1843466218913421, 1.3057770442062588, -1.0050437374585628], + [-1.2221956733215773, 1.2929319117099272, -0.9924694832991813, -1.6508085194405595, -1.7473251749294867, 1.8126526699817687, -0.3338423099381170, -1.8182780229161464, 1.8339382241453714, 0.1843466218913421, 1.3057770442062588, -1.0050437374585628], + [-1.2221956733215773, 1.2929319117099272, -0.9924694832991813, -1.6508085194405595, -1.7473251749294867, 1.8126526699817687, -0.3338423099381170, -1.8182780229161464, 1.8339382241453714, 0.1843466218913421, 1.3057770442062588, -1.0050437374585628], + [-1.2221956733215773, 1.2929319117099272, -0.9924694832991813, -1.6508085194405595, -1.7473251749294867, 1.8126526699817687, -0.3338423099381170, -1.8182780229161464, 1.8339382241453714, 0.1843466218913421, 1.3057770442062588, -1.0050437374585628], + [-1.1668610838998479, 1.2341515081910595, -1.0002424369736322, -1.5410375832245458, -1.5285680935805159, 1.7165195600359797, -0.3338423099381170, -1.5779576946454024, 1.7354165805798318, 0.0944785343762516, 1.2380041254467902, -1.0141401648722790], + [-1.1299713576186949, 1.2099478126244667, -1.0046840476803234, -1.4532208342517345, -1.4161512601095172, 1.6633406099980224, -0.3338423099381170, -1.4465825818573956, 1.6787662614006114, 0.0688019379433686, 1.2026443417461978, -1.0186883785791370], + [-1.1299713576186949, 1.2099478126244667, -1.0046840476803234, -1.4532208342517345, -1.4161512601095172, 1.6633406099980224, -0.3338423099381170, -1.4465825818573956, 1.6787662614006114, 0.0688019379433686, 1.2026443417461978, -1.0186883785791370], + [-1.1299713576186949, 1.2099478126244667, -1.0046840476803234, -1.4532208342517345, -1.4161512601095172, 1.6633406099980224, -0.3338423099381170, -1.4465825818573956, 1.6787662614006114, 0.0688019379433686, 1.2026443417461978, -1.0186883785791370], + [-1.1299713576186949, 1.2099478126244667, -1.0046840476803234, -1.4532208342517345, -1.4161512601095172, 1.6633406099980224, -0.3338423099381170, -1.4465825818573956, 1.6787662614006114, 0.0688019379433686, 1.2026443417461978, -1.0186883785791370], + [-1.0930816313375420, 1.1822864462626466, -1.0102364658769123, -1.4093124597653290, -1.2946195482489777, 1.6040235050411678, -0.3068060196597344, -1.3087909163045599, 1.6171912069076402, 0.0174487450776026, 1.1702312066873215, -1.0232365922859952], + [-1.0930816313375420, 1.1822864462626466, -1.0102364658769123, -1.4093124597653290, -1.2946195482489777, 1.6040235050411678, -0.3068060196597344, -1.3087909163045599, 1.6171912069076402, 0.0174487450776026, 1.1702312066873215, -1.0232365922859952], + [-1.0377009297579614, 1.1511674091055988, -1.0180121183061979, -1.4093124597653290, -1.1700419478599338, 1.5406182735818017, -0.2256971488245864, -1.1838243456037729, 1.5556143565953009, -0.0210661495717219, 1.1407647202701612, -1.0300591891990412], + [-1.0561457928985378, 1.0889293347915034, -1.0402201718396531, -1.2995415235493153, -0.9178636457493148, 1.4015324950194639, -0.1175519877110558, -0.9114613068969297, 1.4127587216833384, -0.0467427460046049, 1.0906716933609888, -1.0482520440264735], + [-1.0561457928985378, 1.0889293347915034, -1.0402201718396531, -1.2995415235493153, -0.9178636457493148, 1.4015324950194639, -0.1175519877110558, -0.9114613068969297, 1.4127587216833384, -0.0467427460046049, 1.0906716933609888, -1.0482520440264735], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0612679684296833, -1.0535455437106933, -1.2336789618197070, -0.7993702266852889, 1.3319910970295774, -0.0364431168759079, -0.7832824544749238, 1.3400986728376212, -0.0467427460046049, 1.0729918015106927, -1.0607597698967126], + [-1.0561457928985378, 1.0405219436583182, -1.0690914510595952, -1.1897705873333015, -0.6778309190927584, 1.2563110470236998, 0.0176294636808575, -0.6454987995996972, 1.2575867589385783, -0.0339044477881634, 1.0582585583021125, -1.0755418789731399], + [-1.0377009297579614, 0.9921145525251328, -1.1135080978774727, -1.1239080256036933, -0.3648867610518697, 1.0364350603273449, 0.1528785057984667, -0.2962252451686068, 1.0235980799478424, -0.1237725353032539, 1.0346780025467801, -1.1198876534969036], + [-1.0377009297579614, 0.9921145525251328, -1.1135080978774727, -1.1239080256036933, -0.3648867610518697, 1.0364350603273449, 0.1528785057984667, -0.2962252451686068, 1.0235980799478424, -0.1237725353032539, 1.0346780025467801, -1.1198876534969036], + [-1.0377009297579614, 0.9921145525251328, -1.1135080978774727, -1.1239080256036933, -0.3648867610518697, 1.0364350603273449, 0.1528785057984667, -0.2962252451686068, 1.0235980799478424, -0.1237725353032539, 1.0346780025467801, -1.1198876534969036], + [-1.0377009297579614, 0.9817415401394501, -1.1246123945196838, -1.0580454638740850, -0.2858911483425192, 0.9791654983014052, 0.2880599571903800, -0.2129141980347488, 0.9595585626753996, -0.1494491317361369, 1.0258380566216319, -1.1312584641168075], + [-1.0192560666173849, 0.9713685277537676, -1.1368269589008260, -0.9921829021444768, -0.2038496471046639, 0.9208709220672726, 0.3691688280255279, -0.1296031509008909, 0.8955208412223249, -0.1751257281690199, 1.0081581647713358, -1.1449031052373819], + [-1.0192560666173849, 0.9713685277537676, -1.1368269589008260, -0.9921829021444768, -0.2038496471046639, 0.9208709220672726, 0.3691688280255279, -0.1296031509008909, 0.8955208412223249, -0.1751257281690199, 1.0081581647713358, -1.1449031052373819], + [-1.0192560666173849, 0.9713685277537676, -1.1368269589008260, -0.9921829021444768, -0.2038496471046639, 0.9208709220672726, 0.3691688280255279, -0.1296031509008909, 0.8955208412223249, -0.1751257281690199, 1.0081581647713358, -1.1449031052373819], + [-0.9823663403362318, 0.9471648321871750, -1.1634766231409721, -0.9043661531716657, -0.0002840297382606, 0.7797405831565849, 0.4502776988606759, 0.0722659248465342, 0.7452742123977718, -0.2264789210347859, 0.9639584351455953, -1.1756042386405712], + [-0.9823663403362318, 0.9471648321871750, -1.1634766231409721, -0.9043661531716657, -0.0002840297382606, 0.7797405831565849, 0.4502776988606759, 0.0722659248465342, 0.7452742123977718, -0.2264789210347859, 0.9639584351455953, -1.1756042386405712], + [-0.9085868877739260, 0.8814690870778520, -1.2256629512914152, -0.7067784679828408, 0.4372377286916722, 0.4514586563563061, 0.7476768919228851, 0.5336889658039718, 0.3844402267680262, -0.4190533942814085, 0.8578790840438184, -1.2370059527414321], + [-0.9085868877739260, 0.8814690870778520, -1.2256629512914152, -0.7067784679828408, 0.4372377286916722, 0.4514586563563061, 0.7476768919228851, 0.5336889658039718, 0.3844402267680262, -0.4190533942814085, 0.8578790840438184, -1.2370059527414321], + [-1.0008112034768084, 0.8330530517676786, -1.2545342305113574, -0.5970075317668270, 0.7228448472959308, 0.2049934431895196, 0.9910035044283290, 0.8252856414500838, 0.1208941567979444, -0.4704065871471745, 0.7842128680009177, -1.2563362755247174], + [-1.0008112034768084, 0.8330530517676786, -1.2545342305113574, -0.5970075317668270, 0.7228448472959308, 0.2049934431895196, 0.9910035044283290, 0.8252856414500838, 0.1208941567979444, -0.4704065871471745, 0.7842128680009177, -1.2563362755247174], + [-1.0008112034768084, 0.8330530517676786, -1.2545342305113574, -0.5970075317668270, 0.7228448472959308, 0.2049934431895196, 0.9910035044283290, 0.8252856414500838, 0.1208941567979444, -0.4704065871471745, 0.7842128680009177, -1.2563362755247174], + [-1.0008112034768084, 0.8330530517676786, -1.2545342305113574, -0.5970075317668270, 0.7228448472959308, 0.2049934431895196, 0.9910035044283290, 0.8252856414500838, 0.1208941567979444, -0.4704065871471745, 0.7842128680009177, -1.2563362755247174], + [-0.9823663403362318, 0.7881033314297209, -1.2334359049658663, -0.5091907827940160, 0.9112190006797667, 0.0393184381567501, 1.2072938266553901, 1.0111333619794591, -0.0576767337065348, -0.4832448853636160, 0.7164399492414490, -1.2267720573718630], + [-0.9823663403362318, 0.7881033314297209, -1.2334359049658663, -0.5091907827940160, 0.9112190006797667, 0.0393184381567501, 1.2072938266553901, 1.0111333619794591, -0.0576767337065348, -0.4832448853636160, 0.7164399492414490, -1.2267720573718630], + [-0.9823663403362318, 0.7881033314297209, -1.2334359049658663, -0.5091907827940160, 0.9112190006797667, 0.0393184381567501, 1.2072938266553901, 1.0111333619794591, -0.0576767337065348, -0.4832448853636160, 0.7164399492414490, -1.2267720573718630], + [-0.9085868877739260, 0.6878308783681227, -1.1579247446953500, -0.4652824083076105, 1.1603590099938721, -0.2020336342993320, 1.3424752780473035, 1.2322280639885437, -0.3162950753305855, -0.5345980782293820, 0.5602602046088954, -1.1380810610298537], + [-0.9085868877739260, 0.6878308783681227, -1.1579247446953500, -0.4652824083076105, 1.1603590099938721, -0.2020336342993320, 1.3424752780473035, 1.2322280639885437, -0.3162950753305855, -0.5345980782293820, 0.5602602046088954, -1.1380810610298537], + [-0.7794728457898907, 0.3697251652071906, -0.9591571331235149, -0.2018321613891774, 1.4064683222434555, -0.5180432280385699, 1.3965478586040687, 1.3507941032797199, -0.6340281989133281, -0.7785257443417705, 0.2449687999452805, -0.9595549679237670], + [-0.7794728457898907, 0.3697251652071906, -0.9591571331235149, -0.2018321613891774, 1.4064683222434555, -0.5180432280385699, 1.3965478586040687, 1.3507941032797199, -0.6340281989133281, -0.7785257443417705, 0.2449687999452805, -0.9595549679237670], + [-0.7056933932275848, 0.3109447616883227, -0.9236237077190197, -0.1579237869027719, 1.4186214934295094, -0.5497485778022709, 1.3695115683256860, 1.3411812901488902, -0.6623530591997102, -0.8170406389910950, 0.1889824757526759, -0.8856455279526669], + [-0.7056933932275848, 0.3109447616883227, -0.9236237077190197, -0.1579237869027719, 1.4186214934295094, -0.5497485778022709, 1.3695115683256860, 1.3411812901488902, -0.6623530591997102, -0.8170406389910950, 0.1889824757526759, -0.8856455279526669], + [-0.6319139406652791, 0.2383250308115567, -0.8725443749656223, -0.0701070379299608, 1.4216597862260230, -0.5865643342426581, 1.3424752780473035, 1.3187513928436208, -0.6882140553130769, -0.8555555336404195, 0.1182629083514913, -0.8356146244717102], + [-0.6319139406652791, 0.2383250308115567, -0.8725443749656223, -0.0701070379299608, 1.4216597862260230, -0.5865643342426581, 1.3424752780473035, 1.3187513928436208, -0.6882140553130769, -0.8555555336404195, 0.1182629083514913, -0.8356146244717102], + [-0.5765793512435496, 0.1518832609308686, -0.8059164361084882, 0.0177097110428502, 1.4125449078364825, -0.6213350332376013, 1.3154389877689208, 1.2867086824075213, -0.7079183840261848, -0.8812321300733025, 0.0328027311201222, -0.7685272287081383], + [-0.4474653092595144, 0.0723568326406356, -0.7404020034960866, 0.1274806472588640, 1.3852002726678612, -0.6458792022625890, 1.2343301169337728, 1.2546659719714222, -0.7140756500328995, -0.9069087265061855, -0.0467567822062105, -0.7059885993569422], + [-0.3552409935566321, -0.0140849372400525, -0.6715556881649581, 0.2372515834748778, 1.3457024663131858, -0.6642872047570560, 1.1532212460986249, 1.2130024377268842, -0.7079183840261848, -0.9325853229390685, -0.1292629441742593, -0.6377642883430353], + [-0.3552409935566321, -0.0140849372400525, -0.6715556881649581, 0.2372515834748778, 1.3457024663131858, -0.6642872047570560, 1.1532212460986249, 1.2130024377268842, -0.7079183840261848, -0.9325853229390685, -0.1292629441742593, -0.6377642883430353], + [-0.3552409935566321, -0.0140849372400525, -0.6715556881649581, 0.2372515834748778, 1.3457024663131858, -0.6642872047570560, 1.1532212460986249, 1.2130024377268842, -0.7079183840261848, -0.9325853229390685, -0.1292629441742593, -0.6377642883430353], + [-0.2076820884320204, -0.1074420487111956, -0.5938234526656130, 0.3470225196908915, 1.2970897815689701, -0.6724684287330206, 1.0180397947067117, 1.1681426431163453, -0.6882140553130769, -0.9454236211555100, -0.2147157547840240, -0.5627118533609031], + [-0.1339026358697145, -0.1938838185918836, -0.5216463341176915, 0.4128850814204998, 1.2484770968247545, -0.6704231227390295, 0.9910035044283290, 1.1232828485058064, -0.6635843926797620, -0.9711002175883930, -0.2913286194686407, -0.4933506270966611], + [-0.1339026358697145, -0.1938838185918836, -0.5216463341176915, 0.4128850814204998, 1.2484770968247545, -0.6704231227390295, 0.9910035044283290, 1.1232828485058064, -0.6635843926797620, -0.9711002175883930, -0.2913286194686407, -0.4933506270966611], + [-0.1339026358697145, -0.1938838185918836, -0.5216463341176915, 0.4128850814204998, 1.2484770968247545, -0.6704231227390295, 0.9910035044283290, 1.1232828485058064, -0.6635843926797620, -0.9711002175883930, -0.2913286194686407, -0.4933506270966611], + [-0.1339026358697145, -0.1938838185918836, -0.5216463341176915, 0.4128850814204998, 1.2484770968247545, -0.6704231227390295, 0.9910035044283290, 1.1232828485058064, -0.6635843926797620, -0.9711002175883930, -0.2913286194686407, -0.4933506270966611], + [-0.0416783201668322, -0.2768679176773442, -0.4439140986183463, 0.3470225196908915, 1.1937802307555205, -0.6653097334797781, 1.0721123752634769, 1.0784230538952675, -0.6414173970065505, -0.9711002175883930, -0.3708881327949735, -0.4183042718752260], + [-0.0416783201668322, -0.2768679176773442, -0.4439140986183463, 0.3470225196908915, 1.1937802307555205, -0.6653097334797781, 1.0721123752634769, 1.0784230538952675, -0.6414173970065505, -0.9711002175883930, -0.3708881327949735, -0.4183042718752260], + [-0.0416783201668322, -0.2768679176773442, -0.4439140986183463, 0.3470225196908915, 1.1937802307555205, -0.6653097334797781, 1.0721123752634769, 1.0784230538952675, -0.6414173970065505, -0.9711002175883930, -0.3708881327949735, -0.4183042718752260], + [0.1612151743795090, -0.5189135175202588, -0.2273800442197470, 0.3250683324476888, 1.0722485188949813, -0.6561057322325445, 1.3154389877689208, 0.9534564831944806, -0.6118594074207485, -1.0352917086706006, -0.5830542016201318, -0.2079406828211328], + [0.1612151743795090, -0.5189135175202588, -0.2273800442197470, 0.3250683324476888, 1.0722485188949813, -0.6561057322325445, 1.3154389877689208, 0.9534564831944806, -0.6118594074207485, -1.0352917086706006, -0.5830542016201318, -0.2079406828211328], + [0.1612151743795090, -0.5189135175202588, -0.2273800442197470, 0.3250683324476888, 1.0722485188949813, -0.6561057322325445, 1.3154389877689208, 0.9534564831944806, -0.6118594074207485, -1.0352917086706006, -0.5830542016201318, -0.2079406828211328], + [0.1796600375200854, -0.5742362502438992, -0.1707482932697606, 0.3470225196908915, 1.0479421765228734, -0.6550832035098225, 1.3424752780473035, 0.9182095017147714, -0.6093967404606451, -1.0481300068870421, -0.6390405258127363, -0.1499497144712770], + [0.1796600375200854, -0.5742362502438992, -0.1707482932697606, 0.3470225196908915, 1.0479421765228734, -0.6550832035098225, 1.3424752780473035, 0.9182095017147714, -0.6093967404606451, -1.0481300068870421, -0.6390405258127363, -0.1499497144712770], + [0.2903292163635442, -0.7609504731861855, 0.0313506612698346, 0.3470225196908915, 0.9628699782204958, -0.6540604262385534, 1.3424752780473035, 0.8284899124936936, -0.6143226729873080, -1.0866449015363666, -0.8099461470322659, 0.0456262384512099], + [0.3087740795041207, -0.8404769014764184, 0.1146347752148018, 0.3909308941772970, 0.9233721718658205, -0.6561057322325445, 1.2884026974905380, 0.7964472020575944, -0.6180172720339193, -1.0738066033199249, -0.8777190657917344, 0.1274951905856911], + [0.3087740795041207, -0.8404769014764184, 0.1146347752148018, 0.3909308941772970, 0.9233721718658205, -0.6561057322325445, 1.2884026974905380, 0.7964472020575944, -0.6180172720339193, -1.0738066033199249, -0.8777190657917344, 0.1274951905856911], + [0.3087740795041207, -0.8404769014764184, 0.1146347752148018, 0.3909308941772970, 0.9233721718658205, -0.6561057322325445, 1.2884026974905380, 0.7964472020575944, -0.6180172720339193, -1.0738066033199249, -0.8777190657917344, 0.1274951905856911], + [0.3641086689258501, -1.0894378429097882, 0.4177815877712938, 0.6104727666093246, 0.7623426536506061, -0.6581510382265356, 0.8558220530364157, 0.7067196021589076, -0.6192486055139711, -1.0481300068870421, -1.1016717291837568, 0.4276872439376467], + [0.3825535320664266, -1.1274722216572910, 0.4777473804438747, 0.6763353283389330, 0.7289214328889577, -0.6571285095038136, 0.7476768919228851, 0.6874939758972481, -0.6204799389940228, -1.0224534104541589, -1.1399781615260651, 0.4856776595819846], + [0.3825535320664266, -1.1274722216572910, 0.4777473804438747, 0.6763353283389330, 0.7289214328889577, -0.6571285095038136, 0.7476768919228851, 0.6874939758972481, -0.6204799389940228, -1.0224534104541589, -1.1399781615260651, 0.4856776595819846], + [0.4194432583475795, -1.1897102959713863, 0.5710222847863206, 0.6982895155821357, 0.6742245668197238, -0.6561057322325445, 0.6395317308093544, 0.6554512654611488, -0.6204799389940228, -0.9967768140212760, -1.1959644857186698, 0.5755122036405439], + [0.4194432583475795, -1.1897102959713863, 0.5710222847863206, 0.6982895155821357, 0.6742245668197238, -0.6561057322325445, 0.6395317308093544, 0.6554512654611488, -0.6204799389940228, -0.9967768140212760, -1.1959644857186698, 0.5755122036405439], + [0.4563329846287324, -1.2346600163093442, 0.6398712988722836, 0.6982895155821357, 0.6347267604650485, -0.6561057322325445, 0.6124954405309718, 0.6266128260686596, -0.6217118710805305, -0.9711002175883930, -1.2313242694192621, 0.6437365146544508], + [0.4563329846287324, -1.2346600163093442, 0.6398712988722836, 0.6982895155821357, 0.6347267604650485, -0.6561057322325445, 0.6124954405309718, 0.6266128260686596, -0.6217118710805305, -0.9711002175883930, -1.2313242694192621, 0.6437365146544508], + [0.4563329846287324, -1.2346600163093442, 0.6398712988722836, 0.6982895155821357, 0.6347267604650485, -0.6561057322325445, 0.6124954405309718, 0.6266128260686596, -0.6217118710805305, -0.9711002175883930, -1.2313242694192621, 0.6437365146544508], + [0.4932227109098853, -1.2796097366473018, 0.7198213710946563, 0.6982895155821357, 0.5921906613138598, -0.6561057322325445, 0.5584228599742065, 0.5913658445889505, -0.6229432045605823, -0.9325853229390685, -1.2696307017615704, 0.7210572530820740], + [0.4932227109098853, -1.2796097366473018, 0.7198213710946563, 0.6982895155821357, 0.5921906613138598, -0.6561057322325445, 0.5584228599742065, 0.5913658445889505, -0.6229432045605823, -0.9325853229390685, -1.2696307017615704, 0.7210572530820740], + [0.4932227109098853, -1.2796097366473018, 0.7198213710946563, 0.6982895155821357, 0.5921906613138598, -0.6561057322325445, 0.5584228599742065, 0.5913658445889505, -0.6229432045605823, -0.9325853229390685, -1.2696307017615704, 0.7210572530820740], + [0.4932227109098853, -1.3176441153948046, 0.7953298326103379, 0.6982895155821357, 0.5526928549591844, -0.6571285095038136, 0.4773139891390585, 0.5497103210220214, -0.6254064701271418, -0.9069087265061855, -1.3020438368204466, 0.7949666930531741], + [0.4932227109098853, -1.3522208233470798, 0.8697307251419230, 0.6763353283389330, 0.5162333414010227, -0.6571285095038136, 0.4502776988606759, 0.5048505264114825, -0.6266378036071936, -0.8427172354239780, -1.3285636745958909, 0.8688761330242742], + [0.4932227109098853, -1.3522208233470798, 0.8697307251419230, 0.6763353283389330, 0.5162333414010227, -0.6571285095038136, 0.4502776988606759, 0.5048505264114825, -0.6266378036071936, -0.8427172354239780, -1.3285636745958909, 0.8688761330242742], + [0.4932227109098853, -1.3522208233470798, 0.8697307251419230, 0.6763353283389330, 0.5162333414010227, -0.6571285095038136, 0.4502776988606759, 0.5048505264114825, -0.6266378036071936, -0.8427172354239780, -1.3285636745958909, 0.8688761330242742], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.3971705436850377, 1.0451794756904049, 0.7202437028253384, 0.4220462647091047, -0.6550832035098225, 0.2880599571903800, 0.4087223951031849, -0.6266378036071936, -0.6758193586102385, -1.3639234582964832, 1.0405796292173148], + [0.5301124371910383, -1.4006282144802651, 1.0829339763237291, 0.7421978900685412, 0.3977399223369969, -0.6550832035098225, 0.2069510863552320, 0.3894967688415254, -0.6254064701271418, -0.6244661657444724, -1.3639234582964832, 1.0803766373287025], + [0.5301124371910383, -1.4006282144802651, 1.0829339763237291, 0.7421978900685412, 0.3977399223369969, -0.6550832035098225, 0.2069510863552320, 0.3894967688415254, -0.6254064701271418, -0.6244661657444724, -1.3639234582964832, 1.0803766373287025], + [0.5485573003316148, -1.3971705436850377, 1.1240192801738464, 0.7641520773117439, 0.3734335799648890, -0.6540604262385534, 0.0988059252417014, 0.3606583294490361, -0.6241745380406341, -0.5474363764458234, -1.3639234582964832, 1.1247224118524661], + [0.5485573003316148, -1.3971705436850377, 1.1240192801738464, 0.7641520773117439, 0.3734335799648890, -0.6540604262385534, 0.0988059252417014, 0.3606583294490361, -0.6241745380406341, -0.5474363764458234, -1.3639234582964832, 1.1247224118524661], + [0.6223367528939205, -1.3798821897089000, 1.2028617834121227, 0.8519688262845549, 0.3187443096276463, -0.6540604262385534, -0.0634794071542905, 0.3093899927512774, -0.6241745380406341, -0.3933767978485255, -1.3462435664461871, 1.2054544487366123], + [0.6223367528939205, -1.3798821897089000, 1.2028617834121227, 0.8519688262845549, 0.3187443096276463, -0.6540604262385534, -0.0634794071542905, 0.3093899927512774, -0.6241745380406341, -0.3933767978485255, -1.3462435664461871, 1.2054544487366123], + [0.8990097000025675, -1.2208293331284339, 1.3405538743234129, 0.9178313880141631, 0.1637837812734675, -0.6479245082565801, -0.5230963418867957, 0.1715983271984418, -0.6291022663866651, 0.0944785343762516, -1.1871245397935215, 1.3487311947326515], + [0.8990097000025675, -1.2208293331284339, 1.3405538743234129, 0.9178313880141631, 0.1637837812734675, -0.6479245082565801, -0.5230963418867957, 0.1715983271984418, -0.6291022663866651, 0.0944785343762516, -1.1871245397935215, 1.3487311947326515], + [0.9543442894242969, -1.1758796127904763, 1.3538787064434858, 0.9178313880141631, 0.1334008533083327, -0.6479245082565801, -0.5501326321651783, 0.1459641588495624, -0.6303335998667168, 0.1971849201077836, -1.1429248101677811, 1.3635127511035607], + [0.9543442894242969, -1.1758796127904763, 1.3538787064434858, 0.9178313880141631, 0.1334008533083327, -0.6479245082565801, -0.5501326321651783, 0.1459641588495624, -0.6303335998667168, 0.1971849201077836, -1.1429248101677811, 1.3635127511035607], + [0.9543442894242969, -1.1758796127904763, 1.3538787064434858, 0.9178313880141631, 0.1334008533083327, -0.6479245082565801, -0.5501326321651783, 0.1459641588495624, -0.6303335998667168, 0.1971849201077836, -1.1429248101677811, 1.3635127511035607], + [0.9543442894242969, -1.1758796127904763, 1.3538787064434858, 0.9178313880141631, 0.1334008533083327, -0.6479245082565801, -0.5501326321651783, 0.1459641588495624, -0.6303335998667168, 0.1971849201077836, -1.1429248101677811, 1.3635127511035607], + [0.9912340157054499, -1.1136415384763807, 1.3649857018405316, 0.9178313880141631, 0.0908647541571439, -0.6489470369793021, -0.6312415030003262, 0.1171257194570731, -0.6327968654332763, 0.3127616998012983, -1.0839918373334607, 1.3748835617234649], + [0.9912340157054499, -1.1136415384763807, 1.3649857018405316, 0.9178313880141631, 0.0908647541571439, -0.6489470369793021, -0.6312415030003262, 0.1171257194570731, -0.6327968654332763, 0.3127616998012983, -1.0839918373334607, 1.3748835617234649], + [1.1572377839706380, -0.9130966323531845, 1.3572127481660805, 0.9397855752573659, -0.0397818360929358, -0.6612191214917958, -0.8204955349490048, 0.0434274854540449, -0.6488059964933170, 0.6722340498616604, -0.8806657144334504, 1.3691984327662716], + [1.1572377839706380, -0.9130966323531845, 1.3572127481660805, 0.9397855752573659, -0.0397818360929358, -0.6612191214917958, -0.8204955349490048, 0.0434274854540449, -0.6488059964933170, 0.6722340498616604, -0.8806657144334504, 1.3691984327662716], + [1.1572377839706380, -0.9130966323531845, 1.3572127481660805, 0.9397855752573659, -0.0397818360929358, -0.6612191214917958, -0.8204955349490048, 0.0434274854540449, -0.6488059964933170, 0.6722340498616604, -0.8806657144334504, 1.3691984327662716], + [1.1572377839706380, -0.8543075846573285, 1.3483268279978637, 0.9397855752573659, -0.0762413496510976, -0.6663325107510473, -0.8745681155057701, 0.0274061302359953, -0.6537325276264360, 0.7621021373767508, -0.8187860929574139, 1.3612389206028905], + [1.1572377839706380, -0.8543075846573285, 1.3483268279978637, 0.9397855752573659, -0.0762413496510976, -0.6663325107510473, -0.8745681155057701, 0.0274061302359953, -0.6537325276264360, 0.7621021373767508, -0.8187860929574139, 1.3612389206028905], + [1.1572377839706380, -0.8543075846573285, 1.3483268279978637, 0.9397855752573659, -0.0762413496510976, -0.6663325107510473, -0.8745681155057701, 0.0274061302359953, -0.6537325276264360, 0.7621021373767508, -0.8187860929574139, 1.3612389206028905], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.2679069628140969, -0.6191859705818570, 1.2972474952444664, 0.9617397625005687, -0.1461220839709077, -0.6837177359742452, -1.1449310182895966, -0.0206579354181535, -0.6746675912131397, 1.1087361892206713, -0.5830542016201318, 1.3055223354592229], + [1.3970210047981322, -0.0590346575780103, 1.0951485407048713, 1.0276023242301768, -0.2008113543081504, -0.7317857822384223, -1.6856568238572498, -0.1296031509008909, -0.7337811759589195, 1.7763276964756294, -0.0202369444307663, 1.0894736174479365], + [1.3970210047981322, -0.0590346575780103, 1.0951485407048713, 1.0276023242301768, -0.2008113543081504, -0.7317857822384223, -1.6856568238572498, -0.1296031509008909, -0.7337811759589195, 1.7763276964756294, -0.0202369444307663, 1.0894736174479365], + [1.4708004573604381, 0.1276795653642760, 1.0118671255147387, 1.0276023242301768, -0.2524623318488796, -0.7532618679981496, -1.7938019849707802, -0.1584415902933801, -0.7559481716321309, 2.0074170643715763, 0.1830891784692439, 0.9962338546935511], + [1.4708004573604381, 0.1276795653642760, 1.0118671255147387, 1.0276023242301768, -0.2524623318488796, -0.7532618679981496, -1.7938019849707802, -0.1584415902933801, -0.7559481716321309, 2.0074170643715763, 0.1830891784692439, 0.9962338546935511], + [1.4708004573604381, 0.1276795653642760, 1.0118671255147387, 1.0276023242301768, -0.2524623318488796, -0.7532618679981496, -1.7938019849707802, -0.1584415902933801, -0.7559481716321309, 2.0074170643715763, 0.1830891784692439, 0.9962338546935511], + [1.4708004573604381, 0.1276795653642760, 1.0118671255147387, 1.0276023242301768, -0.2524623318488796, -0.7532618679981496, -1.7938019849707802, -0.1584415902933801, -0.7559481716321309, 2.0074170643715763, 0.1830891784692439, 0.9962338546935511], + [1.4708004573604381, 0.2556133847876943, 0.9496807973642956, 1.0276023242301768, -0.2858911483425192, -0.7696245644986257, -1.8749108558059282, -0.1776672165550397, -0.7707265678185758, 2.1486383447524329, 0.3156883673464651, 0.9302833741803143], + [1.5076901836415908, 0.3904711899785557, 0.8830555572619961, 1.0495565114733796, -0.3162740763076540, -0.7880325669930929, -1.9560197266410764, -0.1936885717730893, -0.7867356988786166, 2.2770213269168482, 0.4512342048654023, 0.8575053224043701], + [1.5630247730633202, 0.5253203509924291, 0.8130989741919366, 1.0495565114733796, -0.3436187114762753, -0.8064405694875600, -2.0371285974762241, -0.2097099269911389, -0.8039767620251650, 2.3925981066103628, 0.5956273549310920, 0.7790476687264118], + [1.5630247730633202, 0.5253203509924291, 0.8130989741919366, 1.0495565114733796, -0.3436187114762753, -0.8064405694875600, -2.0371285974762241, -0.2097099269911389, -0.8039767620251650, 2.3925981066103628, 0.5956273549310920, 0.7790476687264118], + [1.5630247730633202, 0.5253203509924291, 0.8130989741919366, 1.0495565114733796, -0.3436187114762753, -0.8064405694875600, -2.0371285974762241, -0.2097099269911389, -0.8039767620251650, 2.3925981066103628, 0.5956273549310920, 0.7790476687264118], + [1.5999144993444732, 0.7915610022249484, 0.6631896201446699, 1.0934648859597853, -0.3922313962204910, -0.8422337972052253, -2.2534189197032855, -0.2385483663836282, -0.8384606841376300, 2.6493640709391926, 0.8696656786106824, 0.6130353812512614], + [1.5999144993444732, 0.7915610022249484, 0.6631896201446699, 1.0934648859597853, -0.3922313962204910, -0.8422337972052253, -2.2534189197032855, -0.2385483663836282, -0.8384606841376300, 2.6493640709391926, 0.8696656786106824, 0.6130353812512614], + [1.5999144993444732, 0.7915610022249484, 0.6631896201446699, 1.0934648859597853, -0.3922313962204910, -0.8422337972052253, -2.2534189197032855, -0.2385483663836282, -0.8384606841376300, 2.6493640709391926, 0.8696656786106824, 0.6130353812512614], + [1.5999144993444732, 0.7915610022249484, 0.6631896201446699, 1.0934648859597853, -0.3922313962204910, -0.8422337972052253, -2.2534189197032855, -0.2385483663836282, -0.8384606841376300, 2.6493640709391926, 0.8696656786106824, 0.6130353812512614], + [1.6368042256256261, 0.9229611366205823, 0.5843471169063936, 1.0934648859597853, -0.3983079818135180, -0.8606420482482395, -2.3615640808168159, -0.2545697216016778, -0.8581644142442819, 2.7777470531036079, 1.0111048134130518, 0.5209325337472112]], + dtype=torch.float64) + des_values_air_jumping_gait_side = torch.tensor([[0.8315012069547156, 2.2377773972257411, -1.5542658247582242, -0.5052811838603444, 2.2485083491047524, -1.6093069377487661, 0.8556133336103675, 2.1035517356988014, -2.1513747459533992, -0.6116002622746638, 2.1529688367754813, -2.1722401207308062], + [0.8315012069547156, 2.2377773972257411, -1.5542658247582242, -0.5052811838603444, 2.2485083491047524, -1.6093069377487661, 0.8556133336103675, 2.1035517356988014, -2.1513747459533992, -0.6116002622746638, 2.1529688367754813, -2.1722401207308062], + [0.8452827855266664, 2.2173666738362066, -1.5447046098912289, -0.5228175507226887, 2.2413766941500604, -1.5977020826125574, 0.8675067715903824, 2.1073654534240918, -2.1572238571569620, -0.6372125215745844, 2.1604620011627094, -2.1747503717533303], + [0.8452827855266664, 2.2173666738362066, -1.5447046098912289, -0.5228175507226887, 2.2413766941500604, -1.5977020826125574, 0.8675067715903824, 2.1073654534240918, -2.1572238571569620, -0.6372125215745844, 2.1604620011627094, -2.1747503717533303], + [0.8452827855266664, 2.2173666738362066, -1.5447046098912289, -0.5228175507226887, 2.2413766941500604, -1.5977020826125574, 0.8675067715903824, 2.1073654534240918, -2.1572238571569620, -0.6372125215745844, 2.1604620011627094, -2.1747503717533303], + [0.8452827855266664, 2.2173666738362066, -1.5447046098912289, -0.5228175507226887, 2.2413766941500604, -1.5977020826125574, 0.8675067715903824, 2.1073654534240918, -2.1572238571569620, -0.6372125215745844, 2.1604620011627094, -2.1747503717533303], + [0.8452827855266664, 2.2173666738362066, -1.5447046098912289, -0.5228175507226887, 2.2413766941500604, -1.5977020826125574, 0.8675067715903824, 2.1073654534240918, -2.1572238571569620, -0.6372125215745844, 2.1604620011627094, -2.1747503717533303], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.8728459426705677, 2.0268665888672199, -1.4538742305192176, -0.6455721187590981, 2.0773486301921533, -1.4961554869742144, 0.9031870855304268, 2.0882968647976399, -2.1079233352410611, -0.7652738180741875, 2.1042632682585016, -2.1186851160914641], + [0.9417538355303212, 1.6118315376771983, -1.1957191053814658, -0.7858630536578518, 1.6565631587279608, -1.2234326948006748, 0.9983643229654955, 1.8671012367307991, -1.8422030587528571, -0.9190114045219610, 1.8682285900608304, -1.8391908427187897], + [0.9555354141022718, 1.5369922185822391, -1.1479134957922672, -0.8033994205201961, 1.5781149542263528, -1.1731440490512335, 1.0221511989255252, 1.8098859365571305, -1.7837111343970820, -0.9702359231218022, 1.8045273263139114, -1.7797741792468142], + [0.9555354141022718, 1.5369922185822391, -1.1479134957922672, -0.8033994205201961, 1.5781149542263528, -1.1731440490512335, 1.0221511989255252, 1.8098859365571305, -1.7837111343970820, -0.9702359231218022, 1.8045273263139114, -1.7797741792468142], + [0.9830985712461732, 1.4417421760977458, -1.0857639725465800, -0.8560085211072287, 1.4782717848606701, -1.1083468664636207, 1.0340446369055400, 1.7374252997766138, -1.7101786963978691, -0.9958481824217228, 1.7221025180544072, -1.7044623777073156], + [0.9830985712461732, 1.4417421760977458, -1.0857639725465800, -0.8560085211072287, 1.4782717848606701, -1.1083468664636207, 1.0340446369055400, 1.7374252997766138, -1.7101786963978691, -0.9958481824217228, 1.7221025180544072, -1.7044623777073156], + [0.9968801498181239, 1.3328849846868964, -1.0073627542304631, -0.8735448879695729, 1.3570336506309126, -1.0271119403509565, 1.0578315128655695, 1.6382686389190644, -1.6115784648862126, -1.0214604417216435, 1.6171982166332199, -1.6040468456957824], + [0.9968801498181239, 1.2240277932760468, -0.9251343544420425, -0.8560085211072287, 1.2357955164011551, -0.9449072400192298, 1.0935118268056141, 1.5429256957868054, -1.5129774210544109, -1.0470727010215641, 1.5197870795992603, -1.5053008146681186], + [0.9968801498181239, 1.2240277932760468, -0.9251343544420425, -0.8560085211072287, 1.2357955164011551, -0.9449072400192298, 1.0935118268056141, 1.5429256957868054, -1.5129774210544109, -1.0470727010215641, 1.5197870795992603, -1.5053008146681186], + [0.9968801498181239, 1.1151706018651972, -0.8409967790023500, -0.8735448879695729, 1.1074257272167058, -0.8588366050401105, 1.1054052647856289, 1.4323278817533851, -1.4051859901829160, -1.0726849603214847, 1.4036430315972317, -1.3956803509924458], + [0.9968801498181239, 1.1151706018651972, -0.8409967790023500, -0.8735448879695729, 1.1074257272167058, -0.8588366050401105, 1.1054052647856289, 1.4323278817533851, -1.4051859901829160, -1.0726849603214847, 1.4036430315972317, -1.3956803509924458], + [0.9968801498181239, 1.1151706018651972, -0.8409967790023500, -0.8735448879695729, 1.1074257272167058, -0.8588366050401105, 1.1054052647856289, 1.4323278817533851, -1.4051859901829160, -1.0726849603214847, 1.4036430315972317, -1.3956803509924458], + [1.0244433069620253, 0.9995098359911697, -0.7530320220903539, -0.9261539885566056, 0.9790559380322567, -0.7708292421004784, 1.1172987027656438, 1.3102889145440937, -1.2940510495948923, -1.0982972196214054, 1.2837524014015891, -1.2835496362942482], + [1.0244433069620253, 0.9995098359911697, -0.7530320220903539, -0.9261539885566056, 0.9790559380322567, -0.7708292421004784, 1.1172987027656438, 1.3102889145440937, -1.2940510495948923, -1.0982972196214054, 1.2837524014015891, -1.2835496362942482], + [1.0382248855339760, 0.8906526445803201, -0.6641136068442755, -0.9436903554189497, 0.8506861488478075, -0.6808903220759563, 1.1291921407456587, 1.1882499473348023, -1.1787381434214612, -1.1239094789213260, 1.1638524047504626, -1.1672308312365884], + [1.0657880426778774, 0.7749918787062925, -0.5732804389976031, -0.9436903554189497, 0.7294301854806632, -0.5899820979119738, 1.1410855787256733, 1.0662014458311975, -1.0634264557282476, -1.1751339975211672, 1.0402151923612062, -1.0492425251950590], + [1.0657880426778774, 0.7749918787062925, -0.5732804389976031, -0.9436903554189497, 0.7294301854806632, -0.5899820979119738, 1.1410855787256733, 1.0662014458311975, -1.0634264557282476, -1.1751339975211672, 1.0402151923612062, -1.0492425251950590], + [1.0795696212498280, 0.6593141038961070, -0.4814936128168484, -0.9787630891436382, 0.6081920512509056, -0.4971418465834990, 1.1529790167056881, 0.9441624786219062, -0.9456069326676011, -1.2007462568210878, 0.9165779799719498, -0.9287396972672385], + [1.0933511998217786, 0.4347961466112298, -0.2979153129975707, -1.0313721897306709, 0.3799790927007736, -0.3133905506134291, 1.1648724546857030, 0.7115256973791944, -0.7149823388009565, -1.2775830347208497, 0.6842898839678923, -0.6944364502828858], + [1.0933511998217786, 0.4347961466112298, -0.2979153129975707, -1.0313721897306709, 0.3799790927007736, -0.3133905506134291, 1.1648724546857030, 0.7115256973791944, -0.7149823388009565, -1.2775830347208497, 0.6842898839678923, -0.6944364502828858], + [1.0520064641059266, 0.0469924022100784, 0.0625438352508974, -1.0839812903177035, -0.0265252397166488, 0.0492711615846326, 1.1172987027656438, 0.3148895196546839, -0.3038683319324828, -1.3288075533206909, 0.2908893871829561, -0.2843981415178280], + [1.0520064641059266, 0.0469924022100784, 0.0625438352508974, -1.0839812903177035, -0.0265252397166488, 0.0492711615846326, 1.1172987027656438, 0.3148895196546839, -0.3038683319324828, -1.3288075533206909, 0.2908893871829561, -0.2843981415178280], + [1.0520064641059266, 0.0469924022100784, 0.0625438352508974, -1.0839812903177035, -0.0265252397166488, 0.0492711615846326, 1.1172987027656438, 0.3148895196546839, -0.3038683319324828, -1.3288075533206909, 0.2908893871829561, -0.2843981415178280], + [1.0520064641059266, 0.0469924022100784, 0.0625438352508974, -1.0839812903177035, -0.0265252397166488, 0.0492711615846326, 1.1172987027656438, 0.3148895196546839, -0.3038683319324828, -1.3288075533206909, 0.2908893871829561, -0.2843981415178280], + [1.0520064641059266, 0.0469924022100784, 0.0625438352508974, -1.0839812903177035, -0.0265252397166488, 0.0492711615846326, 1.1172987027656438, 0.3148895196546839, -0.3038683319324828, -1.3288075533206909, 0.2908893871829561, -0.2843981415178280], + [1.0520064641059266, -0.0414540658112368, 0.1495498216252661, -1.0839812903177035, -0.1263684090823315, 0.1363087503052021, 1.1054052647856289, 0.2309877296982961, -0.2086095793369925, -1.3031952940207703, 0.2084645789234519, -0.1906766800245148], + [1.0520064641059266, -0.0414540658112368, 0.1495498216252661, -1.0839812903177035, -0.1263684090823315, 0.1363087503052021, 1.1054052647856289, 0.2309877296982961, -0.2086095793369925, -1.3031952940207703, 0.2084645789234519, -0.1906766800245148], + [1.0244433069620253, -0.3408113421910730, 0.4736788630063478, -1.0489085565930150, -0.4615740210902246, 0.4583532344867328, 1.0697249508455844, -0.0703055048939554, 0.1273010469941490, -1.2263585161210084, -0.1025111096019800, 0.1348453022858346], + [1.0244433069620253, -0.3408113421910730, 0.4736788630063478, -1.0489085565930150, -0.4615740210902246, 0.4583532344867328, 1.0697249508455844, -0.0703055048939554, 0.1273010469941490, -1.2263585161210084, -0.1025111096019800, 0.1348453022858346], + [1.0244433069620253, -0.3408113421910730, 0.4736788630063478, -1.0489085565930150, -0.4615740210902246, 0.4583532344867328, 1.0697249508455844, -0.0703055048939554, 0.1273010469941490, -1.2263585161210084, -0.1025111096019800, 0.1348453022858346], + [1.0244433069620253, -0.3408113421910730, 0.4736788630063478, -1.0489085565930150, -0.4615740210902246, 0.4583532344867328, 1.0697249508455844, -0.0703055048939554, 0.1273010469941490, -1.2263585161210084, -0.1025111096019800, 0.1348453022858346], + [1.0244433069620253, -0.3884363634333197, 0.5310456874625415, -1.0489085565930150, -0.5043639508183743, 0.5163803306453880, 1.0578315128655695, -0.1236975530480204, 0.1857917528697069, -1.2263585161210084, -0.1512166781189598, 0.1900740787728128], + [1.0244433069620253, -0.3884363634333197, 0.5310456874625415, -1.0489085565930150, -0.5043639508183743, 0.5163803306453880, 1.0578315128655695, -0.1236975530480204, 0.1857917528697069, -1.2263585161210084, -0.1512166781189598, 0.1900740787728128], + [1.0244433069620253, -0.4360783936117243, 0.5893684939817017, -1.0313721897306709, -0.5542855355012156, 0.5744055464856350, 1.0340446369055400, -0.1770896012020854, 0.2417772634183029, -1.2007462568210878, -0.1961756644423257, 0.2444657659615076], + [0.9968801498181239, -0.5245248616330396, 0.7021925024970406, -1.0138358228683266, -0.6398653949575150, 0.6865900435187365, 0.9983643229654955, -0.2648051088837636, 0.3470628897227273, -1.1495217382212466, -0.2786004727018299, 0.3473915489955652], + [0.9968801498181239, -0.5245248616330396, 0.7021925024970406, -1.0138358228683266, -0.6398653949575150, 0.6865900435187365, 0.9983643229654955, -0.2648051088837636, 0.3470628897227273, -1.1495217382212466, -0.2786004727018299, 0.3473915489955652], + [0.9968801498181239, -0.5245248616330396, 0.7021925024970406, -1.0138358228683266, -0.6398653949575150, 0.6865900435187365, 0.9983643229654955, -0.2648051088837636, 0.3470628897227273, -1.1495217382212466, -0.2786004727018299, 0.3473915489955652], + [0.9968801498181239, -0.5585427339489301, 0.7519100762121721, -1.0138358228683266, -0.6683920147762816, 0.7359112654471255, 0.9745774470054658, -0.3029422861366672, 0.3921844306530397, -1.1239094789213260, -0.3123197124443544, 0.3892313709482428], + [0.9968801498181239, -0.5585427339489301, 0.7519100762121721, -1.0138358228683266, -0.6683920147762816, 0.7359112654471255, 0.9745774470054658, -0.3029422861366672, 0.3921844306530397, -1.1239094789213260, -0.3123197124443544, 0.3892313709482428], + [0.9830985712461732, -0.6061677551911767, 0.8293576361942068, -0.9962994560059824, -0.7183135994591230, 0.8142476807334493, 0.9626840090254510, -0.3563343342907322, 0.4623757958961583, -1.0726849603214847, -0.3685184453485619, 0.4578531694588232], + [0.9693169926742226, -0.6810070742861357, 0.9469615550243778, -0.9787630891436382, -0.7753668390966559, 0.9322320198968438, 0.8912936475504120, -0.4249812533459587, 0.5626469699459345, -1.0214604417216435, -0.4397035070272246, 0.5532475893019123], + [0.9693169926742226, -0.6810070742861357, 0.9469615550243778, -0.9787630891436382, -0.7753668390966559, 0.9322320198968438, 0.8912936475504120, -0.4249812533459587, 0.5626469699459345, -1.0214604417216435, -0.4397035070272246, 0.5532475893019123], + [0.9141906783864198, -0.7218285210652043, 1.0186699694081758, -0.9612267222812940, -0.7967618039607308, 1.0037988188338121, 0.8318264576503378, -0.4593047128735719, 0.6211388943017098, -0.9958481824217228, -0.4771693289633629, 0.6093130483382435], + [0.9141906783864198, -0.7218285210652043, 1.0186699694081758, -0.9612267222812940, -0.7967618039607308, 1.0037988188338121, 0.8318264576503378, -0.4593047128735719, 0.6211388943017098, -0.9958481824217228, -0.4771693289633629, 0.6093130483382435], + [0.9141906783864198, -0.7218285210652043, 1.0186699694081758, -0.9612267222812940, -0.7967618039607308, 1.0037988188338121, 0.8318264576503378, -0.4593047128735719, 0.6211388943017098, -0.9958481824217228, -0.4771693289633629, 0.6093130483382435], + [0.8728459426705677, -0.7422392444547385, 1.0511780070068037, -0.9612267222812940, -0.8110251138701140, 1.0357125230180872, 0.8080395816903082, -0.4707458660494430, 0.6487135077814055, -0.9446236638218816, -0.4959022399314321, 0.6335800962609249], + [0.8728459426705677, -0.7422392444547385, 1.0511780070068037, -0.9612267222812940, -0.8110251138701140, 1.0357125230180872, 0.8080395816903082, -0.4707458660494430, 0.6487135077814055, -0.9446236638218816, -0.4959022399314321, 0.6335800962609249], + [0.8452827855266664, -0.7626499678442729, 1.0903783837919738, -0.9436903554189497, -0.8324200787341889, 1.0763302211142203, 0.7723592677502638, -0.4898144546758947, 0.6804666960866173, -0.8933991452220403, -0.5108885687058874, 0.6653785073745748], + [0.8452827855266664, -0.7626499678442729, 1.0903783837919738, -0.9436903554189497, -0.8324200787341889, 1.0763302211142203, 0.7723592677502638, -0.4898144546758947, 0.6804666960866173, -0.8933991452220403, -0.5108885687058874, 0.6653785073745748], + [0.6385591069474060, -0.7966678401601633, 1.2079827673679218, -0.7858630536578518, -0.8466833886435722, 1.2020539508460328, 0.5107036321899375, -0.5317653496540886, 0.7631905365257043, -0.6116002622746638, -0.5446078084484118, 0.7440417167241828], + [0.5145248997998498, -0.8034714146233415, 1.2337975362884539, -0.6631084856214423, -0.8181567688248057, 1.2300988999053031, 0.3798758144097744, -0.5317653496540886, 0.7682041764602077, -0.4579267064751402, -0.5371146440611841, 0.7498993080675149], + [0.5145248997998498, -0.8034714146233415, 1.2337975362884539, -0.6631084856214423, -0.8181567688248057, 1.2300988999053031, 0.3798758144097744, -0.5317653496540886, 0.7682041764602077, -0.4579267064751402, -0.5371146440611841, 0.7498993080675149], + [0.5145248997998498, -0.8034714146233415, 1.2337975362884539, -0.6631084856214423, -0.8181567688248057, 1.2300988999053031, 0.3798758144097744, -0.5317653496540886, 0.7682041764602077, -0.4579267064751402, -0.5371146440611841, 0.7498993080675149], + [0.5145248997998498, -0.8034714146233415, 1.2337975362884539, -0.6631084856214423, -0.8181567688248057, 1.2300988999053031, 0.3798758144097744, -0.5317653496540886, 0.7682041764602077, -0.4579267064751402, -0.5371146440611841, 0.7498993080675149], + [0.4731801640839978, -0.8034714146233415, 1.2376223940318736, -0.6280357518967539, -0.8110251138701140, 1.2349350788513602, 0.3204086245097003, -0.5279516319287983, 0.7648618852238962, -0.3810899285753783, -0.5296214796739566, 0.7465517643722421], + [0.4731801640839978, -0.8034714146233415, 1.2376223940318736, -0.6280357518967539, -0.8110251138701140, 1.2349350788513602, 0.3204086245097003, -0.5279516319287983, 0.7648618852238962, -0.3810899285753783, -0.5296214796739566, 0.7465517643722421], + [0.2802380640766882, -0.7966678401601633, 1.2309291253537777, -0.5228175507226887, -0.7896301490060391, 1.2291324162434549, 0.1539004927894927, -0.5241379142035080, 0.7514923141185783, -0.1505795948760928, -0.5333680618675704, 0.7348369884345082], + [0.2802380640766882, -0.7966678401601633, 1.2309291253537777, -0.5228175507226887, -0.7896301490060391, 1.2291324162434549, 0.1539004927894927, -0.5241379142035080, 0.7514923141185783, -0.1505795948760928, -0.5333680618675704, 0.7348369884345082], + [0.2251117497888854, -0.8034714146233415, 1.2213683752325595, -0.4526720832733118, -0.7753668390966559, 1.2213958461526491, 0.1063267408694334, -0.5126967610276368, 0.7473145516132071, -0.0737428169763310, -0.5371146440611841, 0.7306527621898824], + [0.2251117497888854, -0.8034714146233415, 1.2213683752325595, -0.4526720832733118, -0.7753668390966559, 1.2213958461526491, 0.1063267408694334, -0.5126967610276368, 0.7473145516132071, -0.0737428169763310, -0.5371146440611841, 0.7306527621898824], + [0.1975485926449840, -0.8034714146233415, 1.2108511783025979, -0.4175993495486233, -0.7682351841419643, 1.2107579447578909, 0.0706464269293890, -0.5050693255770562, 0.7423009116787038, -0.0225182983764898, -0.5371146440611841, 0.7256318533959034], + [0.1975485926449840, -0.8034714146233415, 1.2108511783025979, -0.4175993495486233, -0.7682351841419643, 1.2107579447578909, 0.0706464269293890, -0.5050693255770562, 0.7423009116787038, -0.0225182983764898, -0.5371146440611841, 0.7256318533959034], + [0.1010775426413292, -0.8102749890865195, 1.1917287485686077, -0.3649902489615907, -0.7611035291872726, 1.1923830031927247, -0.0007142009507000, -0.5012556078517658, 0.7347796394568039, 0.0799307388231927, -0.5333680618675704, 0.7197742620525713], + [0.1010775426413292, -0.8102749890865195, 1.1917287485686077, -0.3649902489615907, -0.7611035291872726, 1.1923830031927247, -0.0007142009507000, -0.5012556078517658, 0.7347796394568039, 0.0799307388231927, -0.5333680618675704, 0.7197742620525713], + [0.1010775426413292, -0.8102749890865195, 1.1917287485686077, -0.3649902489615907, -0.7611035291872726, 1.1923830031927247, -0.0007142009507000, -0.5012556078517658, 0.7347796394568039, 0.0799307388231927, -0.5333680618675704, 0.7197742620525713], + [0.1010775426413292, -0.8102749890865195, 1.1917287485686077, -0.3649902489615907, -0.7611035291872726, 1.1923830031927247, -0.0007142009507000, -0.5012556078517658, 0.7347796394568039, 0.0799307388231927, -0.5333680618675704, 0.7197742620525713], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [0.0459512283535265, -0.8102749890865195, 1.1678259437740084, -0.2773084146498696, -0.7611035291872726, 1.1682058690992552, -0.0601813908507741, -0.4936281724011851, 0.7272591795550490, 0.2079920353227958, -0.5296214796739566, 0.7130799881598862], + [-0.0505198216501283, -0.8170785635496977, 1.1381867818558336, -0.2071629472004928, -0.7539718742325811, 1.1401604499603830, -0.1434354567108779, -0.4936281724011851, 0.7197391258133665, 0.3104410725224782, -0.5258748974803427, 0.7055490317178479], + [-0.0505198216501283, -0.8170785635496977, 1.1381867818558336, -0.2071629472004928, -0.7539718742325811, 1.1401604499603830, -0.1434354567108779, -0.4936281724011851, 0.7197391258133665, 0.3104410725224782, -0.5258748974803427, 0.7055490317178479], + [-0.0505198216501283, -0.8170785635496977, 1.1381867818558336, -0.2071629472004928, -0.7539718742325811, 1.1401604499603830, -0.1434354567108779, -0.4936281724011851, 0.7197391258133665, 0.3104410725224782, -0.5258748974803427, 0.7055490317178479], + [-0.0505198216501283, -0.8170785635496977, 1.1381867818558336, -0.2071629472004928, -0.7539718742325811, 1.1401604499603830, -0.1434354567108779, -0.4936281724011851, 0.7197391258133665, 0.3104410725224782, -0.5258748974803427, 0.7055490317178479], + [-0.0918645573659804, -0.8170785635496977, 1.1047227621942390, -0.1194811128887717, -0.7468402192778895, 1.1072793219550556, -0.1910092086309372, -0.4974418901264754, 0.7122186659116115, 0.4385023690220813, -0.5296214796739566, 0.6980176685268794], + [-0.0918645573659804, -0.8170785635496977, 1.1047227621942390, -0.1194811128887717, -0.7468402192778895, 1.1072793219550556, -0.1910092086309372, -0.4974418901264754, 0.7122186659116115, 0.4385023690220813, -0.5296214796739566, 0.6980176685268794], + [-0.6293805756184870, -0.8102749890865195, 0.7758128810067714, 0.4942917272932758, -0.7539718742325811, 0.7832985798926141, -0.6191729759114710, -0.5584613737311211, 0.6587403814903396, 0.9763598143204141, -0.5820736303845502, 0.6503161877415681], + [-0.6293805756184870, -0.8102749890865195, 0.7758128810067714, 0.4942917272932758, -0.7539718742325811, 0.7832985798926141, -0.6191729759114710, -0.5584613737311211, 0.6587403814903396, 0.9763598143204141, -0.5820736303845502, 0.6503161877415681], + [-0.6707253113343391, -0.8102749890865195, 0.7318316644152154, 0.5469008278803085, -0.7539718742325811, 0.7407469743135806, -0.6786401658115452, -0.5660888091817019, 0.6520557990177168, 1.0019720736203348, -0.5858202125781640, 0.6444585963982360], + [-0.6707253113343391, -0.8102749890865195, 0.7318316644152154, 0.5469008278803085, -0.7539718742325811, 0.7407469743135806, -0.6786401658115452, -0.5660888091817019, 0.6520557990177168, 1.0019720736203348, -0.5858202125781640, 0.6444585963982360], + [-0.7396332041940926, -0.8102749890865195, 0.6802016618283742, 0.6345826621920295, -0.7539718742325811, 0.6894913748226892, -0.7143204797515896, -0.5813436800828633, 0.6453708103850216, 1.0275843329202554, -0.5933133769653917, 0.6386010050549039], + [-0.7396332041940926, -0.8102749890865195, 0.6802016618283742, 0.6345826621920295, -0.7539718742325811, 0.6894913748226892, -0.7143204797515896, -0.5813436800828633, 0.6453708103850216, 1.0275843329202554, -0.5933133769653917, 0.6386010050549039], + [-0.8085410970538460, -0.8102749890865195, 0.6142277455850443, 0.7573372302284390, -0.7539718742325811, 0.6246941922350763, -0.7856811076316785, -0.5965985509840247, 0.6370152853742794, 1.0531965922201760, -0.6083090721953309, 0.6319067311622187], + [-0.8085410970538460, -0.8102749890865195, 0.6142277455850443, 0.7573372302284390, -0.7539718742325811, 0.6246941922350763, -0.7856811076316785, -0.5965985509840247, 0.6370152853742794, 1.0531965922201760, -0.6083090721953309, 0.6319067311622187], + [-0.8085410970538460, -0.8102749890865195, 0.6142277455850443, 0.7573372302284390, -0.7539718742325811, 0.6246941922350763, -0.7856811076316785, -0.5965985509840247, 0.6370152853742794, 1.0531965922201760, -0.6083090721953309, 0.6319067311622187], + [-0.8085410970538460, -0.8102749890865195, 0.6142277455850443, 0.7573372302284390, -0.7539718742325811, 0.6246941922350763, -0.7856811076316785, -0.5965985509840247, 0.6370152853742794, 1.0531965922201760, -0.6083090721953309, 0.6319067311622187], + [-0.8774489899135994, -0.8034714146233415, 0.5434753132642128, 0.8450190645401601, -0.7539718742325811, 0.5540966974375685, -0.8213614215717231, -0.6194808573357669, 0.6286593542034647, 1.1044211108200173, -0.6195488187761724, 0.6243753679712503], + [-0.8774489899135994, -0.8034714146233415, 0.5434753132642128, 0.8450190645401601, -0.7539718742325811, 0.5540966974375685, -0.8213614215717231, -0.6194808573357669, 0.6286593542034647, 1.1044211108200173, -0.6195488187761724, 0.6243753679712503], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.0841726684928599, -0.7762571167706290, 0.2939254209304896, 1.1256009343376674, -0.7254452544138146, 0.3084523706614509, -0.9997629912719455, -0.6652454700392512, 0.6027560894219610, 1.2837069259194616, -0.6720009694867660, 0.6034554569949115], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1255174042087119, -0.7626499678442729, 0.2375145785372622, 1.1782100349247002, -0.7111819445044313, 0.2533284861251566, -1.0473664767869548, -0.6766866232151223, 0.5960702884691208, 1.2837069259194616, -0.6794941338739937, 0.5992716374992157], + [-1.1806437184965146, -0.7422392444547385, 0.1562449492864691, 1.2483555023740769, -0.6897869796403564, 0.1749944212368430, -1.0830467907269992, -0.6919510284105969, 0.5877147634583786, 1.2837069259194616, -0.6907338804548352, 0.5917402743082474], + [-1.1806437184965146, -0.7422392444547385, 0.1562449492864691, 1.2483555023740769, -0.6897869796403564, 0.1749944212368430, -1.0830467907269992, -0.6919510284105969, 0.5877147634583786, 1.2837069259194616, -0.6907338804548352, 0.5917402743082474], + [-1.1806437184965146, -0.7422392444547385, 0.1562449492864691, 1.2483555023740769, -0.6897869796403564, 0.1749944212368430, -1.0830467907269992, -0.6919510284105969, 0.5877147634583786, 1.2837069259194616, -0.6907338804548352, 0.5917402743082474], + [-1.1806437184965146, -0.7422392444547385, 0.1562449492864691, 1.2483555023740769, -0.6897869796403564, 0.1749944212368430, -1.0830467907269992, -0.6919510284105969, 0.5877147634583786, 1.2837069259194616, -0.6907338804548352, 0.5917402743082474], + [-1.2357700327843173, -0.7150249466020262, 0.0740170142438254, 1.3009646029611097, -0.6541287048668983, 0.0927897209051163, -1.1306205426470586, -0.7072058993117584, 0.5793588322875639, 1.3093191852193822, -0.6982270448420629, 0.5842093178662091], + [-1.2357700327843173, -0.7150249466020262, 0.0740170142438254, 1.3009646029611097, -0.6541287048668983, 0.0927897209051163, -1.1306205426470586, -0.7072058993117584, 0.5793588322875639, 1.3093191852193822, -0.6982270448420629, 0.5842093178662091], + [-1.5114016042233311, -0.2319541507802235, -0.6488155701079279, 1.6166192064833056, -0.1905533036745561, -0.6122248544429407, -1.4279564921474293, -0.8139899956198884, 0.5100041567937224, 1.2068701480196997, -0.7469326133590427, 0.5247967218835352], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5251831827952818, -0.1843291295379768, -0.7109632343705077, 1.6166192064833056, -0.1406317189917148, -0.6741207057266009, -1.4398499301274441, -0.8178037133451787, 0.5041550455901593, 1.2324824073196203, -0.7544257777462703, 0.5189391305402031], + [-1.5527463399391832, 0.1218317213050374, -1.0264847192186766, 1.6516919402079939, 0.1375028242412585, -0.9797246259054679, -1.5349974339675627, -0.8254311487957594, 0.4757449608414039, 1.1812578887197791, -0.7806518531015672, 0.4938354000681687], + [-1.5527463399391832, 0.1218317213050374, -1.0264847192186766, 1.6516919402079939, 0.1375028242412585, -0.9797246259054679, -1.5349974339675627, -0.8254311487957594, 0.4757449608414039, 1.1812578887197791, -0.7806518531015672, 0.4938354000681687], + [-1.5527463399391832, 0.1218317213050374, -1.0264847192186766, 1.6516919402079939, 0.1375028242412585, -0.9797246259054679, -1.5349974339675627, -0.8254311487957594, 0.4757449608414039, 1.1812578887197791, -0.7806518531015672, 0.4938354000681687], + [-1.5527463399391832, 0.1218317213050374, -1.0264847192186766, 1.6516919402079939, 0.1375028242412585, -0.9797246259054679, -1.5349974339675627, -0.8254311487957594, 0.4757449608414039, 1.1812578887197791, -0.7806518531015672, 0.4938354000681687], + [-1.5527463399391832, 0.1762603170104622, -1.0809831327401940, 1.6341555733456496, 0.1874244089240998, -1.0319471791378096, -1.5349974339675627, -0.8254311487957594, 0.4707317270669730, 1.2068701480196997, -0.7806518531015672, 0.4896511738235428], + [-1.5527463399391832, 0.1762603170104622, -1.0809831327401940, 1.6341555733456496, 0.1874244089240998, -1.0319471791378096, -1.5349974339675627, -0.8254311487957594, 0.4707317270669730, 1.2068701480196997, -0.7806518531015672, 0.4896511738235428], + [-1.5527463399391832, 0.1762603170104622, -1.0809831327401940, 1.6341555733456496, 0.1874244089240998, -1.0319471791378096, -1.5349974339675627, -0.8254311487957594, 0.4707317270669730, 1.2068701480196997, -0.7806518531015672, 0.4896511738235428], + [-1.5527463399391832, 0.1762603170104622, -1.0809831327401940, 1.6341555733456496, 0.1874244089240998, -1.0319471791378096, -1.5349974339675627, -0.8254311487957594, 0.4707317270669730, 1.2068701480196997, -0.7806518531015672, 0.4896511738235428], + [-1.5251831827952818, 0.7069561340745115, -1.5131530191013443, 1.5464737390339287, 0.6438503260243637, -1.4555377888780814, -1.5944646238676368, -0.8178037133451787, 0.4180889139147608, 1.1300333701199379, -0.7544257777462703, 0.4419537605275332], + [-1.5114016042233311, 0.7545811553167583, -1.5437486278282626, 1.5114010053092402, 0.6795086007978218, -1.4874514930623564, -1.5944646238676368, -0.8139899956198884, 0.4114039252820656, 1.1044211108200173, -0.7469326133590427, 0.4369332584824844], + [-1.4838384470794297, 0.7954026020958268, -1.5686074146858284, 1.4763282715845518, 0.7009035656618966, -1.5135630047183284, -1.6063580618476516, -0.8101762778945980, 0.4055548140785026, 1.1044211108200173, -0.7319462845845873, 0.4319123496885054], + [-1.4838384470794297, 0.7954026020958268, -1.5686074146858284, 1.4763282715845518, 0.7009035656618966, -1.5135630047183284, -1.6063580618476516, -0.8101762778945980, 0.4055548140785026, 1.1044211108200173, -0.7319462845845873, 0.4319123496885054], + [-1.4838384470794297, 0.7954026020958268, -1.5686074146858284, 1.4763282715845518, 0.7009035656618966, -1.5135630047183284, -1.6063580618476516, -0.8101762778945980, 0.4055548140785026, 1.1044211108200173, -0.7319462845845873, 0.4319123496885054], + [-1.4838384470794297, 0.7954026020958268, -1.5686074146858284, 1.4763282715845518, 0.7009035656618966, -1.5135630047183284, -1.6063580618476516, -0.8101762778945980, 0.4055548140785026, 1.1044211108200173, -0.7319462845845873, 0.4319123496885054], + [-1.4700568685074791, 0.8158133254853611, -1.5886881502116692, 1.4587919047222075, 0.7151668755712799, -1.5338718537663949, -1.6063580618476516, -0.8025488424440173, 0.4005415803040717, 1.0788088515200966, -0.7244531201973596, 0.4285652127421628], + [-1.4700568685074791, 0.8158133254853611, -1.5886881502116692, 1.4587919047222075, 0.7151668755712799, -1.5338718537663949, -1.6063580618476516, -0.8025488424440173, 0.4005415803040717, 1.0788088515200966, -0.7244531201973596, 0.4285652127421628], + [-1.4838384470794297, 0.8294204744117173, -1.6145033838779783, 1.3711100704104866, 0.7294301854806632, -1.5619172729052671, -1.5825711858876219, -0.7949214069934365, 0.3863353194494766, 0.9507475550204935, -0.7094667914229044, 0.4193604844524881]], + dtype=torch.float64) + des_values_forest_side = torch.tensor([[-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.5077925079264592, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.5077925079264592, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.5077925079264592, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.5077925079264592, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.4314528903842941, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8301903296766100, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.7755477220236084, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8526422135013925, -0.8323839234432731, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-1.0482837629340835, -0.9570331483941835, 1.0142822854401634, -0.9819526783115723, 0.8516692844394737, -0.8319405013187813, -0.3109353232378432, 0.8461734189571245, -0.8306646430922658, -0.6684863395487565, -0.8052544106643177, 0.9683876688787969], + [-0.8298913123228162, -0.7755477220236084, 0.9892012417153402, -0.9147876524352677, 0.8447788658854042, -0.8284410084579772, -0.4314528903842941, 0.8461734189571245, -0.8289453627412587, -0.6684863395487565, -0.8052544106643177, 0.9243493132539343], + [-0.8298913123228162, -0.7755477220236084, 0.9892012417153402, -0.9147876524352677, 0.8447788658854042, -0.8284410084579772, -0.4314528903842941, 0.8461734189571245, -0.8289453627412587, -0.6684863395487565, -0.8052544106643177, 0.9243493132539343], + [-0.3931064111002814, -0.7755477220236084, 0.8888648737952770, -0.7132925748063541, 0.8378884473313347, -0.8161940590804707, -0.7930055918236466, 0.8202982407800524, -0.8151886124752274, -1.1505678344156480, -0.5792709464928503, 0.7481744817337621], + [-0.3931064111002814, -0.7755477220236084, 0.8888648737952770, -0.7132925748063541, 0.8378884473313347, -0.8161940590804707, -0.7930055918236466, 0.8202982407800524, -0.8151886124752274, -1.1505678344156480, -0.5792709464928503, 0.7481744817337621], + [0.4804633913447883, -0.5940622956530334, 0.6630989012095569, -0.5117974971774405, 0.7965459360069180, -0.7899508391068248, -1.0340407261165483, 0.7879542680587124, -0.7911136726451792, -1.4719554976602425, -0.3532874823213830, 0.4839015299431429], + [0.4804633913447883, -0.5940622956530334, 0.6630989012095569, -0.5117974971774405, 0.7965459360069180, -0.7899508391068248, -1.0340407261165483, 0.7879542680587124, -0.7911136726451792, -1.4719554976602425, -0.3532874823213830, 0.4839015299431429], + [0.4804633913447883, -0.5940622956530334, 0.6630989012095569, -0.5117974971774405, 0.7965459360069180, -0.7899508391068248, -1.0340407261165483, 0.7879542680587124, -0.7911136726451792, -1.4719554976602425, -0.3532874823213830, 0.4839015299431429], + [1.1356407431785907, -0.4125768692824583, 0.3620166393247446, -0.1759723677959179, 0.7483130061284319, -0.7532099909743052, -1.5161109947023519, 0.7426727062488362, -0.7532844900070738, -1.4719554976602425, -0.0143122860641820, 0.0875135112779360], + [1.1356407431785907, -0.4125768692824583, 0.3620166393247446, -0.1759723677959179, 0.7483130061284319, -0.7532099909743052, -1.5161109947023519, 0.7426727062488362, -0.7532844900070738, -1.4719554976602425, -0.0143122860641820, 0.0875135112779360], + [1.1356407431785907, -0.4125768692824583, 0.3620166393247446, -0.1759723677959179, 0.7483130061284319, -0.7532099909743052, -1.5161109947023519, 0.7426727062488362, -0.7532844900070738, -1.4719554976602425, -0.0143122860641820, 0.0875135112779360], + [1.1356407431785907, -0.4125768692824583, 0.3620166393247446, -0.1759723677959179, 0.7483130061284319, -0.7532099909743052, -1.5161109947023519, 0.7426727062488362, -0.7532844900070738, -1.4719554976602425, -0.0143122860641820, 0.0875135112779360], + [1.3540331937898580, -0.2310914429118832, 0.0359264918397318, 0.1598527615856048, 0.7000800762499456, -0.7094667554260234, -1.8776636961417044, 0.6973911444389601, -0.7068572339752833, -1.6326493292825397, 0.3246629101930190, -0.3088959164079928], + [1.3540331937898580, -0.2310914429118832, 0.0359264918397318, 0.1598527615856048, 0.7000800762499456, -0.7094667554260234, -1.8776636961417044, 0.6973911444389601, -0.7068572339752833, -1.6326493292825397, 0.3246629101930190, -0.3088959164079928], + [1.3540331937898580, -0.2310914429118832, 0.0359264918397318, 0.1598527615856048, 0.7000800762499456, -0.7094667554260234, -1.8776636961417044, 0.6973911444389601, -0.7068572339752833, -1.6326493292825397, 0.3246629101930190, -0.3088959164079928], + [1.3540331937898580, -0.2310914429118832, 0.0359264918397318, 0.1598527615856048, 0.7000800762499456, -0.7094667554260234, -1.8776636961417044, 0.6973911444389601, -0.7068572339752833, -1.6326493292825397, 0.3246629101930190, -0.3088959164079928], + [1.3540331937898580, -0.2310914429118832, 0.0359264918397318, 0.1598527615856048, 0.7000800762499456, -0.7094667554260234, -1.8776636961417044, 0.6973911444389601, -0.7068572339752833, -1.6326493292825397, 0.3246629101930190, -0.3088959164079928], + [1.3540331937898580, -0.2310914429118832, -0.2901758486660515, 0.4285128650908229, 0.6656279834795984, -0.6569803154787317, -2.1186988304346062, 0.6521095826290840, -0.6569914172414786, -1.4719554976602425, 0.6636381064502200, -0.6612455794483372], + [1.3540331937898580, -0.2310914429118832, -0.2901758486660515, 0.4285128650908229, 0.6656279834795984, -0.6569803154787317, -2.1186988304346062, 0.6521095826290840, -0.6569914172414786, -1.4719554976602425, 0.6636381064502200, -0.6612455794483372], + [0.0436784901222535, 0.3133648361998420, -0.8922062492072012, 0.2941828133382138, 0.3693227596082266, -0.4172858898903453, -1.0340407261165483, 0.3804202117698273, -0.4145352758798595, 0.1349828185627297, 2.0195388914790242, -1.1016933627591285], + [0.0436784901222535, 0.3133648361998420, -0.8922062492072012, 0.2941828133382138, 0.3693227596082266, -0.4172858898903453, -1.0340407261165483, 0.3804202117698273, -0.4145352758798595, 0.1349828185627297, 2.0195388914790242, -1.1016933627591285], + [-0.3931064111002814, 0.6763356889409922, -0.8922062492072012, 0.3613478392145184, 0.2797473184053237, -0.3420548724066733, -0.7930055918236466, 0.2963097107079824, -0.3423137996670135, 0.4563704818073241, 1.9065471593932903, -1.0576550071342659], + [-0.3931064111002814, 0.6763356889409922, -0.8922062492072012, 0.3613478392145184, 0.2797473184053237, -0.3420548724066733, -0.7930055918236466, 0.2963097107079824, -0.3423137996670135, 0.4563704818073241, 1.9065471593932903, -1.0576550071342659], + [-0.1747139604890139, 1.9467336735350178, -0.8420319687367843, 0.4285128650908229, 0.1005964359995178, -0.1758463952010185, -0.1904177560913924, 0.1087146689242099, -0.1755185310395795, 0.7777581450519185, 1.4545802310503557, -0.8374204109685094], + [0.6988558419560558, 2.4911899526467431, -0.8420319687367843, 0.3613478392145184, -0.0854448649603575, -0.0201312940365451, 0.0506173782015094, -0.0853491674038306, -0.0241992930291838, 0.7777581450519185, 1.2285967668788884, -0.6172072238234746], + [0.6988558419560558, 2.4911899526467431, -0.8420319687367843, 0.3613478392145184, -0.0854448649603575, -0.0201312940365451, 0.0506173782015094, -0.0853491674038306, -0.0241992930291838, 0.7777581450519185, 1.2285967668788884, -0.6172072238234746], + [1.1356407431785907, 2.4911899526467431, -0.8671130124616075, 0.4285128650908229, -0.1681298876091910, 0.0428527740696204, 0.0506173782015094, -0.1500371128465108, 0.0428618346726665, 0.7777581450519185, 1.1156050347931548, -0.6172072238234746], + [1.3540331937898580, 2.3097045262761680, -0.8922062492072012, 0.4956778909671274, -0.2508149102580244, 0.1128349774738556, 0.1711349453479602, -0.2276626473777270, 0.1202419877578586, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.3540331937898580, 2.3097045262761680, -0.8922062492072012, 0.4956778909671274, -0.2508149102580244, 0.1128349774738556, 0.1711349453479602, -0.2276626473777270, 0.1202419877578586, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.5724256444011255, 1.7652482471644426, -0.9423683366568476, 0.5628429168434320, -0.3403903514609274, 0.1933190611546569, 0.1711349453479602, -0.3052881819089431, 0.1924617923320550, 0.6170643134296213, 1.2285967668788884, -0.5731688681986120], + [1.5724256444011255, 1.7652482471644426, -0.9423683366568476, 0.5628429168434320, -0.3403903514609274, 0.1933190611546569, 0.1711349453479602, -0.3052881819089431, 0.1924617923320550, 0.6170643134296213, 1.2285967668788884, -0.5731688681986120], + [1.7908180950123929, 1.0393065416821423, -0.9674493803816707, 0.4956778909671274, -0.4437466297719692, 0.2895444845325380, 0.0506173782015094, -0.4217264837057674, 0.2939152136086460, 0.6170643134296213, 1.2285967668788884, -0.5731688681986120], + [1.5724256444011255, 0.4948502625704171, -0.9925426171272644, 0.4956778909671274, -0.5608837451911499, 0.3910195724133945, 0.0506173782015094, -0.5316959909583238, 0.3902099580128907, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.5724256444011255, 0.4948502625704171, -0.9925426171272644, 0.4956778909671274, -0.5608837451911499, 0.3910195724133945, 0.0506173782015094, -0.5316959909583238, 0.3902099580128907, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.5724256444011255, 0.4948502625704171, -0.9925426171272644, 0.4956778909671274, -0.5608837451911499, 0.3910195724133945, 0.0506173782015094, -0.5316959909583238, 0.3902099580128907, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.5724256444011255, 0.4948502625704171, -0.9925426171272644, 0.4956778909671274, -0.5608837451911499, 0.3910195724133945, 0.0506173782015094, -0.5316959909583238, 0.3902099580128907, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.5724256444011255, 0.4948502625704171, -0.9925426171272644, 0.4956778909671274, -0.5608837451911499, 0.3910195724133945, 0.0506173782015094, -0.5316959909583238, 0.3902099580128907, 0.6170643134296213, 1.1156050347931548, -0.5731688681986120], + [1.3540331937898580, 0.1318794098292669, -0.9925426171272644, 0.5628429168434320, -0.6780380866567159, 0.4942473832070376, 0.0506173782015094, -0.6481342927551480, 0.4916633792894816, 0.6170643134296213, 1.0026133027074211, -0.5731688681986120], + [1.3540331937898580, 0.1318794098292669, -0.9925426171272644, 0.5628429168434320, -0.6780380866567159, 0.4942473832070376, 0.0506173782015094, -0.6481342927551480, 0.4916633792894816, 0.6170643134296213, 1.0026133027074211, -0.5731688681986120], + [1.3540331937898580, 0.1318794098292669, -0.9925426171272644, 0.5628429168434320, -0.6780380866567159, 0.4942473832070376, 0.0506173782015094, -0.6481342927551480, 0.4916633792894816, 0.6170643134296213, 1.0026133027074211, -0.5731688681986120], + [1.3540331937898580, 0.1318794098292669, -0.9925426171272644, 0.5628429168434320, -0.6780380866567159, 0.4942473832070376, 0.0506173782015094, -0.6481342927551480, 0.4916633792894816, 0.6170643134296213, 1.0026133027074211, -0.5731688681986120], + [1.3540331937898580, 0.1318794098292669, -0.9925426171272644, 0.5628429168434320, -0.6780380866567159, 0.4942473832070376, 0.0506173782015094, -0.6481342927551480, 0.4916633792894816, 0.6170643134296213, 1.0026133027074211, -0.5731688681986120], + [1.1356407431785907, -0.4125768692824583, -0.9925426171272644, 0.5628429168434320, -0.7882847835218272, 0.5957216206643555, 0.0506173782015094, -0.7645887665383330, 0.5948344092784301, 0.6170643134296213, 0.8896215706216873, -0.5731688681986120], + [1.1356407431785907, -0.4125768692824583, -0.9925426171272644, 0.5628429168434320, -0.7882847835218272, 0.5957216206643555, 0.0506173782015094, -0.7645887665383330, 0.5948344092784301, 0.6170643134296213, 0.8896215706216873, -0.5731688681986120], + [0.9172482925673232, 0.1318794098292669, -1.0176236608520877, 0.6971729685960411, -1.1948194782119250, 0.9753804530612123, -0.0699001889449415, -1.1656540282829499, 0.9679750811610603, 0.9384519766742158, 0.4376546422787527, -0.5731688681986120], + [0.9172482925673232, 0.6763356889409922, -1.0176236608520877, 0.6971729685960411, -1.2775045008607586, 1.0646128436822546, -0.0699001889449415, -1.2562171519027023, 1.0625505452142980, 0.9384519766742158, 0.4376546422787527, -0.5731688681986120], + [0.9172482925673232, 0.6763356889409922, -1.0176236608520877, 0.6971729685960411, -1.2775045008607586, 1.0646128436822546, -0.0699001889449415, -1.2562171519027023, 1.0625505452142980, 0.9384519766742158, 0.4376546422787527, -0.5731688681986120], + [0.9172482925673232, 1.0393065416821423, -1.0176236608520877, 0.7643379944723455, -1.3601895235095920, 1.1503414893248003, -0.0699001889449415, -1.3403114809781864, 1.1468069838841939, 0.9384519766742158, 0.5506463743644864, -0.6172072238234746], + [0.9172482925673232, 1.0393065416821423, -1.0176236608520877, 0.7643379944723455, -1.3601895235095920, 1.1503414893248003, -0.0699001889449415, -1.3403114809781864, 1.1468069838841939, 0.9384519766742158, 0.5506463743644864, -0.6172072238234746], + [0.9172482925673232, 1.0393065416821423, -1.0176236608520877, 0.7643379944723455, -1.3601895235095920, 1.1503414893248003, -0.0699001889449415, -1.3403114809781864, 1.1468069838841939, 0.9384519766742158, 0.5506463743644864, -0.6172072238234746], + [0.9172482925673232, 1.2207919680527175, -1.0427047045769109, 0.8315030203486501, -1.4290937090502867, 1.2325706421065421, -0.0699001889449415, -1.4114682209651346, 1.2276265334907248, 0.7777581450519185, 0.6636381064502200, -0.6172072238234746], + [0.9172482925673232, 1.2207919680527175, -1.0427047045769109, 0.8315030203486501, -1.4290937090502867, 1.2325706421065421, -0.0699001889449415, -1.4114682209651346, 1.2276265334907248, 0.7777581450519185, 0.6636381064502200, -0.6172072238234746], + [0.9172482925673232, 1.2207919680527175, -1.0427047045769109, 0.8315030203486501, -1.4290937090502867, 1.2325706421065421, -0.0699001889449415, -1.4114682209651346, 1.2276265334907248, 0.7777581450519185, 0.6636381064502200, -0.6172072238234746], + [0.9172482925673232, 1.0393065416821423, -1.0427047045769109, 0.8986680462249547, -1.4842170574828422, 1.3078059117079066, 0.0506173782015094, -1.4696873718635468, 1.3032848987669357, 0.9384519766742158, 0.7766298385359537, -0.6172072238234746], + [0.9172482925673232, 0.8578211153115672, -1.0176236608520877, 0.9658330721012591, -1.5531212430235368, 1.4127796420260286, 0.1711349453479602, -1.5408441118504950, 1.4064584362138584, 0.9384519766742158, 0.6636381064502200, -0.6172072238234746], + [0.6988558419560558, 0.6763356889409922, -1.0176236608520877, 1.0329980979775637, -1.5806829172398147, 1.5230013360000489, 0.4121700796408619, -1.5861256736603710, 1.5216677719371559, 0.9384519766742158, 0.0986794460215517, -0.6172072238234746], + [0.6988558419560558, 0.6763356889409922, -1.0176236608520877, 1.1001631238538683, -1.6013541729020231, 1.5684947431905019, 0.5326876467873128, -1.5990632627489072, 1.5629363510966001, 0.9384519766742158, -0.1273040181499157, -0.6172072238234746], + [0.6988558419560558, 0.6763356889409922, -1.0176236608520877, 1.1001631238538683, -1.6013541729020231, 1.5684947431905019, 0.5326876467873128, -1.5990632627489072, 1.5629363510966001, 0.9384519766742158, -0.1273040181499157, -0.6172072238234746], + [0.4804633913447883, 0.6763356889409922, -1.0176236608520877, 1.1673281497301728, -1.6289158471183007, 1.6034854196808503, 0.6532052139337636, -1.6184696463817112, 1.6007655337347055, 0.9384519766742158, -0.6922626785785840, -0.6612455794483372], + [0.4804633913447883, 0.6763356889409922, -1.0176236608520877, 1.1673281497301728, -1.6289158471183007, 1.6034854196808503, 0.6532052139337636, -1.6184696463817112, 1.6007655337347055, 0.9384519766742158, -0.6922626785785840, -0.6612455794483372], + [0.4804633913447883, 0.6763356889409922, -1.0176236608520877, 1.1673281497301728, -1.6289158471183007, 1.6034854196808503, 0.6532052139337636, -1.6184696463817112, 1.6007655337347055, 0.9384519766742158, -0.6922626785785840, -0.6612455794483372], + [0.4804633913447883, 0.6763356889409922, -1.0176236608520877, 1.1673281497301728, -1.6289158471183007, 1.6034854196808503, 0.6532052139337636, -1.6184696463817112, 1.6007655337347055, 0.9384519766742158, -0.6922626785785840, -0.6612455794483372], + [0.4804633913447883, 0.6763356889409922, -1.0176236608520877, 1.1673281497301728, -1.6289158471183007, 1.6034854196808503, 0.6532052139337636, -1.6184696463817112, 1.6007655337347055, 0.9384519766742158, -0.6922626785785840, -0.6612455794483372], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.0393065416821423, -1.0176236608520877, 1.2344931756064772, -1.6426966842264397, 1.6367276253761043, 0.7737227810802145, -1.6314072354702474, 1.6351578273094460, 0.9384519766742158, -1.0312378748357851, -0.7053053440939216], + [0.4804633913447883, 1.2207919680527175, -1.0176236608520877, 1.2344931756064772, -1.6358062656723702, 1.6577220312703134, 1.0147579153731163, -1.6314072354702474, 1.6592310955008449, 0.9384519766742158, -0.8052544106643177, -0.7933820553436468], + [0.4804633913447883, 1.2207919680527175, -1.0176236608520877, 1.2344931756064772, -1.6358062656723702, 1.6577220312703134, 1.0147579153731163, -1.6314072354702474, 1.6592310955008449, 0.9384519766742158, -0.8052544106643177, -0.7933820553436468], + [0.6988558419560558, 1.2207919680527175, -1.0677857483017339, 1.2344931756064772, -1.4704362203747032, 1.6227305043564266, 1.7378633182518213, -1.5020313445848870, 1.6265605897350857, 1.0991458082965131, 0.8896215706216873, -1.2338298386544382], + [0.6988558419560558, 1.2207919680527175, -1.0677857483017339, 1.2344931756064772, -1.4704362203747032, 1.6227305043564266, 1.7378633182518213, -1.5020313445848870, 1.6265605897350857, 1.0991458082965131, 0.8896215706216873, -1.2338298386544382], + [0.6988558419560558, 1.2207919680527175, -1.0677857483017339, 1.2344931756064772, -1.4704362203747032, 1.6227305043564266, 1.7378633182518213, -1.5020313445848870, 1.6265605897350857, 1.0991458082965131, 0.8896215706216873, -1.2338298386544382], + [0.6988558419560558, 1.2207919680527175, -1.0677857483017339, 1.2344931756064772, -1.4704362203747032, 1.6227305043564266, 1.7378633182518213, -1.5020313445848870, 1.6265605897350857, 1.0991458082965131, 0.8896215706216873, -1.2338298386544382], + [0.6988558419560558, 1.2207919680527175, -1.1179600287721507, 1.3688232273590863, -1.3946416162799393, 1.5912384703033438, 1.9788984525447231, -1.4373433991422067, 1.5938875765113523, 1.2598396399188103, 1.3415884989646221, -1.4100046701746103], + [0.6988558419560558, 1.2207919680527175, -1.1179600287721507, 1.3688232273590863, -1.3946416162799393, 1.5912384703033438, 1.9788984525447231, -1.4373433991422067, 1.5938875765113523, 1.2598396399188103, 1.3415884989646221, -1.4100046701746103], + [0.6988558419560558, 1.2207919680527175, -1.1430410724969740, 1.6374833308643044, -1.3119565936311059, 1.5492454063972334, 2.3404511539840755, -1.3597178646109906, 1.5508997170009007, 1.4205334715411075, 1.5675719631360894, -1.5861795016947826], + [0.6988558419560558, 1.2207919680527175, -1.1430410724969740, 1.6374833308643044, -1.3119565936311059, 1.5492454063972334, 2.3404511539840755, -1.3597178646109906, 1.5508997170009007, 1.4205334715411075, 1.5675719631360894, -1.5861795016947826], + [0.6988558419560558, 1.2207919680527175, -1.2935517208874541, 1.8389784084932181, -1.1259152926712306, 1.4390228619996746, 2.4609687211305267, -1.1721228228272180, 1.4442876188519638, 1.7419211347857020, 1.7935554273075567, -1.9825889293807113], + [0.6988558419560558, 1.2207919680527175, -1.3938880888075171, 1.9061434343695225, -1.0225590143601886, 1.3742894726748762, 2.5814862882769773, -1.0815596992074659, 1.3823851680224595, 1.9026149664079992, 1.9065471593932903, -2.1587637609008836], + [0.6988558419560558, 1.2207919680527175, -1.3938880888075171, 1.9061434343695225, -1.0225590143601886, 1.3742894726748762, 2.5814862882769773, -1.0815596992074659, 1.3823851680224595, 1.9026149664079992, 1.9065471593932903, -2.1587637609008836], + [0.4804633913447883, 1.2207919680527175, -1.4942244567275804, 2.0404734861221319, -0.9123123174950774, 1.3025570976284697, 2.7020038554234280, -0.9715901919549096, 1.3084435756392818, 2.2240026296525937, 2.0195388914790242, -2.4230153036707809], + [0.4804633913447883, 1.2207919680527175, -1.4942244567275804, 2.0404734861221319, -0.9123123174950774, 1.3025570976284697, 2.7020038554234280, -0.9715901919549096, 1.3084435756392818, 2.2240026296525937, 2.0195388914790242, -2.4230153036707809], + [0.2620709407335209, 1.2207919680527175, -1.5694797809228205, 2.1076385119984362, -0.7813943649677577, 1.2150748786495986, 2.8225214225698791, -0.8357455065252812, 1.2224678566183786, 2.5453902928971881, 2.3585140877362250, -2.5551517795660903], + [0.2620709407335209, 1.2207919680527175, -1.5694797809228205, 2.1076385119984362, -0.7813943649677577, 1.2150748786495986, 2.8225214225698791, -0.8357455065252812, 1.2224678566183786, 2.5453902928971881, 2.3585140877362250, -2.5551517795660903], + [0.2620709407335209, 1.2207919680527175, -1.6196540613932373, 2.1748035378747406, -0.6849285052107853, 1.1450926752453636, 2.9430389897163298, -0.7387135883612609, 1.1571243376288860, 2.7060841245194851, 2.5844975519076923, -2.6872882554614002]], + dtype=torch.float64) + + # Test everything - Make sure the correct entries match + def reorder_and_assert_match(x, des): + # Extract the q values and transpose so rows are history + # and columns are nodes + x_q_trans = torch.transpose(x[:,0:150], 0, 1) + + # Sort the des so that it matches the URDF joint order + idx_sorted = [9, 10, 11, 3, 4, 5, 6, 7, 8, 0, 1, 2] + des_sorted = des[:, idx_sorted] + + # Make sure they match + np.testing.assert_array_almost_equal(x_q_trans, des_sorted, 13) + + reorder_and_assert_match(train_dataset.__getitem__(125358)['joint'].x, des_train) + reorder_and_assert_match(val_dataset.__getitem__(6636)['joint'].x, des_val) + reorder_and_assert_match(test_dataset.__getitem__(304666)['joint'].x, des_values_air_jumping_gait_side) + reorder_and_assert_match(test_dataset.__getitem__(304667)['joint'].x, des_values_forest_side) + np.testing.assert_equal(test_dataset.__len__(), 376662) def main(): """ @@ -14,7 +648,7 @@ def main(): # ================================= CHANGE THESE =================================== model_type = 'heterogeneous_gnn' - num_layers = 4 + num_layers = 8 hidden_size = 128 # ================================================================================== @@ -26,56 +660,60 @@ def main(): path_to_urdf = Path('urdf_files', 'MiniCheetah', 'miniCheetah.urdf').absolute() air_walking_gait = linData.LinTzuYaunDataset_air_walking_gait( Path(Path('.').parent, 'datasets', 'LinTzuYaun-AWG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_difficult_slippery = linData.LinTzuYaunDataset_concrete_difficult_slippery( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CDS').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_left_circle = linData.LinTzuYaunDataset_concrete_left_circle( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CLC').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + grass = linData.LinTzuYaunDataset_grass( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-G').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) middle_pebble = linData.LinTzuYaunDataset_middle_pebble( Path(Path('.').parent, 'datasets', 'LinTzuYaun-MP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - rock_road = linData.LinTzuYaunDataset_rock_road( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-RR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + concrete_left_circle = linData.LinTzuYaunDataset_concrete_left_circle( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-CLC').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + concrete_difficult_slippery = linData.LinTzuYaunDataset_concrete_difficult_slippery( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-CDS').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) asphalt_road = linData.LinTzuYaunDataset_asphalt_road( Path(Path('.').parent, 'datasets', 'LinTzuYaun-AR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - concrete_galloping = linData.LinTzuYaunDataset_concrete_galloping( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-CG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - grass = linData.LinTzuYaunDataset_grass( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-G').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) old_asphalt_road = linData.LinTzuYaunDataset_old_asphalt_road( Path(Path('.').parent, 'datasets', 'LinTzuYaun-OAR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + concrete_galloping = linData.LinTzuYaunDataset_concrete_galloping( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-CG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + rock_road = linData.LinTzuYaunDataset_rock_road( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-RR').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) sidewalk = linData.LinTzuYaunDataset_sidewalk( Path(Path('.').parent, 'datasets', 'LinTzuYaun-S').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - train_val_datasets = [air_walking_gait, concrete_difficult_slippery, concrete_left_circle, middle_pebble, rock_road, asphalt_road, concrete_galloping, grass, old_asphalt_road, sidewalk] + train_val_datasets = [air_walking_gait, grass, middle_pebble, concrete_left_circle, concrete_difficult_slippery, asphalt_road, old_asphalt_road, concrete_galloping, rock_road, sidewalk] train_subsets = [] val_subsets = [] for dataset in train_val_datasets: - split_index = int(dataset.len() * 0.85) + split_index = int(np.round(dataset.__len__() * 0.85)) # When value has .5, round to nearest-even train_subsets.append(torch.utils.data.Subset(dataset, np.arange(0, split_index))) val_subsets.append(torch.utils.data.Subset(dataset, np.arange(split_index, dataset.len()))) train_dataset = torch.utils.data.ConcatDataset(train_subsets) val_dataset = torch.utils.data.ConcatDataset(val_subsets) # Initialize the Testing datasets - air_jumping_gait = linData.LinTzuYaunDataset_air_jumping_gait( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-AJG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) concrete_pronking = linData.LinTzuYaunDataset_concrete_pronking( Path(Path('.').parent, 'datasets', 'LinTzuYaun-CP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) concrete_right_circle = linData.LinTzuYaunDataset_concrete_right_circle( Path(Path('.').parent, 'datasets', 'LinTzuYaun-CRC').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - forest = linData.LinTzuYaunDataset_forest( - Path(Path('.').parent, 'datasets', 'LinTzuYaun-F').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) small_pebble = linData.LinTzuYaunDataset_small_pebble( Path(Path('.').parent, 'datasets', 'LinTzuYaun-SP').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) - test_dataset = torch.utils.data.ConcatDataset([air_jumping_gait, concrete_pronking, concrete_right_circle, forest, small_pebble]) - + air_jumping_gait = linData.LinTzuYaunDataset_air_jumping_gait( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-AJG').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + forest = linData.LinTzuYaunDataset_forest( + Path(Path('.').parent, 'datasets', 'LinTzuYaun-F').absolute(), path_to_urdf, 'package://yobotics_description/', 'mini-cheetah-gazebo-urdf/yobo_model/yobotics_description', model_type, history_length, normalize=normalize) + test_dataset = torch.utils.data.ConcatDataset([concrete_pronking, concrete_right_circle, small_pebble, air_jumping_gait, forest]) + # Convert them to subsets train_dataset = torch.utils.data.Subset(train_dataset, np.arange(0, train_dataset.__len__())) val_dataset = torch.utils.data.Subset(val_dataset, np.arange(0, val_dataset.__len__())) test_dataset = torch.utils.data.Subset(test_dataset, np.arange(0, test_dataset.__len__())) + # Ensure we match MorphoSymm exactly in the way that they split the datasets + ensure_dataset_splits_match_morphoSymm(train_dataset, val_dataset, test_dataset) + # Train the model train_model(train_dataset, val_dataset, test_dataset, normalize, num_layers=num_layers, hidden_size=hidden_size, - logger_project_name="grfgnn-class-abalation", batch_size=30, regression=False, lr=0.0001, epochs=30) - + logger_project_name="mi_hgnn_class_abalation", batch_size=30, regression=False, lr=0.0001, epochs=30, seed=0, + devices=1) + if __name__ == "__main__": main() \ No newline at end of file diff --git a/research/train_regression.py b/research/train_regression.py index 39556c8..75009b6 100644 --- a/research/train_regression.py +++ b/research/train_regression.py @@ -1,7 +1,7 @@ from pathlib import Path -from grfgnn.lightning_py.gnnLightning import train_model +from mi_hgnn.lightning_py.gnnLightning import train_model import torch -from grfgnn import QuadSDKDataset_A1Speed0_5, QuadSDKDataset_A1Speed1_0, QuadSDKDataset_A1Speed1_5FlippedOver +from mi_hgnn import QuadSDKDataset_A1Speed0_5, QuadSDKDataset_A1Speed1_0, QuadSDKDataset_A1Speed1_5FlippedOver from torch.utils.data import Subset def main(): diff --git a/src/grfgnn/__init__.py b/src/mi_hgnn/__init__.py similarity index 100% rename from src/grfgnn/__init__.py rename to src/mi_hgnn/__init__.py diff --git a/src/grfgnn/datasets_py/LinTzuYaunDataset.py b/src/mi_hgnn/datasets_py/LinTzuYaunDataset.py similarity index 99% rename from src/grfgnn/datasets_py/LinTzuYaunDataset.py rename to src/mi_hgnn/datasets_py/LinTzuYaunDataset.py index d0ba0dd..b7dc811 100644 --- a/src/grfgnn/datasets_py/LinTzuYaunDataset.py +++ b/src/mi_hgnn/datasets_py/LinTzuYaunDataset.py @@ -39,23 +39,23 @@ def get_urdf_name_to_dataset_array_index(self) -> dict: return { 'floating_base': 0, - 'FR_hip_joint': 0, - 'FR_thigh_joint': 1, - 'FR_calf_joint': 2, + 'RL_hip_joint': 9, + 'RL_thigh_joint': 10, + 'RL_calf_joint': 11, 'FL_hip_joint': 3, 'FL_thigh_joint': 4, 'FL_calf_joint': 5, 'RR_hip_joint': 6, 'RR_thigh_joint': 7, 'RR_calf_joint': 8, - 'RL_hip_joint': 9, - 'RL_thigh_joint': 10, - 'RL_calf_joint': 11, + 'FR_hip_joint': 0, + 'FR_thigh_joint': 1, + 'FR_calf_joint': 2, - 'FR_foot_fixed': 0, + 'RL_foot_fixed': 3, 'FL_foot_fixed': 1, 'RR_foot_fixed': 2, - 'RL_foot_fixed': 3} + 'FR_foot_fixed': 0} # ===================== DATASET PROPERTIES ======================= def get_expected_urdf_name(self): diff --git a/src/grfgnn/datasets_py/flexibleDataset.py b/src/mi_hgnn/datasets_py/flexibleDataset.py similarity index 98% rename from src/grfgnn/datasets_py/flexibleDataset.py rename to src/mi_hgnn/datasets_py/flexibleDataset.py index 4ce2455..0084776 100644 --- a/src/grfgnn/datasets_py/flexibleDataset.py +++ b/src/mi_hgnn/datasets_py/flexibleDataset.py @@ -296,6 +296,8 @@ def load_data_sorted(self, seq_num: int): Next, labels are checked to make sure they aren't None. Finally, normalize the data if self.normalize was set as True. + We calculate the standard deviation for this normalization + using Bessel's correction (n-1 used instead of n). Parameters: seq_num (int): The sequence number of the txt file @@ -344,7 +346,8 @@ def load_data_sorted(self, seq_num: int): to_normalize_array = [lin_acc, ang_vel, sorted_list[0], sorted_list[1], sorted_list[2], sorted_foot_list[0], sorted_foot_list[1], r_p, r_o] for i, array in enumerate(to_normalize_array): if (array is not None) and (array.shape[0] > 1): - norm_arrs[i] = np.nan_to_num((array-np.mean(array,axis=0))/np.std(array, axis=0), copy=False, nan=0.0) + array_tensor = torch.from_numpy(array) + norm_arrs[i] = np.nan_to_num((array_tensor-torch.mean(array_tensor,axis=0))/torch.std(array_tensor, axis=0, correction=1).numpy(), copy=False, nan=0.0) return norm_arrs[0], norm_arrs[1], norm_arrs[2], norm_arrs[3], norm_arrs[4], norm_arrs[5], norm_arrs[6], labels_sorted, norm_arrs[7], norm_arrs[8] else: diff --git a/src/grfgnn/datasets_py/quadSDKDataset.py b/src/mi_hgnn/datasets_py/quadSDKDataset.py similarity index 100% rename from src/grfgnn/datasets_py/quadSDKDataset.py rename to src/mi_hgnn/datasets_py/quadSDKDataset.py diff --git a/src/grfgnn/graphParser.py b/src/mi_hgnn/graphParser.py similarity index 100% rename from src/grfgnn/graphParser.py rename to src/mi_hgnn/graphParser.py diff --git a/src/grfgnn/lightning_py/customMetrics.py b/src/mi_hgnn/lightning_py/customMetrics.py similarity index 100% rename from src/grfgnn/lightning_py/customMetrics.py rename to src/mi_hgnn/lightning_py/customMetrics.py diff --git a/src/grfgnn/lightning_py/gnnLightning.py b/src/mi_hgnn/lightning_py/gnnLightning.py similarity index 89% rename from src/grfgnn/lightning_py/gnnLightning.py rename to src/mi_hgnn/lightning_py/gnnLightning.py index 038a0c3..7fd592f 100644 --- a/src/grfgnn/lightning_py/gnnLightning.py +++ b/src/mi_hgnn/lightning_py/gnnLightning.py @@ -1,6 +1,7 @@ import torch from torch import optim, nn import lightning as L +from lightning.pytorch import seed_everything from lightning.pytorch.loggers import WandbLogger from torch_geometric.loader import DataLoader from lightning.pytorch.callbacks import ModelCheckpoint @@ -67,7 +68,7 @@ def log_losses(self, step_name: str, on_step: bool): # Log the losses if self.regression: - self.log(step_name + "_MSE_loss", + self.log(step_name + "_MSE_loss", self.mse_loss, on_step=on_step, on_epoch=on_epoch) @@ -80,35 +81,35 @@ def log_losses(self, step_name: str, on_step: bool): on_step=on_step, on_epoch=on_epoch) else: - self.log(step_name + "_CE_loss", + self.log(step_name + "_CE_loss", self.ce_loss, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_Accuracy", + self.log(step_name + "_Accuracy", self.acc, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_F1_Score_Leg_Avg", + self.log(step_name + "_F1_Score_Leg_Avg", (self.f1_leg0 + self.f1_leg1 + self.f1_leg2 + self.f1_leg3) / 4.0, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_F1_Score_Leg_0", + self.log(step_name + "_F1_Score_Leg_0", self.f1_leg0, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_F1_Score_Leg_1", + self.log(step_name + "_F1_Score_Leg_1", self.f1_leg1, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_F1_Score_Leg_2", + self.log(step_name + "_F1_Score_Leg_2", self.f1_leg2, on_step=on_step, on_epoch=on_epoch) - self.log(step_name + "_F1_Score_Leg_3", + self.log(step_name + "_F1_Score_Leg_3", self.f1_leg3, on_step=on_step, on_epoch=on_epoch) - + # ======================= Loss Calculation ======================= def calculate_losses_step(self, y: torch.Tensor, y_pred: torch.Tensor): if self.regression: @@ -137,7 +138,7 @@ def calculate_losses_step(self, y: torch.Tensor, y_pred: torch.Tensor): self.f1_leg1 = self.metric_f1_leg1(y_pred_2[:,1], y[:,1]) self.f1_leg2 = self.metric_f1_leg2(y_pred_2[:,2], y[:,2]) self.f1_leg3 = self.metric_f1_leg3(y_pred_2[:,3], y[:,3]) - + def calculate_losses_epoch(self) -> None: if self.regression: self.mse_loss = self.metric_mse.compute() @@ -150,7 +151,7 @@ def calculate_losses_epoch(self) -> None: self.f1_leg1 = self.metric_f1_leg1.compute() self.f1_leg2 = self.metric_f1_leg2.compute() self.f1_leg3 = self.metric_f1_leg3.compute() - + def reset_all_metrics(self) -> None: self.metric_mse.reset() self.metric_rmse.reset() @@ -171,11 +172,11 @@ def training_step(self, batch, batch_idx): return self.mse_loss else: return self.ce_loss - + # ======================= Validation ======================= def on_validation_epoch_start(self): self.reset_all_metrics() - + def validation_step(self, batch, batch_idx): y, y_pred = self.step_helper_function(batch) self.calculate_losses_step(y, y_pred) @@ -183,7 +184,7 @@ def validation_step(self, batch, batch_idx): return self.mse_loss else: return self.ce_loss - + def on_validation_epoch_end(self): self.calculate_losses_epoch() self.log_losses("val", on_step=False) @@ -199,7 +200,7 @@ def test_step(self, batch, batch_idx): return self.mse_loss else: return self.ce_loss - + def on_test_epoch_end(self): self.calculate_losses_epoch() self.log_losses("test", on_step=False) @@ -250,7 +251,7 @@ def step_helper_function(self, batch): """ raise NotImplementedError - + def classification_calculate_useful_values(self, y_pred, batch_size): """ Helper method that calculates useful values for us: @@ -271,7 +272,7 @@ def classification_calculate_useful_values(self, y_pred, batch_size): y_pred_per_foot_prob_only_1 = torch.reshape(y_pred_per_foot_prob[:,1], (batch_size, 4)) return y_pred_per_foot, y_pred_per_foot_prob, y_pred_per_foot_prob_only_1 - + def classification_conversion_16_class(self, y_pred_per_foot_prob_only_1: torch.Tensor, y: torch.Tensor): """ Convert the y labels from individual foot contact classes into a single @@ -288,7 +289,7 @@ class out of 16 options. In other words, convert y from (batch_size, 4) to for each individual foot. y (torch.Tensor): A Tensor of shape (batch_size, 4). """ - + # Convert y labels from four sets of 2 classes to one set of 16 classes y_np = y.cpu().numpy() y_new = np.zeros((y.shape[0], 1)) @@ -319,8 +320,8 @@ class out of 16 options. In other words, convert y from (batch_size, 4) to class MLP_Lightning(Base_Lightning): - def __init__(self, in_channels: int, hidden_channels: int, - out_channels: int, num_layers: int, + def __init__(self, in_channels: int, hidden_channels: int, + out_channels: int, num_layers: int, batch_size: int, optimizer: str = "adam", lr: float = 0.003, regression: bool = True, activation_fn = nn.ReLU()): """ @@ -371,7 +372,7 @@ def step_helper_function(self, batch): class Heterogeneous_GNN_Lightning(Base_Lightning): - def __init__(self, hidden_channels: int, num_layers: int, data_metadata, + def __init__(self, hidden_channels: int, num_layers: int, data_metadata, dummy_batch, optimizer: str = "adam", lr: float = 0.003, regression: bool = True, activation_fn = nn.ReLU()): """ @@ -477,20 +478,24 @@ def evaluate_model(path_to_checkpoint: Path, predict_dataset: Subset, num_entrie return pred[0:num_entries_to_eval], labels[0:num_entries_to_eval] -def train_model(train_dataset: Subset, - val_dataset: Subset, - test_dataset: Subset, - normalize: bool, # Note, this is just so that we can log if the datasets were normalized. - testing_mode: bool = False, - disable_logger: bool = False, - logger_project_name: str = None, - batch_size: int = 100, - num_layers: int = 8, - optimizer: str = "adam", - lr: float = 0.003, - epochs: int = 100, - hidden_size: int = 10, - regression: bool = True): + +def train_model( + train_dataset: Subset, + val_dataset: Subset, + test_dataset: Subset, + normalize: bool, # Note, this is just so that we can log if the datasets were normalized. + testing_mode: bool = False, + disable_logger: bool = False, + logger_project_name: str = None, + batch_size: int = 100, + num_layers: int = 8, + optimizer: str = "adam", + lr: float = 0.003, + epochs: int = 100, + hidden_size: int = 10, + regression: bool = True, + seed: int = 0, + devices: int = 1): """ Train a learning model with the input datasets. If 'testing_mode' is enabled, limit the batches and epoch size @@ -505,8 +510,10 @@ def train_model(train_dataset: Subset, # is all the same type. train_data_format, val_data_format, test_data_format = None, None, None if isinstance(train_dataset.dataset, torch.utils.data.ConcatDataset): - train_data_format = train_dataset.dataset.datasets[0].dataset.get_data_format() - val_data_format = val_dataset.dataset.datasets[0].dataset.get_data_format() + train_data_format = train_dataset.dataset.datasets[ + 0].dataset.get_data_format() + val_data_format = val_dataset.dataset.datasets[ + 0].dataset.get_data_format() test_data_format = test_dataset.dataset.datasets[0].get_data_format() elif isinstance(train_dataset.dataset, torch.utils.data.Dataset): train_data_format = train_dataset.dataset.get_data_format() @@ -522,7 +529,8 @@ def train_model(train_dataset: Subset, data_metadata = None if model_type == 'heterogeneous_gnn': if isinstance(train_dataset.dataset, torch.utils.data.ConcatDataset): - data_metadata = train_dataset.dataset.datasets[0].dataset.get_data_metadata() + data_metadata = train_dataset.dataset.datasets[ + 0].dataset.get_data_metadata() elif isinstance(train_dataset.dataset, torch.utils.data.Dataset): data_metadata = train_dataset.dataset.get_data_metadata() @@ -530,14 +538,12 @@ def train_model(train_dataset: Subset, limit_train_batches = None limit_val_batches = None limit_test_batches = None - deterministic = False num_workers = 30 persistent_workers = True if testing_mode: limit_train_batches = 10 limit_val_batches = 5 limit_test_batches = 5 - deterministic = True num_workers = 1 persistent_workers = False @@ -559,6 +565,9 @@ def train_model(train_dataset: Subset, batch_size=batch_size, shuffle=False, num_workers=num_workers) + + # Set a random seed (need to be before we get dummy_batch) + seed_everything(seed, workers=True) # Get a dummy_batch dummy_batch = None @@ -570,7 +579,7 @@ def train_model(train_dataset: Subset, lightning_model = None model_parameters = None if model_type == 'mlp': - + # Determine the number of output channels out_channels = None if regression: @@ -579,14 +588,15 @@ def train_model(train_dataset: Subset, out_channels = 8 # Create the model - lightning_model = MLP_Lightning(in_channels=train_dataset[0][0].shape[0], - hidden_channels=hidden_size, - out_channels=out_channels, - num_layers=num_layers, - batch_size=batch_size, - optimizer=optimizer, - lr=lr, - regression=regression) + lightning_model = MLP_Lightning( + in_channels=train_dataset[0][0].shape[0], + hidden_channels=hidden_size, + out_channels=out_channels, + num_layers=num_layers, + batch_size=batch_size, + optimizer=optimizer, + lr=lr, + regression=regression) model_parameters = count_parameters(lightning_model.mlp_model) elif model_type == 'heterogeneous_gnn': @@ -596,7 +606,7 @@ def train_model(train_dataset: Subset, data_metadata=data_metadata, dummy_batch=dummy_batch, optimizer=optimizer, - lr=lr, + lr=lr, regression=regression) model_parameters = count_parameters(lightning_model.model) else: @@ -607,15 +617,18 @@ def train_model(train_dataset: Subset, path_to_save = None if not disable_logger: if logger_project_name is None: - raise ValueError("Need to define \"logger_project_name\" if logger is enabled.") + raise ValueError( + "Need to define \"logger_project_name\" if logger is enabled.") wandb_logger = WandbLogger(project=logger_project_name) wandb_logger.watch(lightning_model, log="all") wandb_logger.experiment.config["batch_size"] = batch_size wandb_logger.experiment.config["normalize"] = normalize wandb_logger.experiment.config["num_parameters"] = model_parameters + wandb_logger.experiment.config["seed"] = seed path_to_save = str(Path("models", wandb_logger.experiment.name)) else: - path_to_save = str(Path("models", model_type + "_" + names.get_full_name())) + path_to_save = str( + Path("models", model_type + "_" + names.get_full_name())) # Set up precise checkpointing monitor = None @@ -623,29 +636,27 @@ def train_model(train_dataset: Subset, monitor = "val_MSE_loss" else: monitor = "val_CE_loss" - checkpoint_callback = ModelCheckpoint( - dirpath=path_to_save, - filename='{epoch}-{' + monitor + ':.5f}', - save_top_k=5, - mode='min', - monitor=monitor) - last_model_callback = ModelCheckpoint( - dirpath=path_to_save, - filename='{epoch}-{' + monitor + ':.5f}', - save_top_k=1, - mode='max', - monitor="epoch") + checkpoint_callback = ModelCheckpoint(dirpath=path_to_save, + filename='{epoch}-{' + monitor + + ':.5f}', + save_top_k=5, + mode='min', + monitor=monitor) + last_model_callback = ModelCheckpoint(dirpath=path_to_save, + filename='{epoch}-{' + monitor + + ':.5f}', + save_top_k=1, + mode='max', + monitor="epoch") # Lower precision of operations for faster training torch.set_float32_matmul_precision("medium") # Train the model and test - # seed_everything(rand_seed, workers=True) trainer = L.Trainer( default_root_dir=path_to_save, - deterministic=deterministic, # Reproducability - benchmark=True, - devices='auto', + deterministic=True, # Reproducability + devices=devices, accelerator="auto", # profiler="simple", max_epochs=epochs, diff --git a/src/grfgnn/lightning_py/hgnn.py b/src/mi_hgnn/lightning_py/hgnn.py similarity index 99% rename from src/grfgnn/lightning_py/hgnn.py rename to src/mi_hgnn/lightning_py/hgnn.py index cd13396..664638a 100644 --- a/src/grfgnn/lightning_py/hgnn.py +++ b/src/mi_hgnn/lightning_py/hgnn.py @@ -1,7 +1,6 @@ import torch from torch import nn from torch_geometric.nn import Linear, HeteroConv, HeteroDictLinear, GraphConv -import numpy as np class GRF_HGNN(torch.nn.Module): """ diff --git a/src/grfgnn/visualization.py b/src/mi_hgnn/visualization.py similarity index 100% rename from src/grfgnn/visualization.py rename to src/mi_hgnn/visualization.py diff --git a/tests/testDatasets.py b/tests/testDatasets.py index 7c925c9..4ccbf0b 100644 --- a/tests/testDatasets.py +++ b/tests/testDatasets.py @@ -1,7 +1,7 @@ import unittest from pathlib import Path -from grfgnn import FlexibleDataset, QuadSDKDataset_A1Speed1_0, QuadSDKDataset, QuadSDKDataset_A1Speed0_5 -from grfgnn.datasets_py.LinTzuYaunDataset import LinTzuYaunDataset, LinTzuYaunDataset_concrete_right_circle +from mi_hgnn import FlexibleDataset, QuadSDKDataset_A1Speed1_0, QuadSDKDataset, QuadSDKDataset_A1Speed0_5 +from mi_hgnn.datasets_py.LinTzuYaunDataset import LinTzuYaunDataset, LinTzuYaunDataset_concrete_right_circle from torch_geometric.data import Data, HeteroData import numpy as np import torch @@ -445,136 +445,136 @@ def test_normalize_parameter(self): # ====================== Test QuadSDK dataset ====================== la, av, p, v, t, fp, fv, gt, r_p, r_o = self.quad_dataset_hgnn_6_norm.load_data_sorted(10000) - des_la = [[-0.5874105616686414, -1.8220316435037871, -1.7415432647742404], - [0.0464140104789931, -0.2473371978906197, -0.3608975879330433], - [0.0464140104789931, -0.2473371978906197, -0.3608975879330433], - [-0.0298239446162162, 0.0672719762513247, 0.4145668989644065], - [-1.3979548466015099, 1.2327609818176768, 1.4912555547500135], - [1.9223613319283970, 1.0166730812160218, 0.5575159869259070]] - des_av = [[0.4296442077515022, -2.1813002991742905, -1.7572698436375411], - [-0.9887532470515812, 0.2103304104471665, -0.3010879838906267], - [-0.9887532470515812, 0.2103304104471665, -0.3010879838906267], - [-0.8306289870465896, 0.8607070485078034, 0.0425341307001678], - [0.7759751413225284, 0.3879362653633671, 1.0087131808464069], - [1.6025161320757222, 0.5119961644087900, 1.3081984998721530]] - des_p = [[1.4691737547623922, -1.4749557080186593, -1.4601490461454085,1.4516093091930675, -1.4561700914674851, 1.4857734803828633, -1.4678477983513907, 1.4670557418591046, 1.4628143320732248 , -1.4742892095976563, -1.4355859582502075, -1.4599655229104807], - [0.8752550065973494, -0.8768906459067572, -0.8801082266402102,0.8781269562513216, -0.8790215277506471, 0.8788268724841540, -0.8802532935734834, 0.8763166043351074, 0.8503212722357105 , -0.8780437053770196, -0.8845900633286349, -0.8796245236239294], - [0.2872761516411941, -0.2837454749806904, -0.2956704920644266,0.3016069430968103, -0.2979641478617038, 0.2762063873499779, -0.2903488590363837, 0.2903511396554483, 0.2909687019925287 , -0.2853054623643357, -0.3146964891889050, -0.2955871551441219], - [-0.2940181040778332, 0.3028026065411095, 0.2912507371393076,-0.2795648867927041, 0.2853603779529442, -0.3170920146836194, 0.2996215202933490, -0.2937055932466995, -0.2564504418110940 , 0.3040663472289860, 0.2714335108636111, 0.2903466755920730], - [-0.8738068723085045, 0.8814255221455758, 0.8787647935210735,-0.8699728726562852, 0.8733939132661065, -0.8940158833695038, 0.8852995812414083, -0.8772564650223248, -0.8340041729421219 , 0.8849387002871872, 0.8727199918023725, 0.8774802591820905], - [-1.4638799366146045, 1.4513637002194515, 1.4659122341896642,-1.4818054490922101, 1.4744014758605650, -1.4296988421638721, 1.4535288494265155, -1.4627614275806360, -1.5136496915519828 , 1.4486333298228471, 1.4907190081017863, 1.4673502669043508]] - des_v = [[-1.6907582916534534, 1.3142155325429250, -1.8223879926204389,0.7400296844223826, -0.9959130795984620, -0.8715558132444908, -0.0133888324122987, -1.8765446739277087, -1.4798463281105914,0.8936484209897618, -1.4958874653393361, -1.5360207861860993], - [-0.3700880580564146, 0.8573909121030795, -0.8481559362963309,0.8411389137875830, -0.9445858223055260, -0.9276007343777303, 0.6606488174658279, -0.7308234777973001, -0.1696005931222993 ,0.8292763669108429, -0.8965468037856165, -0.9816984180693528], - [0.2445062414529919, 0.4480146751851610, 0.3138928677081939,0.5892862815911963, -0.4282679170708277, -0.5759963903772310, 0.7486915524336630, 0.3359455079592579, 0.8317778996904992 ,0.5027858414795752, -0.2182767572588236, 0.0464020251585243], - [1.1660792426064868, -0.1582202929211012, 0.7955922522905156,0.2808194524348734, -0.0653863170428016, -0.0831373990309138, 0.6885461624258753, 0.7460383092597320, 1.1380405633119672 ,0.2665513000509425, 0.3178200938496814, 0.3608039725145944], - [1.1538123771330651, -0.8547213367527147, 0.8497588971812162,-0.4149736781622943, 0.5222113875084845, 0.5151185644702069, 0.0431459377127387, 0.9989609801277612, 0.7733507103105561 , -0.5098683598833530, 0.8454506568434648, 0.6568581166826144], - [-0.5035515114826757, -1.6066794901573598, 0.7112999117367694,-2.0363006540737079, 1.9119417485090799, 1.9431717725601507, -2.1276436376258125, 0.5264233543782688, -1.0937222520801908 , -1.9823935695477692, 1.4474402756906271, 1.4536550898997367]] - des_t = [[-0.4875704258981984, 0.9138951607742647, 0.9556807283698490,0.6650296668666529, 1.3549330139371512, -1.3016680376372194, 1.2648619105318490, -1.5920338472135789, 1.1224558005351830 , -0.6628628823968141, 0.9850119712952055, 0.4761803514019395], - [-0.4079414082154866, 1.3735873468717481, 1.4319867786123528,0.4744912222247263, 1.0946338296014217, -0.7641950182576893, 0.8736948463378806, -0.8848246685376849, 0.9847509744726390 , -0.8051851969730056, 1.5689107379807403, 1.6600210898540557], - [1.5415620602385749, 0.3030608440411146, 0.2438373926168658,0.4253489970568188, -0.2457219322383162, -0.2996443893050191, 0.3450351302611718, -0.1022414347070203, 0.3876751674803817 ,0.7250634288623693, -0.2896026495074269, -0.7370213196512883], - [-0.9337754544020441, -0.5393612424833809,-0.4978470608330381,0.7506895664437274, -0.0550938438409042, -0.1406238875130855, 0.0288337866031798, 0.3217969206302563, 0.0758423634466288 ,-0.4605852325506335, -0.5240783856019928, -0.5650979153048762], - [-0.9299427217925544, -0.3964555413838193,-0.5911546848381205,-0.1812477917156566, -0.5294199702800675, 0.7673922536193011, -0.8315013751750765, 1.0266748461606023, -0.8916600663688480 ,-0.7116349520496456, -0.2804081436706222, 0.5335375656731959], - [1.2176679500696925, -1.6547265678199365, -1.5425031539279090,-2.1343116608762647, -1.6193310971792851, 1.7387390790937032, -1.6809242985590049, 1.2306281836674082, -1.6790642395659250 ,1.9152048351077364, -1.4598335304959067, -1.3676197719730276]] + des_la = [[-0.5362300252378239, -1.6632797193920590, -1.5898042183134058], + [0.0423700008727095, -0.2257869376580193, -0.3294529164335535], + [0.0423700008727095, -0.2257869376580193, -0.3294529164335535], + [-0.0272254120334773, 0.0614106314680039, 0.3784460702629509], + [-1.2761523397622021, 1.1253516629229292, 1.3613238439024378], + [1.7548677752880986, 0.9280913003171616, 0.5089401370151242]] + des_av = [[0.3922097071448895, -1.9912456309175439, -1.6041605549730955], + [-0.9026040953610488, 0.1920045172187222, -0.2748544676177472], + [-0.9026040953610488, 0.1920045172187222, -0.2748544676177472], + [-0.7582570552051391, 0.7857144431190286, 0.0388281714139248], + [0.7083651482760132, 0.3541357390230436, 0.9208249386706086], + [1.4628903905063348, 0.4673864143380300, 1.1942163801239956]] + des_p = [[1.3411660106298753, -1.3464441876713720, -1.3329276164891533, 1.3251319388825571, -1.3292953444351709, 1.3563194175810893, -1.3399555835689183, 1.3392325382228460, 1.3353606785305967, -1.3458357606384972, -1.3105046876188471, -1.3327600834631594], + [0.7989948511378354, -0.8004879787140102, -0.8034252146278538, 0.8016165704870016, -0.8024331988028045, 0.8022555036688123, -0.8035576420140235, 0.7999639528511129, 0.7762335698833166, -0.8015405731840229, -0.8075165530500278, -0.8029836562059367], + [0.2622460474785945, -0.2590229953949031, -0.2699089968205644, 0.2753282103905000, -0.2720028085194331, 0.2521407814643208, -0.2650510327335250, 0.2650531146443696, 0.2656168693488439, -0.2604470625273131, -0.2872772764940732, -0.2698329209686913], + [-0.2684005798638849, 0.2764196967898784, 0.2658743310353441, -0.2552066579712369, 0.2604971933717123, -0.2894640820782961, 0.2735157756310986, -0.2681152978110906, -0.2341061531035037, 0.2775733289258568, 0.2477837612713722, 0.2650490395306883], + [-0.7976728914440070, 0.8046277353998353, 0.8021988335881026, -0.7941729446190279, 0.7972959131392616, -0.8161211101489749, 0.8081642513263279, -0.8008219243499484, -0.7613381642897331, 0.8078348135943265, 0.7966807098264718, 0.8010262195325177], + [-1.3363334379384193, 1.3249077295905987, 1.3381886633141249, -1.3526971171697941, 1.3459382452462334, -1.3051305104869513, 1.3268842313590543, -1.3353123835572895, -1.3817668003729298, 1.3224152538296576, 1.3608340460651245, 1.3395014015745652]] + des_v = [[-1.5434440927124917, 1.1997091543290412, -1.6636050201412875, 0.6755515856359472, -0.9091400983508593, -0.7956179650646124, -0.0122222758847872, -1.7130430801273044, -1.3509086925789371, 0.8157856644249428, -1.3655521804259694, -1.4021887223182439], + [-0.3378426294346330, 0.7826872385979762, -0.7742568976523585, 0.7678512617947539, -0.8622849372938384, -0.8467797442950677, 0.6030870998585781, -0.6671475072399285, -0.1548234510322314, 0.7570222876049989, -0.8184315138209003, -0.8961639470728695], + [0.2232026398243473, 0.4089795728204378, 0.2865436738062712, 0.5379423154263993, -0.3909533313924068, -0.5258103600852684, 0.6834587531357984, 0.3066748880030281, 0.7593058641579262, 0.4589785782876333, -0.1992585062162287, 0.0423590598220767], + [1.0644798416901866, -0.1444347058132701, 0.7262730385930941, 0.2563519144747153, -0.0596892679942115, -0.0758937147025660, 0.6285537750737797, 0.6810366845742841, 1.0388841464697509, 0.2433269329503818, 0.2901287243831323, 0.3293674576395288], + [1.0532817768073961, -0.7802502608673852, 0.7757201940447753, -0.3788174071672958, 0.4767115945407807, 0.4702367625833525, 0.0393866722499664, 0.9119224381390747, 0.7059693814995577, -0.4654440034437909, 0.7717873266845418, 0.5996266793123807], + [-0.4596775361748052, -1.4666909990668091, 0.6493250113494371, -1.8588796701644894, 1.7453560404904871, 1.7738650215641547, -1.9422640244333413, 0.4805565766508563, -0.9984272485161201, -1.8096694598241658, 1.3213261493954216, 1.3269994726171432]] + des_t = [[-0.4450888677280738, 0.8342683245847919, 0.8724131545018894, 0.6070862499216861, 1.2368789594030656, -1.1882549109956477, 1.1546556675456252, -1.4533214173843505, 1.0246572695927316, -0.6051082553693820, 0.8991887934850253, 0.4346911998392983], + [-0.3723978523667422, 1.2539079576422159, 1.3072191011585699, 0.4331492429177987, 0.9992594011349417, -0.6976114163880145, 0.7975706261921119, -0.8077307173252027, 0.8989505370730972, -0.7350301589189259, 1.4322130031735478, 1.5153849947456275], + [1.4072471903113419, 0.2766554342964559, 0.2225920671658350, 0.3882887341670302, -0.2243124086011362, -0.2735366520870312, 0.3149725399596286, -0.0933332335012110, 0.3538973903559970, 0.6618893260166033, -0.2643698397474668, -0.6728053368920602], + [-0.8524164667010604, -0.4923671985869356, -0.4544701090098361, 0.6852826820416711, -0.0502935684188838, -0.1283714588583099, 0.0263215255680864, 0.2937590539414849, 0.0692342887903731, -0.4204548692029078, -0.4784159228251703, -0.5158614590193742], + [-0.8489176765225551, -0.3619127384397345, -0.5396479264344930, -0.1654558400344384, -0.4832921001935127, 0.7005300796033610, -0.7590534329665927, 0.9372216207755134, -0.8139705532946192, -0.6496308599111635, -0.2559764426609154, 0.4870509333260056], + [1.1115736730070749, -1.5105517794968020, -1.4081062873819652, -1.9483510690137440, -1.4782402833244745, 1.5872443587256342, -1.5344669262988595, 1.1234046934937503, -1.5327689325175256, 1.7483348173857820, -1.3326395914250233, -1.2484603319994980]] des_fp = None des_fv = None - des_gt = [0, 66.058643452423740, 65.599211397640180, 0] - des_rp = [[1.4643146618282410, -1.4684417536230334, -1.4684190946446067], - [0.8733864801350466, -0.8771598969412419, -0.8766100273305281], - [0.2909392032948933, -0.2890730668259753, -0.2887370542507244], - [-0.2866695923627322, 0.2961402092879633, 0.2954867508841712], - [-0.8678846930403481, 0.8788922834522276, 0.8768698198246120], - [-1.4740860598551007, 1.4596422246500598, 1.4614096055185775]] - des_ro = [[-1.4115791281884251, -0.3799799758306283, 1.4615733584770301, -1.4591484827719403], - [-0.4424153868784342, 0.2403468535372326, 0.8788281781339352, -0.8793462237288245], - [0.5146745798986114, 0.7381396927128603, 0.2945979150793995, -0.2965451755451923], - [1.1907499628327165, 0.9777633576401984, -0.2910404879817826, 0.2891569945943370], - [1.1033382099604403, 0.4477177325746334, -0.8779556374818784, 0.8775587643459891], - [-0.9547682376249088, -2.0239876606339933, -1.4660033262267684, 1.4683241231062649]] - np.testing.assert_array_almost_equal(la, des_la, 15) - np.testing.assert_array_almost_equal(av, des_av, 15) - np.testing.assert_array_almost_equal(p, des_p, 15) - np.testing.assert_array_almost_equal(v, des_v, 15) - np.testing.assert_array_almost_equal(t, des_t, 15) + des_gt = [0, 66.058643452423740, 65.599211397640180, 0] # Not normalized + des_rp = [[1.3367302859481276, -1.3404977880696314, -1.3404771033469411], + [0.7972891276500045, -0.8007337701560415, -0.8002318101735841], + [0.2655899408453240, -0.2638863991129750, -0.2635796630011911], + [-0.2616923371464652, 0.2703377880188639, 0.2697412648386170], + [-0.7922667061527424, 0.8023152154400157, 0.8004689671890513], + [-1.3456503111442484, 1.3324649538797682, 1.3340783444954187]] + des_ro = [[-1.2885895503537950, -0.3468726736045049, 1.3342278298107564, -1.3320142312727166], + [-0.4038681453011558, 0.2194056555128877, 0.8022566955585412, -0.8027296043221029], + [0.4698314619749407, 0.6738262671479421, 0.2689298724716307, -0.2707074699423853], + [1.0870010249865283, 0.8925717448025465, -0.2656824006915559, 0.2639630143328630], + [1.0072053769211737, 0.4087085025436538, -0.8014601785627550, 0.8010978846144309], + [-0.8715801682276921, -1.8476394964022487, -1.3382718185866767, 1.3403904065904897]] + np.testing.assert_array_almost_equal(la, des_la, 13) + np.testing.assert_array_almost_equal(av, des_av, 13) + np.testing.assert_array_almost_equal(p, des_p, 13) + np.testing.assert_array_almost_equal(v, des_v, 13) + np.testing.assert_array_almost_equal(t, des_t, 13) np.testing.assert_array_equal(fp, des_fp) np.testing.assert_array_equal(fv, des_fv) - np.testing.assert_array_almost_equal(gt, des_gt, 15) - np.testing.assert_array_almost_equal(r_p, des_rp, 16) - np.testing.assert_array_almost_equal(r_o, des_ro, 16) + np.testing.assert_array_almost_equal(gt, des_gt, 13) + np.testing.assert_array_almost_equal(r_p, des_rp, 11) + np.testing.assert_array_almost_equal(r_o, des_ro, 12) # ===================== Test LinTzuYaun dataset ==================== la, av, p, v, t, fp, fv, gt, r_p, r_o = self.lin_dataset_hgnn_10_norm.load_data_sorted(30000) - des_la = [[1.5275252316519465, -1.5275252316519465, -1.5275252316519483], - [1.5275252316519465, -1.5275252316519465, -1.5275252316519483], - [1.5275252316519465, -1.5275252316519465, -1.5275252316519483], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754], - [-0.6546536707079771, 0.6546536707079770, 0.6546536707079754]] - des_av = [[-1.5275252316519461, 1.5275252316519470, -1.5275252316519514], - [-1.5275252316519461, 1.5275252316519470, -1.5275252316519514], - [-1.5275252316519461, 1.5275252316519470, -1.5275252316519514], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724], - [0.6546536707079770, -0.6546536707079772, 0.6546536707079724]] - des_p = [ [-1.7320508075688774, 1.4709062282223535, 1.5713931419369040 ,-0.6546536707079772, -1.5714285714285714, 1.5635412199875935, 1.6367836342540927, -1.5948400373283673, 1.5562623635687995, 0.0000000000000000, 1.6482209935357053, 1.9999999999995473, ], - [-1.7320508075688774, 1.4709062282223535, 1.5713931419369040 ,-0.6546536707079772, -1.5714285714285714, 1.5635412199875935, 1.6367836342540927, -1.5948400373283673, 1.5562623635687995, 0.0000000000000000, 1.6482209935357053, 1.9999999999995473, ], - [0.0000000000000000, 0.2190711403735420, 0.1428854858763529 ,-0.6546536707079772, -0.1428571428571428, 0.1491388009580618, 0.0884747910407618, -0.1238710708604557, 0.1548865190872633, 0.0000000000000000, 0.0784867139778907, -0.5000000000004527, ], - [0.0000000000000000, 0.2190711403735420, 0.1428854858763529 ,-0.6546536707079772, -0.1428571428571428, 0.1491388009580618, 0.0884747910407618, -0.1238710708604557, 0.1548865190872633, 0.0000000000000000, 0.0784867139778907, -0.5000000000004527, ], - [0.0000000000000000, 0.2190711403735420, 0.1428854858763529 ,-0.6546536707079772, -0.1428571428571428, 0.1491388009580618, 0.0884747910407618, -0.1238710708604557, 0.1548865190872633, 0.0000000000000000, 0.0784867139778907, -0.5000000000004527, ], - [0.0000000000000000, 0.2190711403735420, 0.1428854858763529 ,-0.6546536707079772, -0.1428571428571428, 0.1491388009580618, 0.0884747910407618, -0.1238710708604557, 0.1548865190872633, 0.0000000000000000, 0.0784867139778907, -0.5000000000004527, ], - [0.0000000000000000, 0.2190711403735420, 0.1428854858763529 ,-0.6546536707079772, -0.1428571428571428, 0.1491388009580618, 0.0884747910407618, -0.1238710708604557, 0.1548865190872633, 0.0000000000000000, 0.0784867139778907, -0.5000000000004527, ], - [1.1547005383792515, -1.3457227194374723, -1.2857379044186681 ,1.5275252316519468, 1.2857142857142858, -1.2909254815884832, -1.2386470745706648, 1.2696784763196711, -1.2956524408579719, 0.0000000000000000, -1.2296251856536213, -0.5000000000004527, ], - [1.1547005383792515, -1.3457227194374723, -1.2857379044186681 ,1.5275252316519468, 1.2857142857142858, -1.2909254815884832, -1.2386470745706648, 1.2696784763196711, -1.2956524408579719, 0.0000000000000000, -1.2296251856536213, -0.5000000000004527, ], - [1.1547005383792515, -1.3457227194374723, -1.2857379044186681 ,1.5275252316519468, 1.2857142857142858, -1.2909254815884832, -1.2386470745706648, 1.2696784763196711, -1.2956524408579719, 0.0000000000000000, -1.2296251856536213, -0.5000000000004527, ]] - des_v = [ [-1.7320508075688772, -1.4411533842457847, 1.6644793241918201 ,1.0000000000000000, -0.0769230769230726, 1.5118633795906529, 0.6546536707079786, -0.5203059023730081, 1.7820848532219813, 1.0000000000000000, 1.3256979607197410, 1.9163791387719977, ], - [-1.7320508075688772, -1.4411533842457847, 1.6644793241918201 ,1.0000000000000000, -0.0769230769230726, 1.5118633795906529, 0.6546536707079786, -0.5203059023730081, 1.7820848532219813, 1.0000000000000000, 1.3256979607197410, 1.9163791387719977, ], - [ 0.8660254037844386, 0.9607689228305222, -0.8962582055045945 , -1.0000000000000000, -0.8461538461538418, 0.1889781208276896, 0.6546536707079786, 0.9662823901213246, -0.0524149357107511,-1.0000000000000000, -0.9798637100971992, -0.7268942234330928, ], - [ 0.8660254037844386, 0.9607689228305222, -0.8962582055045945 , -1.0000000000000000, -0.8461538461538418, 0.1889781208276896, 0.6546536707079786, 0.9662823901213246, -0.0524149357107511,-1.0000000000000000, -0.9798637100971992, -0.7268942234330928, ], - [ 0.8660254037844386, 0.9607689228305222, -0.8962582055045945 , -1.0000000000000000, -0.8461538461538418, 0.1889781208276896, 0.6546536707079786, 0.9662823901213246, -0.0524149357107511,-1.0000000000000000, -0.9798637100971992, -0.7268942234330928, ], - [ 0.8660254037844386, 0.9607689228305222, -0.8962582055045945 , -1.0000000000000000, -0.8461538461538418, 0.1889781208276896, 0.6546536707079786, 0.9662823901213246, -0.0524149357107511,-1.0000000000000000, -0.9798637100971992, -0.7268942234330928, ], - [ 0.8660254037844386, 0.9607689228305222, -0.8962582055045945 , -1.0000000000000000, -0.8461538461538418, 0.1889781208276896, 0.6546536707079786, 0.9662823901213246, -0.0524149357107511,-1.0000000000000000, -0.9798637100971992, -0.7268942234330928, ], - [ -0.2886751345948129, -0.6405126152203491, 0.3841107930464429 ,1.0000000000000000, 1.4615384615384659, -1.3228724544399124, -1.5275252316519450, -1.2636000486201744, -1.1006983426300729,1.0000000000000000, 0.7493075430155060, -0.0660957201261770, ], - [ -0.2886751345948129, -0.6405126152203491, 0.3841107930464429 ,1.0000000000000000, 1.4615384615384659, -1.3228724544399124, -1.5275252316519450, -1.2636000486201744, -1.1006983426300729,1.0000000000000000, 0.7493075430155060, -0.0660957201261770, ], - [ -0.2886751345948129, -0.6405126152203491, 0.3841107930464429 ,1.0000000000000000, 1.4615384615384659, -1.3228724544399124, -1.5275252316519450, -1.2636000486201744, -1.1006983426300729,1.0000000000000000, 0.7493075430155060, -0.0660957201261770, ]] - des_fp = [[1.4884212771470557, -1.7313631353725443, -1.8960217446096013 ,-1.5743247346855040, -0.6588378198124285, 1.5760072944262735, -1.6195476295826339, 1.6331601850660600, 1.5500570371017799, 1.6681546080045699, -1.5640574366689186, 1.5645711300947915, ], - [1.4884212771470557, -1.7313631353725443, -1.8960217446096013 ,-1.5743247346855040, -0.6588378198124285, 1.5760072944262735, -1.6195476295826339, 1.6331601850660600, 1.5500570371017799, 1.6681546080045699, -1.5640574366689186, 1.5645711300947915, ], - [0.2063520206057176, -0.0006872631459814, 0.1984032962922470 ,-0.1405363647947962, -0.6529777629653040, 0.1391845312301769, -0.1032467134746193, 0.0916076576280529, 0.1597499333908100, 0.0607021649814652, 0.9307581064966284, -0.9306073050248997, ], - [0.2063520206057176, -0.0006872631459814, 0.1984032962922470 ,-0.1405363647947962, -0.6529777629653040, 0.1391845312301769, -0.1032467134746193, 0.0916076576280529, 0.1597499333908100, 0.0607021649814652, 0.9307581064966284, -0.9306073050248997, ], - [0.2063520206057176, -0.0006872631459814, 0.1984032962922470 ,-0.1405363647947962, -0.6529777629653040, 0.1391845312301769, -0.1032467134746193, 0.0916076576280529, 0.1597499333908100, 0.0607021649814652, 0.9307581064966284, -0.9306073050248997, ], - [0.2063520206057176, -0.0006872631459814, 0.1984032962922470 ,-0.1405363647947962, -0.6529777629653040, 0.1391845312301769, -0.1032467134746193, 0.0916076576280529, 0.1597499333908100, 0.0607021649814652, 0.9307581064966284, -0.9306073050248997, ], - [0.2063520206057176, -0.0006872631459814, 0.1984032962922470 ,-0.1405363647947962, -0.6529777629653040, 0.1391845312301769, -0.1032467134746193, 0.0916076576280529, 0.1597499333908100, 0.0607021649814652, 0.9307581064966284, -0.9306073050248997, ], - [-1.3362008857742342, 1.1553875288249604, 0.9333423359155669 ,1.2837770977816663, 1.5275214848171255, -1.2826457483344771, 1.2517762755127866, -1.2414528860907947, -1.2996212470524711, -1.2132733469721564, -0.5085585530219564, 0.5079647549844650, ], - [-1.3362008857742342, 1.1553875288249604, 0.9333423359155669 ,1.2837770977816663, 1.5275214848171255, -1.2826457483344771, 1.2517762755127866, -1.2414528860907947, -1.2996212470524711, -1.2132733469721564, -0.5085585530219564, 0.5079647549844650, ], - [-1.3362008857742342, 1.1553875288249604, 0.9333423359155669 ,1.2837770977816663, 1.5275214848171255, -1.2826457483344771, 1.2517762755127866, -1.2414528860907947, -1.2996212470524711, -1.2132733469721564, -0.5085585530219564, 0.5079647549844650, ]] - des_fv = [[-1.3774082988004341, -1.7314774277876119, -1.8408694731530220 ,1.4653189984293840, 0.9423900132903743, 1.7289914708003520, 0.9640777403983550, 0.9587919646821867, 1.8540003574302877, 1.4893193892827439, 0.9903054932030352, 1.5988861876347582, ], - [-1.3774082988004341, -1.7314774277876119, -1.8408694731530220 ,1.4653189984293840, 0.9423900132903743, 1.7289914708003520, 0.9640777403983550, 0.9587919646821867, 1.8540003574302877, 1.4893193892827439, 0.9903054932030352, 1.5988861876347582, ], - [ 0.9722572792885026, 0.8663118092391583, 0.7987434703505584 ,-0.9557426300721859, -0.9994570776453097, 0.0030512738177782, 0.5177485766884827, 0.5203247842029390, -0.1386878335903885, -0.9503535962985835, -0.9999843863825774, 0.1205361342559165, ], - [ 0.9722572792885026, 0.8663118092391583, 0.7987434703505584 ,-0.9557426300721859, -0.9994570776453097, 0.0030512738177782, 0.5177485766884827, 0.5203247842029390, -0.1386878335903885, -0.9503535962985835, -0.9999843863825774, 0.1205361342559165, ], - [ 0.9722572792885026, 0.8663118092391583, 0.7987434703505584 ,-0.9557426300721859, -0.9994570776453097, 0.0030512738177782, 0.5177485766884827, 0.5203247842029390, -0.1386878335903885, -0.9503535962985835, -0.9999843863825774, 0.1205361342559165, ], - [ 0.9722572792885026, 0.8663118092391583, 0.7987434703505584 ,-0.9557426300721859, -0.9994570776453097, 0.0030512738177782, 0.5177485766884827, 0.5203247842029390, -0.1386878335903885, -0.9503535962985835, -0.9999843863825774, 0.1205361342559165, ], - [ 0.9722572792885026, 0.8663118092391583, 0.7987434703505584 ,-0.9557426300721859, -0.9994570776453097, 0.0030512738177782, 0.5177485766884827, 0.5203247842029390, -0.1386878335903885, -0.9503535962985835, -0.9999843863825774, 0.1205361342559165, ], - [ -0.7021565996138799, -0.2895347302068554, -0.1039928018155829,0.6160250511673788, 1.0375017872152676, -1.1577464368965131, -1.5056327880797116, -1.5064026167930198, -1.0048538489695498,0.5910430676424782, 1.0064369818356056, -1.2668176821830330, ], - [ -0.7021565996138799, -0.2895347302068554, -0.1039928018155829,0.6160250511673788, 1.0375017872152676, -1.1577464368965131, -1.5056327880797116, -1.5064026167930198, -1.0048538489695498,0.5910430676424782, 1.0064369818356056, -1.2668176821830330, ], - [ -0.7021565996138799, -0.2895347302068554, -0.1039928018155829,0.6160250511673788, 1.0375017872152676, -1.1577464368965131, -1.5056327880797116, -1.5064026167930198, -1.0048538489695498,0.5910430676424782, 1.0064369818356056, -1.2668176821830330, ]] + des_la = [[1.4491376746189437, -1.4491376746189439, -1.4491376746189455], + [1.4491376746189437, -1.4491376746189439, -1.4491376746189455], + [1.4491376746189437, -1.4491376746189439, -1.4491376746189455], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173], + [-0.6210590034081187, 0.6210590034081187, 0.6210590034081173]] + des_av = [[-1.4491376746189435, 1.4491376746189437, -1.4491376746189486], + [-1.4491376746189435, 1.4491376746189437, -1.4491376746189486], + [-1.4491376746189435, 1.4491376746189437, -1.4491376746189486], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144], + [0.6210590034081187, -0.6210590034081188, 0.6210590034081144]] + des_p = [[-1.6431676725154987, 1.3954241717130242, 1.4907544284266612, -0.6210590034081188, -1.4907880397936644, 1.4833054412157543, 1.5527892963392784, -1.5129981064756799, 1.4764001117023364, 0.0000000000000000, 1.5636397280635477, 1.8973665961005983], + [-1.6431676725154987, 1.3954241717130242, 1.4907544284266612, -0.6210590034081188, -1.4907880397936644, 1.4833054412157543, 1.5527892963392784, -1.5129981064756799, 1.4764001117023364, 0.0000000000000000, 1.5636397280635477, 1.8973665961005983], + [0.0000000000000000, 0.2078291319572589, 0.1355530739847286, -0.6210590034081188, -0.1355261854357877, 0.1414854895601932, 0.0839345565588799, -0.1175144160369460, 0.1469382537512688, 0.0000000000000000, 0.0744590346696927, -0.4743416490256865], + [0.0000000000000000, 0.2078291319572589, 0.1355530739847286, -0.6210590034081188, -0.1355261854357877, 0.1414854895601932, 0.0839345565588799, -0.1175144160369460, 0.1469382537512688, 0.0000000000000000, 0.0744590346696927, -0.4743416490256865], + [0.0000000000000000, 0.2078291319572589, 0.1355530739847286, -0.6210590034081188, -0.1355261854357877, 0.1414854895601932, 0.0839345565588799, -0.1175144160369460, 0.1469382537512688, 0.0000000000000000, 0.0744590346696927, -0.4743416490256865], + [0.0000000000000000, 0.2078291319572589, 0.1355530739847286, -0.6210590034081188, -0.1355261854357877, 0.1414854895601932, 0.0839345565588799, -0.1175144160369460, 0.1469382537512688, 0.0000000000000000, 0.0744590346696927, -0.4743416490256865], + [0.0000000000000000, 0.2078291319572589, 0.1355530739847286, -0.6210590034081188, -0.1355261854357877, 0.1414854895601932, 0.0839345565588799, -0.1175144160369460, 0.1469382537512688, 0.0000000000000000, 0.0744590346696927, -0.4743416490256865], + [1.0954451150103324, -1.2766646677374476, -1.2197580755924582, 1.4491376746189439, 1.2197356689220891, -1.2246794434108101, -1.1750837918243189, 1.2045227643786967, -1.2291638307203390, 0.0000000000000000, -1.1665248764918530, -0.4743416490256865], + [1.0954451150103324, -1.2766646677374476, -1.2197580755924582, 1.4491376746189439, 1.2197356689220891, -1.2246794434108101, -1.1750837918243189, 1.2045227643786967, -1.2291638307203390, 0.0000000000000000, -1.1665248764918530, -0.4743416490256865], + [1.0954451150103324, -1.2766646677374476, -1.2197580755924582, 1.4491376746189439, 1.2197356689220891, -1.2246794434108101, -1.1750837918243189, 1.2045227643786967, -1.2291638307203390, 0.0000000000000000, -1.1665248764918530, -0.4743416490256865]] + des_v = [[-1.6431676725154984, -1.3671981455629505, 1.5790637348111864, 0.9486832980505138, -0.0729756383115739, 1.4342795371518564, 0.6210590034081203, -0.4936055194583740, 1.6906341359604951, 0.9486832980505139, 1.2576675135944444, 1.8180368816854224], + [-1.6431676725154984, -1.3671981455629505, 1.5790637348111864, 0.9486832980505138, -0.0729756383115739, 1.4342795371518564, 0.6210590034081203, -0.4936055194583740, 1.6906341359604951, 0.9486832980505139, 1.2576675135944444, 1.8180368816854224], + [0.8215838362577492, 0.9114654303752995, -0.8502651903029340, -0.9486832980505138, -0.8027320214273539, 0.1792803869262010, 0.6210590034081203, 0.9166959647084314, -0.0497251740771810, -0.9486832980505139, -0.9295803361350234, -0.6895924092203737], + [0.8215838362577492, 0.9114654303752995, -0.8502651903029340, -0.9486832980505138, -0.8027320214273539, 0.1792803869262010, 0.6210590034081203, 0.9166959647084314, -0.0497251740771810, -0.9486832980505139, -0.9295803361350234, -0.6895924092203737], + [0.8215838362577492, 0.9114654303752995, -0.8502651903029340, -0.9486832980505138, -0.8027320214273539, 0.1792803869262010, 0.6210590034081203, 0.9166959647084314, -0.0497251740771810, -0.9486832980505139, -0.9295803361350234, -0.6895924092203737], + [0.8215838362577492, 0.9114654303752995, -0.8502651903029340, -0.9486832980505138, -0.8027320214273539, 0.1792803869262010, 0.6210590034081203, 0.9166959647084314, -0.0497251740771810, -0.9486832980505139, -0.9295803361350234, -0.6895924092203737], + [0.8215838362577492, 0.9114654303752995, -0.8502651903029340, -0.9486832980505138, -0.8027320214273539, 0.1792803869262010, 0.6210590034081203, 0.9166959647084314, -0.0497251740771810, -0.9486832980505139, -0.9295803361350234, -0.6895924092203737], + [-0.2738612787525831, -0.6076436202502005, 0.3643994939640978, 0.9486832980505138, 1.3865371279199861, -1.2549870029782342, -1.4491376746189424, -1.1987562615417766, -1.0442141338450321, 0.9486832980505139, 0.7108555511620774, -0.0627039057563253], + [-0.2738612787525831, -0.6076436202502005, 0.3643994939640978, 0.9486832980505138, 1.3865371279199861, -1.2549870029782342, -1.4491376746189424, -1.1987562615417766, -1.0442141338450321, 0.9486832980505139, 0.7108555511620774, -0.0627039057563253], + [-0.2738612787525831, -0.6076436202502005, 0.3643994939640978, 0.9486832980505138, 1.3865371279199861, -1.2549870029782342, -1.4491376746189424, -1.1987562615417766, -1.0442141338450321, 0.9486832980505139, 0.7108555511620774, -0.0627039057563253]] + des_fp = [[1.4120404060924265, -1.6425152893883035, -1.7987241618517256, -1.4935355815039442, -0.6250284357800648, 1.4951317978279843, -1.5364377865823451, 1.5493517906132577, 1.4705132221241244, 1.5825504151799377, -1.4837951673595022, 1.4842824997329462], + [1.4120404060924265, -1.6425152893883035, -1.7987241618517256, -1.4935355815039442, -0.6250284357800648, 1.4951317978279843, -1.5364377865823451, 1.5493517906132577, 1.4705132221241244, 1.5825504151799377, -1.4837951673595022, 1.4842824997329462], + [0.1957627154676198, -0.0006519950679582, 0.1882218934706221, -0.1333245020495574, -0.6194690977235712, 0.1320420401250590, -0.0979484326519782, 0.0869066547652635, 0.1515520936725435, 0.0575871300734228, 0.8829946701584727, -0.8828516073209223], + [0.1957627154676198, -0.0006519950679582, 0.1882218934706221, -0.1333245020495574, -0.6194690977235712, 0.1320420401250590, -0.0979484326519782, 0.0869066547652635, 0.1515520936725435, 0.0575871300734228, 0.8829946701584727, -0.8828516073209223], + [0.1957627154676198, -0.0006519950679582, 0.1882218934706221, -0.1333245020495574, -0.6194690977235712, 0.1320420401250590, -0.0979484326519782, 0.0869066547652635, 0.1515520936725435, 0.0575871300734228, 0.8829946701584727, -0.8828516073209223], + [0.1957627154676198, -0.0006519950679582, 0.1882218934706221, -0.1333245020495574, -0.6194690977235712, 0.1320420401250590, -0.0979484326519782, 0.0869066547652635, 0.1515520936725435, 0.0575871300734228, 0.8829946701584727, -0.8828516073209223], + [0.1957627154676198, -0.0006519950679582, 0.1882218934706221, -0.1333245020495574, -0.6194690977235712, 0.1320420401250590, -0.0979484326519782, 0.0869066547652635, 0.1515520936725435, 0.0575871300734228, 0.8829946701584727, -0.8828516073209223], + [-1.2676314631743184, 1.0960968513720966, 0.8854462854465506, 1.2178978910852283, 1.4491341200593286, -1.2168245987604211, 1.1875392454748590, -1.1777456183509443, -1.2329289708702598, -1.1510121602423309, -0.4824610053326667, 0.4818976790520834], + [-1.2676314631743184, 1.0960968513720966, 0.8854462854465506, 1.2178978910852283, 1.4491341200593286, -1.2168245987604211, 1.1875392454748590, -1.1777456183509443, -1.2329289708702598, -1.1510121602423309, -0.4824610053326667, 0.4818976790520834], + [-1.2676314631743184, 1.0960968513720966, 0.8854462854465506, 1.2178978910852283, 1.4491341200593286, -1.2168245987604211, 1.1875392454748590, -1.1777456183509443, -1.2329289708702598, -1.1510121602423309, -0.4824610053326667, 0.4818976790520834]] + des_fv = [[-1.3067242476681438, -1.6426237166935722, -1.7464021230713205, 1.3901236601260638, 0.8940296658581799, 1.6402653308200867, 0.9146044503381986, 0.9095899231990285, 1.7588591736737968, 1.4128924300753305, 0.9394862813693962, 1.5168366216927551], + [-1.3067242476681438, -1.6426237166935722, -1.7464021230713205, 1.3901236601260638, 0.8940296658581799, 1.6402653308200867, 0.9146044503381986, 0.9095899231990285, 1.7588591736737968, 1.4128924300753305, 0.9394862813693962, 1.5168366216927551], + [0.9223642422690362, 0.8218555443291123, 0.7577545897484805, -0.9066970703843535, -0.9481682366804809, 0.0028946925087050, 0.4911794272937892, 0.4936234323350660, -0.1315708313700105, -0.9015845840507067, -0.9486684856724428, 0.1143506173801624], + [0.9223642422690362, 0.8218555443291123, 0.7577545897484805, -0.9066970703843535, -0.9481682366804809, 0.0028946925087050, 0.4911794272937892, 0.4936234323350660, -0.1315708313700105, -0.9015845840507067, -0.9486684856724428, 0.1143506173801624], + [0.9223642422690362, 0.8218555443291123, 0.7577545897484805, -0.9066970703843535, -0.9481682366804809, 0.0028946925087050, 0.4911794272937892, 0.4936234323350660, -0.1315708313700105, -0.9015845840507067, -0.9486684856724428, 0.1143506173801624], + [0.9223642422690362, 0.8218555443291123, 0.7577545897484805, -0.9066970703843535, -0.9481682366804809, 0.0028946925087050, 0.4911794272937892, 0.4936234323350660, -0.1315708313700105, -0.9015845840507067, -0.9486684856724428, 0.1143506173801624], + [0.9223642422690362, 0.8218555443291123, 0.7577545897484805, -0.9066970703843535, -0.9481682366804809, 0.0028946925087050, 0.4911794272937892, 0.4936234323350660, -0.1315708313700105, -0.9015845840507067, -0.9486684856724428, 0.1143506173801624], + [-0.6661242386696298, -0.2746767627528053, -0.0986562341999207, 0.5844126772232056, 0.9842606172286825, -1.0983347080612154, -1.4283686790484511, -1.4290990026911261, -0.9532880634991853, 0.5607126867009591, 0.9547899552078075, -1.2018087767621075], + [-0.6661242386696298, -0.2746767627528053, -0.0986562341999207, 0.5844126772232056, 0.9842606172286825, -1.0983347080612154, -1.4283686790484511, -1.4290990026911261, -0.9532880634991853, 0.5607126867009591, 0.9547899552078075, -1.2018087767621075], + [-0.6661242386696298, -0.2746767627528053, -0.0986562341999207, 0.5844126772232056, 0.9842606172286825, -1.0983347080612154, -1.4283686790484511, -1.4290990026911261, -0.9532880634991853, 0.5607126867009591, 0.9547899552078075, -1.2018087767621075]] des_t = None - des_gt = [1, 0, 0, 1] + des_gt = [1, 0, 0, 1] # Not normalized des_rp = None des_ro = None - np.testing.assert_array_almost_equal(la, des_la, 14) - np.testing.assert_array_almost_equal(av, des_av, 14) - np.testing.assert_array_almost_equal(p, des_p, 14) - np.testing.assert_array_almost_equal(v, des_v, 14) + np.testing.assert_array_almost_equal(la, des_la, 13) + np.testing.assert_array_almost_equal(av, des_av, 13) + np.testing.assert_array_almost_equal(p, des_p, 12) + np.testing.assert_array_almost_equal(v, des_v, 13) np.testing.assert_equal(t, des_t) - np.testing.assert_array_almost_equal(fp, des_fp, 14) - np.testing.assert_array_almost_equal(fv, des_fv, 14) - np.testing.assert_array_almost_equal(gt, des_gt, 14) + np.testing.assert_array_almost_equal(fp, des_fp, 12) + np.testing.assert_array_almost_equal(fv, des_fv, 13) + np.testing.assert_array_almost_equal(gt, des_gt, 13) np.testing.assert_equal(r_p, des_rp) np.testing.assert_equal(r_o, des_ro) diff --git a/tests/testGnnLightning.py b/tests/testGnnLightning.py index 22a8e18..9285af8 100644 --- a/tests/testGnnLightning.py +++ b/tests/testGnnLightning.py @@ -2,10 +2,10 @@ from pathlib import Path import torchmetrics.classification -from grfgnn import QuadSDKDataset_A1Speed1_0 -from grfgnn.datasets_py.LinTzuYaunDataset import LinTzuYaunDataset_asphalt_road -from grfgnn.lightning_py.gnnLightning import train_model, evaluate_model, Heterogeneous_GNN_Lightning, Base_Lightning -from grfgnn.visualization import visualize_model_outputs_regression, visualize_model_outputs_classification +from mi_hgnn import QuadSDKDataset_A1Speed1_0 +from mi_hgnn.datasets_py.LinTzuYaunDataset import LinTzuYaunDataset_asphalt_road +from mi_hgnn.lightning_py.gnnLightning import train_model, evaluate_model, Heterogeneous_GNN_Lightning, Base_Lightning +from mi_hgnn.visualization import visualize_model_outputs_regression, visualize_model_outputs_classification import torch from torch.utils.data import random_split import numpy as np @@ -72,55 +72,72 @@ def test_train_eval_vis_model(self): """ # For each regression model - for model in self.models: + for i, model in enumerate(self.models): train_dataset, val_dataset, test_dataset = random_split( model, [0.7, 0.2, 0.1], generator=self.rand_gen) path_to_ckpt_folder = train_model(train_dataset, val_dataset, test_dataset, normalize=False, testing_mode=True, disable_logger=True, - epochs=2) + epochs=2, seed=1919) # Make sure three models were saved (2 for top, 1 for last) models = sorted(Path('.', path_to_ckpt_folder).glob(("epoch=*"))) self.assertEqual(len(models), 3) - # Predict with the model - pred, labels = evaluate_model(models[0], test_dataset, 485) + try: + # Predict with the model + pred, labels = evaluate_model(models[0], test_dataset, 485) - # Assert the sizes of the results match - self.assertEqual(pred.shape[0], 485) - self.assertEqual(pred.shape[1], 4) - self.assertEqual(labels.shape[0], 485) - self.assertEqual(labels.shape[1], 4) + # Assert the sizes of the results match + self.assertEqual(pred.shape[0], 485) + self.assertEqual(pred.shape[1], 4) + self.assertEqual(labels.shape[0], 485) + self.assertEqual(labels.shape[1], 4) - # Try and visualize with the model - visualize_model_outputs_regression(pred, labels) + # Try and visualize with the model + visualize_model_outputs_regression(pred, labels) + + except Exception as e: + for path in models: + Path.unlink(path, missing_ok=False) + raise e + + for path in models: + Path.unlink(path, missing_ok=False) # For each classification model - for model in self.class_models: + for i, model in enumerate(self.class_models): # Test for classification train_dataset, val_dataset, test_dataset = random_split( model, [0.7, 0.2, 0.1], generator=self.rand_gen) path_to_ckpt_folder = train_model(train_dataset, val_dataset, test_dataset, normalize=False, testing_mode=True, disable_logger=True, - regression=False, epochs=2) + regression=False, epochs=2, seed=1919) # Make sure three models were saved (2 for top, 1 for last) models = sorted(Path('.', path_to_ckpt_folder).glob(("epoch=*"))) self.assertEqual(len(models), 3) - # Predict with the model - pred, labels = evaluate_model(models[0], test_dataset, 234) - - # Assert the sizes of the results match - self.assertEqual(pred.shape[0], 234) - self.assertEqual(pred.shape[1], 4) - self.assertEqual(labels.shape[0], 234) - self.assertEqual(labels.shape[1], 4) + try: + # Predict with the model + pred, labels = evaluate_model(models[0], test_dataset, 234) + + # Assert the sizes of the results match + self.assertEqual(pred.shape[0], 234) + self.assertEqual(pred.shape[1], 4) + self.assertEqual(labels.shape[0], 234) + self.assertEqual(labels.shape[1], 4) + + # Try to visualize the results + visualize_model_outputs_classification(pred, labels) + except Exception as e: + for path in models: + Path.unlink(path, missing_ok=False) + raise e - # Try to visualize the results - visualize_model_outputs_classification(pred, labels) + for path in models: + Path.unlink(path, missing_ok=False) def test_MIHGNN_model_output_assumption(self): """ diff --git a/tests/testGraphParser.py b/tests/testGraphParser.py index 83b0710..99c8558 100644 --- a/tests/testGraphParser.py +++ b/tests/testGraphParser.py @@ -1,6 +1,6 @@ from pathlib import Path import unittest -from grfgnn import RobotGraph, NormalRobotGraph, HeterogeneousRobotGraph +from mi_hgnn import RobotGraph, NormalRobotGraph, HeterogeneousRobotGraph from pathlib import Path import copy import pandas as pd diff --git a/tests/test_norm_regression_generator.mlx b/tests/test_norm_regression_generator.mlx index 658bc17..8d0bcf5 100644 Binary files a/tests/test_norm_regression_generator.mlx and b/tests/test_norm_regression_generator.mlx differ