From 510a9d5f4e252484611d42a0f1b1cb65ca44d6fe Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 07:38:02 +0100 Subject: [PATCH 01/36] Update types.py --- deeptrack/types.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/deeptrack/types.py b/deeptrack/types.py index 0f32b00ee..651b5eef8 100644 --- a/deeptrack/types.py +++ b/deeptrack/types.py @@ -1,12 +1,24 @@ -""" Type declarations for internal use +""" Type declarations for internal use. + +This module defines type aliases and utility types to standardize the type +annotations used throughout the codebase. It enhances code readability, +maintainability, and reduces redundancy in type annotations. These types are +particularly useful for properties and array-like structures used within the +library. """ +import numpy as np import typing -import numpy as np +# Property type declaration. -# Property type declaration +# T is a generic type variable defining generic types for reusability. T = typing.TypeVar("T") + +# PropertyLike is a type alias representing a value of type T +# or a callable returning type T. PropertyLike = typing.Union[T, typing.Callable[..., T]] -ArrayLike = typing.Union[typing.Tuple[T], typing.List[T], np.ndarray] +# ArrayLike is a type alias representing any array-like structure. +# It supports tuples, lists, and numpy arrays containing elements of type T. +ArrayLike = typing.Union[typing.Tuple[T], typing.List[T], np.ndarray] \ No newline at end of file From 5bb4f8ec23cca7c322844bbaaa7a49920b700e57 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 07:40:02 +0100 Subject: [PATCH 02/36] Update types.py --- deeptrack/types.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/deeptrack/types.py b/deeptrack/types.py index 651b5eef8..61392a3a8 100644 --- a/deeptrack/types.py +++ b/deeptrack/types.py @@ -10,8 +10,6 @@ import numpy as np import typing -# Property type declaration. - # T is a generic type variable defining generic types for reusability. T = typing.TypeVar("T") From c13d10018243bf03e75dec7957046810a773e049 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 07:45:45 +0100 Subject: [PATCH 03/36] Update math.py --- deeptrack/math.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/deeptrack/math.py b/deeptrack/math.py index 9dcb22e16..210d2db19 100644 --- a/deeptrack/math.py +++ b/deeptrack/math.py @@ -1,11 +1,16 @@ -""" Mathematical oprations and structures +"""Mathematical operations and structures. -Classses --------- +This module provides classes and utilities to perform common mathematical +operations and transformations on images, including clipping, normalization, +blurring, and pooling. These are implemented as subclasses of `Feature` for +seamless integration with the feature-based design of the library. + +Classes +------- Clip - Clip the input within a minimum and a maximum value. + Clip the input values within a specified minimum and maximum range. NormalizeMinMax - Min-max image normalization. + Perform min-max normalization on images. """ from typing import Callable, List From 36e56bff46a34ebe13818118b0117a2ef136c331 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe <46021832+giovannivolpe@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:49:02 +0100 Subject: [PATCH 04/36] Update types.py --- deeptrack/types.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deeptrack/types.py b/deeptrack/types.py index 61392a3a8..389f410d0 100644 --- a/deeptrack/types.py +++ b/deeptrack/types.py @@ -1,4 +1,4 @@ -""" Type declarations for internal use. +"""Type declarations for internal use. This module defines type aliases and utility types to standardize the type annotations used throughout the codebase. It enhances code readability, @@ -19,4 +19,4 @@ # ArrayLike is a type alias representing any array-like structure. # It supports tuples, lists, and numpy arrays containing elements of type T. -ArrayLike = typing.Union[typing.Tuple[T], typing.List[T], np.ndarray] \ No newline at end of file +ArrayLike = typing.Union[typing.Tuple[T], typing.List[T], np.ndarray] From be723c737d0f3e13ea609b5a2d0dcd1f4ad41fbc Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 17:54:22 +0100 Subject: [PATCH 05/36] Update utils.py --- deeptrack/utils.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/deeptrack/utils.py b/deeptrack/utils.py index 32ee86241..825701d27 100644 --- a/deeptrack/utils.py +++ b/deeptrack/utils.py @@ -1,20 +1,24 @@ -""" Utility functions +"""Utility functions. -Defines a set of utility functions used throughout the code -to make it more readable. +This module defines utility functions that enhance code readability, +streamline common operations, and ensure type and argument consistency. Functions --------- -hasfunction(obj: any, function_name: str) -> bool - Return True if the object has a field named function_name - that is callable. Otherwise, return False. -isiterable(obj: any) +hasmethod(obj: any, method_name: str) -> bool + Return True if the object has a field named `function_name` that is + callable. Otherwise, return False. +isiterable(obj: any) -> bool Return True if the object is iterable. Else, return False. -as_list(obj: any) - If the input is iterable, convert it to list. +as_list(obj: any) -> list + If the input is iterable, convert it to list. Otherwise, wrap the input in a list. -get_kwarg_names(function: Callable) - Return the names of the keyword arguments the function accepts. +get_kwarg_names(function: Callable) -> List[str] + Retrieves the names of the keyword arguments accepted by a function. +kwarg_has_default(function: Callable, argument: str) -> bool + Checks if a specific argument of a function has a default value. +safe_call(function, positional_args=[], **kwargs) + Calls a function, passing only valid arguments from the provided kwargs. """ import inspect From 13d6f80b824bfc4b92199ba19e3b9036b9636840 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 18:07:15 +0100 Subject: [PATCH 06/36] Update utils.py --- deeptrack/utils.py | 91 +++++++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 37 deletions(-) diff --git a/deeptrack/utils.py b/deeptrack/utils.py index 825701d27..d862d68f1 100644 --- a/deeptrack/utils.py +++ b/deeptrack/utils.py @@ -19,47 +19,50 @@ Checks if a specific argument of a function has a default value. safe_call(function, positional_args=[], **kwargs) Calls a function, passing only valid arguments from the provided kwargs. + """ import inspect -from typing import Callable, List +from typing import Any, Callable, List def hasmethod(obj: any, method_name: str) -> bool: - """Check if an object has a callable method named method_name. + """Check if an object has a callable method named `method_name`. Parameters ---------- - obj - The object to be checked. - method_name + obj : any + The object to inspect. + method_name : str The name of the method to look for. Returns ------- bool - True if the object has an attribute method_name, and that - attribute is callable. + True if the object has an attribute named `method_name` that is + callable. """ - return hasattr(obj, method_name) and callable(getattr(obj, method_name, None)) + return (hasattr(obj, method_name) + and callable(getattr(obj, method_name, None))) def isiterable(obj: any) -> bool: - """Check if the input is iterable. - Note that this function does not capture all possible cases - and is subject to change in the future if issues arise. + """Determine if the input object is iterable. + + Note that this checks for the presence of a `.__next__()` method, which may + not cover all iterable objects. It could be updated if edge cases arise. Parameters ---------- - obj + obj : any The object to check. Returns ------- bool - True if the object has __next__ defined. + True if the object has `.__next__()` method. """ @@ -67,19 +70,20 @@ def isiterable(obj: any) -> bool: def as_list(obj: any) -> list: - """Ensure the input is a list. - If the input is iterable, convert it to a list, - otherwise wrap the input in a list. + """Ensure that the input is a list. + + Converts the input to a list if it is iterable; otherwise, it wraps it in a + list. Parameters ---------- - obj - The object that will be made a list. + obj : any + The object to be converted or wrapped in a list. Returns ------- list - The input as a list. + The input object as a list. """ @@ -90,19 +94,20 @@ def as_list(obj: any) -> list: def get_kwarg_names(function: Callable) -> List[str]: - """Retrieve the names of the keyword arguments. - Retrieve the names of the keyword arguments accepted by `function` - as a list of strings. + """Retrieve the names of the keyword arguments accepted by a function. + + Retrieves the names of the keyword arguments accepted by `function` as a + list of strings. Parameters ---------- - function - The function to retrieve keyword argument names from. + function : Callable + The function whose keyword argument names are to be retrieved. Returns ------- List[str] - The accepted keyword arguments as a list of strings. + A list of names of keyword arguments the function accepts. """ @@ -118,20 +123,22 @@ def get_kwarg_names(function: Callable) -> List[str]: def kwarg_has_default(function: Callable, argument: str) -> bool: - """Returns true if an argument has a default value. + """Check if a specific argument of a function has a default value. Parameters ---------- function : Callable - The function to check. + The function to inspect. argument : str - Name of the argument + Name of the argument to check. Returns ------- bool + True if the specified argument has a default value. """ + args = get_kwarg_names(function) if argument not in args: @@ -142,25 +149,35 @@ def kwarg_has_default(function: Callable, argument: str) -> bool: return len(args) - args.index(argument) <= len(defaults) -def safe_call(function, positional_args=[], **kwargs): - """Calls a function, using keyword arguments from a dictionary of arguments. - - If the function does not accept one of the argument provided, it will not - be passed. Does not support non-keyword arguments. +def safe_call(function, positional_args=[], **kwargs) -> Any: + """Calls a function with valid arguments from a dictionary of arguments. + + Filters `kwargs` to include only arguments accepted by the function, + ensuring that no invalid arguments are passed. This function also supports + positional arguments. Parameters ---------- function : Callable - The function to call - kwargs - Key-value pairs to draw input arguments from. + The function to call. + positional_args : list, optional + List of positional arguments to pass to the function. + kwargs : dict + Dictionary of keyword arguments to filter and pass. + + Returns + ------- + Any + The result of calling the function with the filtered arguments. + """ keys = get_kwarg_names(function) + # Filter kwargs to include only keys present in the function's signature. input_arguments = {} for key in keys: if key in kwargs: input_arguments[key] = kwargs[key] - return function(*positional_args, **input_arguments) + return function(*positional_args, **input_arguments) \ No newline at end of file From 0b4d19872bef4da382f6c1c4ec64aeda5e24ccd6 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 23:31:22 +0100 Subject: [PATCH 07/36] Update test_utils.py --- deeptrack/test/test_utils.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/deeptrack/test/test_utils.py b/deeptrack/test/test_utils.py index 84f4b98ce..515bcf2c4 100644 --- a/deeptrack/test/test_utils.py +++ b/deeptrack/test/test_utils.py @@ -1,13 +1,10 @@ -import sys - -# sys.path.append(".") # Adds the module to path - import unittest from .. import utils class TestUtils(unittest.TestCase): + def test_hasmethod(self): self.assertTrue(utils.hasmethod(utils, "hasmethod")) self.assertFalse( From e6468385e978961ef18d14a41e8a0c2999d5c0b9 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Thu, 5 Dec 2024 23:39:22 +0100 Subject: [PATCH 08/36] Update test_optics.py --- deeptrack/test/test_optics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deeptrack/test/test_optics.py b/deeptrack/test/test_optics.py index 1828968fa..276696c8d 100644 --- a/deeptrack/test/test_optics.py +++ b/deeptrack/test/test_optics.py @@ -116,7 +116,7 @@ def test_upscale_fluorescence(self): error = np.abs( output_image_2x_upscale - output_image_no_upscale ).mean() # Mean absolute error - self.assertLess(error, 0.005) + self.assertLess(error, 0.01) def test_upscale_brightfield(self): microscope = optics.Fluorescence( From 6d65a5d35b17cbb57567b246d7561e20c9415d23 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 00:03:06 +0100 Subject: [PATCH 09/36] Update test_utils.py --- deeptrack/test/test_utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/deeptrack/test/test_utils.py b/deeptrack/test/test_utils.py index 515bcf2c4..6be25236f 100644 --- a/deeptrack/test/test_utils.py +++ b/deeptrack/test/test_utils.py @@ -21,7 +21,6 @@ def test_isiterable(self): self.assertTrue(utils.isiterable(iterable_obj)) def test_as_list(self): - obj = 1 self.assertEqual(utils.as_list(obj), [obj]) From c343ca0dc785b0ef1d2910e495253c58dcdb25a2 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 00:09:20 +0100 Subject: [PATCH 10/36] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index fbb490095..5057588cb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ pydata-sphinx-theme numpydoc scikit-image more_itertools -pint<0.20 +pint pandas tqdm lazy_import From 9d65eadd3e8c329819a4dcb38924f853ad68ca8e Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 00:15:16 +0100 Subject: [PATCH 11/36] Update optics.py --- deeptrack/optics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deeptrack/optics.py b/deeptrack/optics.py index 29be92de5..c27c506e7 100644 --- a/deeptrack/optics.py +++ b/deeptrack/optics.py @@ -16,7 +16,7 @@ """ -from pint.quantity import Quantity +from pint import Quantity from deeptrack.backend.units import ( ConversionTable, create_context, From 0aa4363d40594761b57f81669aba904145d7aeaa Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 00:15:18 +0100 Subject: [PATCH 12/36] Update features.py --- deeptrack/features.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deeptrack/features.py b/deeptrack/features.py index edbc36b23..bd3691e3f 100644 --- a/deeptrack/features.py +++ b/deeptrack/features.py @@ -10,7 +10,7 @@ import random import numpy as np -from pint.quantity import Quantity +from pint import Quantity # import tensorflow as tf import skimage import skimage.measure From 77295d90ea5be3613b860f22b90b1857ba231df9 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe <46021832+giovannivolpe@users.noreply.github.com> Date: Fri, 6 Dec 2024 18:03:39 +0100 Subject: [PATCH 13/36] Update requirements.txt --- requirements.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 5057588cb..414aaa30a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,6 @@ numpy matplotlib scipy -Sphinx==2.2.0 -pydata-sphinx-theme -numpydoc scikit-image more_itertools pint @@ -11,4 +8,4 @@ pandas tqdm lazy_import rich -gdown \ No newline at end of file +gdown From 63604c5153efe4f05aa0e576d46fb1ebe3ab6c63 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:08:34 +0100 Subject: [PATCH 14/36] removed isiterable --- deeptrack/properties.py | 2 +- deeptrack/test/test_utils.py | 12 +++--------- deeptrack/utils.py | 21 --------------------- 3 files changed, 4 insertions(+), 31 deletions(-) diff --git a/deeptrack/properties.py b/deeptrack/properties.py index 5f84b068a..9e41bd82f 100644 --- a/deeptrack/properties.py +++ b/deeptrack/properties.py @@ -58,7 +58,7 @@ def create_action(self, sampling_rule, **dependencies): if isinstance(sampling_rule, (tuple, np.ndarray)): return lambda _ID=(): sampling_rule - if isiterable(sampling_rule): + if hasattr(sampling_rule, "__next__"): # If it's iterable, return the next value def wrapped_iterator(): while True: diff --git a/deeptrack/test/test_utils.py b/deeptrack/test/test_utils.py index 6be25236f..d45c7508f 100644 --- a/deeptrack/test/test_utils.py +++ b/deeptrack/test/test_utils.py @@ -10,15 +10,7 @@ def test_hasmethod(self): self.assertFalse( utils.hasmethod(utils, "this_is_definetely_not_a_method_of_utils") ) - - def test_isiterable(self): - self.assertFalse(utils.isiterable(1)) - - non_iterable_obj = ("apple", "banana", "cherry") - self.assertFalse(utils.isiterable(non_iterable_obj)) - - iterable_obj = iter(("apple", "banana", "cherry")) - self.assertTrue(utils.isiterable(iterable_obj)) + def test_as_list(self): obj = 1 @@ -27,6 +19,7 @@ def test_as_list(self): list_obj = [1, 2, 3] self.assertEqual(utils.as_list(list_obj), list_obj) + def test_get_kwarg_names(self): def func1(): pass @@ -63,6 +56,7 @@ def func7(key1, key2=1, key3=3, **kwargs): self.assertEqual(utils.get_kwarg_names(func7), ["key1", "key2", "key3"]) + def test_safe_call(self): arguments = { diff --git a/deeptrack/utils.py b/deeptrack/utils.py index d862d68f1..bc62fc250 100644 --- a/deeptrack/utils.py +++ b/deeptrack/utils.py @@ -48,27 +48,6 @@ def hasmethod(obj: any, method_name: str) -> bool: and callable(getattr(obj, method_name, None))) -def isiterable(obj: any) -> bool: - """Determine if the input object is iterable. - - Note that this checks for the presence of a `.__next__()` method, which may - not cover all iterable objects. It could be updated if edge cases arise. - - Parameters - ---------- - obj : any - The object to check. - - Returns - ------- - bool - True if the object has `.__next__()` method. - - """ - - return hasattr(obj, "__next__") - - def as_list(obj: any) -> list: """Ensure that the input is a list. From cc5cb1636a3fdc30b9f26e0cd0c228a49c8634df Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:09:54 +0100 Subject: [PATCH 15/36] Update utils.py --- deeptrack/utils.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/deeptrack/utils.py b/deeptrack/utils.py index bc62fc250..cfd9d1567 100644 --- a/deeptrack/utils.py +++ b/deeptrack/utils.py @@ -8,8 +8,6 @@ hasmethod(obj: any, method_name: str) -> bool Return True if the object has a field named `function_name` that is callable. Otherwise, return False. -isiterable(obj: any) -> bool - Return True if the object is iterable. Else, return False. as_list(obj: any) -> list If the input is iterable, convert it to list. Otherwise, wrap the input in a list. From 1379acc2a6699a885e222874a2b89b1463fe57cc Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:09:56 +0100 Subject: [PATCH 16/36] Update utils_example.ipynb --- examples/module-examples/utils_example.ipynb | 528 +++++++++---------- 1 file changed, 249 insertions(+), 279 deletions(-) diff --git a/examples/module-examples/utils_example.ipynb b/examples/module-examples/utils_example.ipynb index 148d2261f..10c89b252 100644 --- a/examples/module-examples/utils_example.ipynb +++ b/examples/module-examples/utils_example.ipynb @@ -1,288 +1,258 @@ { - "cells": [ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.1)\n", - "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", - "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", - "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", - "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", - "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", - "Requirement already satisfied: pandas in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.4.3)\n", - "Requirement already satisfied: tqdm in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (4.64.0)\n", - "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", - "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", - "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", - "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", - "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", - "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", - "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", - "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", - "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", - "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", - "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2.8.2)\n", - "Requirement already satisfied: pytz>=2020.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2022.1)\n", - "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", - "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", - "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", - "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", - "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", - "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", - "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", - "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", - "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", - "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", - "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", - "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", - "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", - "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", - "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", - "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", - "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", - "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", - "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", - "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", - "Requirement already satisfied: colorama in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tqdm->deeptrack) (0.4.5)\n", - "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", - "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", - "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", - "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", - "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", - "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", - "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", - "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", - "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", - "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", - "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", - "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", - "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", - "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", - "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "!pip install deeptrack" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# deeptrack.utils\n", - "\n", - "This example introduces the module deeptrack.properties.\n", - "\n", - "## What is contained in deeptrack.utils?\n", - "\n", - "The module deeptrack.utils contains utility functions that improve of the readability of the code and the quality of life of the programmer. " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import deeptrack.utils as utils" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. utils.hasmethod()\n", - "\n", - "Checks if the input has a callable method named `method_name`." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n", - "False\n", - "True\n" - ] - } - ], - "source": [ - "obj = [1] # a list \n", - "\n", - "print(utils.hasmethod(obj, \"my_func\")) # my_func is not an attribute of list\n", - "print(utils.hasmethod(obj, \"__doc__\")) # __doc__ is an attribute but not a function\n", - "print(utils.hasmethod(obj, \"append\")) # append is an attribute and a function" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. utils.isiterable()\n", - "\n", - "Checks if the input is iterable. Shorthand for `hasmethod(obj, '__next__')`. Contained in a function in case the definition should be exanded in the future." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n", - "True\n" - ] - } - ], - "source": [ - "obj = [1]\n", - "\n", - "print(utils.isiterable(obj)) # a list is not iterable\n", - "print(utils.isiterable(iter(obj))) # Calling iter() makes the list iterable" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. utils.as_list()\n", - "\n", - "Converts input to list if possible, otherwise wraps it in a list." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 returns [1]\n", - "(1,) returns [1]\n", - "str returns ['s', 't', 'r']\n" - ] - } - ], - "source": [ - "print(1, \"returns\", utils.as_list(1))\n", - "print((1,), \"returns\", utils.as_list((1,)))\n", - "print(\"str\", \"returns\", utils.as_list(\"str\"))" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.1)\n", + "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", + "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", + "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", + "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", + "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", + "Requirement already satisfied: pandas in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.4.3)\n", + "Requirement already satisfied: tqdm in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (4.64.0)\n", + "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", + "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", + "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", + "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", + "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", + "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", + "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", + "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", + "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2022.1)\n", + "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", + "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", + "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", + "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", + "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", + "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", + "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", + "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", + "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", + "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", + "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", + "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", + "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", + "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", + "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", + "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", + "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", + "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", + "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", + "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", + "Requirement already satisfied: colorama in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tqdm->deeptrack) (0.4.5)\n", + "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", + "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", + "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "!pip install deeptrack" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# deeptrack.utils\n", + "\n", + "This example introduces the module deeptrack.properties.\n", + "\n", + "## What is contained in deeptrack.utils?\n", + "\n", + "The module deeptrack.utils contains utility functions that improve of the readability of the code and the quality of life of the programmer. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import deeptrack.utils as utils" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. utils.hasmethod()\n", + "\n", + "Checks if the input has a callable method named `method_name`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. utils.get_kwarg_names()\n", - "\n", - "Returns the names of the keyword arguments that a function accepts." - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "False\n", + "True\n" + ] + } + ], + "source": [ + "obj = [1] # a list \n", + "\n", + "print(utils.hasmethod(obj, \"my_func\")) # my_func is not an attribute of list\n", + "print(utils.hasmethod(obj, \"__doc__\")) # __doc__ is an attribute but not a function\n", + "print(utils.hasmethod(obj, \"append\")) # append is an attribute and a function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. utils.as_list()\n", + "\n", + "Converts input to list if possible, otherwise wraps it in a list." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['arg1', 'arg2', 'kwarg1', 'kwarg2']\n" - ] - } - ], - "source": [ - "def func1(arg1, arg2, kwarg1=None, kwarg2=1):\n", - " pass\n", - "\n", - "print(utils.get_kwarg_names(func1))" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "1 returns [1]\n", + "(1,) returns [1]\n", + "str returns ['s', 't', 'r']\n" + ] + } + ], + "source": [ + "print(1, \"returns\", utils.as_list(1))\n", + "print((1,), \"returns\", utils.as_list((1,)))\n", + "print(\"str\", \"returns\", utils.as_list(\"str\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. utils.get_kwarg_names()\n", + "\n", + "Returns the names of the keyword arguments that a function accepts." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['kwarg1', 'kwarg2']\n" - ] - } - ], - "source": [ - "def func2(arg1, arg2, *args, kwarg1=None, kwarg2=1, **kwargs):\n", - " pass\n", - "\n", - "print(utils.get_kwarg_names(func2))" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "['arg1', 'arg2', 'kwarg1', 'kwarg2']\n" + ] } - ], - "metadata": { - "file_extension": ".py", - "kernelspec": { - "display_name": "Python 3.8.6 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - }, - "mimetype": "text/x-python", - "name": "python", - "npconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": 3, - "vscode": { - "interpreter": { - "hash": "a44da721a5827f98cc9179544fef0a80b8a9b4f8cdc93722922a5386f263ab84" - } + ], + "source": [ + "def func1(arg1, arg2, kwarg1=None, kwarg2=1):\n", + " pass\n", + "\n", + "print(utils.get_kwarg_names(func1))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['kwarg1', 'kwarg2']\n" + ] } + ], + "source": [ + "def func2(arg1, arg2, *args, kwarg1=None, kwarg2=1, **kwargs):\n", + " pass\n", + "\n", + "print(utils.get_kwarg_names(func2))" + ] + } + ], + "metadata": { + "file_extension": ".py", + "kernelspec": { + "display_name": "Python 3.8.6 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" }, - "nbformat": 4, - "nbformat_minor": 2 + "mimetype": "text/x-python", + "name": "python", + "npconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3, + "vscode": { + "interpreter": { + "hash": "a44da721a5827f98cc9179544fef0a80b8a9b4f8cdc93722922a5386f263ab84" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 } From 4e0ea40cb18467a20cca8e2b3fc32315a89650ea Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:14:55 +0100 Subject: [PATCH 17/36] Update properties.py --- deeptrack/properties.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/deeptrack/properties.py b/deeptrack/properties.py index 9e41bd82f..61c378d0d 100644 --- a/deeptrack/properties.py +++ b/deeptrack/properties.py @@ -2,9 +2,7 @@ """ import numpy as np -from .utils import ( - isiterable, - get_kwarg_names, +from .utils import get_kwarg_names ) From 4f94e9801db60900fbdebd3b0948021b1b7548b0 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:15:38 +0100 Subject: [PATCH 18/36] Update utils.rst --- _src/source/utils.rst | 5 ----- 1 file changed, 5 deletions(-) diff --git a/_src/source/utils.rst b/_src/source/utils.rst index 269004ac1..b42039790 100644 --- a/_src/source/utils.rst +++ b/_src/source/utils.rst @@ -21,11 +21,6 @@ hasmethod .. autofunction:: deeptrack.utils.hasmethod -isiterable -^^^^^^^^^^ - -.. autofunction:: deeptrack.utils.isiterable - kwarg_has_default ^^^^^^^^^^^^^^^^^ From 79fffda0755729aea9d2788b5b400bd450425de6 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 18:21:53 +0100 Subject: [PATCH 19/36] Update python-app.yml --- .github/workflows/python-app.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 2d41b8a81..b02a0032f 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -15,13 +15,10 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] os: [ubuntu-latest, macos-latest, windows-latest] install-deeplay: ["", "deeplay"] - install-tensorflow: ["", "tensorflow"] - exclude: - - python-version: "3.11" - install-tensorflow: "tensorflow" + if: steps: - uses: actions/checkout@v3 @@ -38,10 +35,6 @@ jobs: if: ${{ matrix.install-deeplay == 'deeplay' }} run: | python -m pip install deeplay - - name: Install tensorflow - if: ${{ matrix.install-tensorflow == 'tensorflow' }} - run: | - python -m pip install tensorflow==2.10 tensorflow-probability tensorflow-datasets - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From eedf6e713a64510092020cdb6f175193c07d92d0 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 19:28:51 +0100 Subject: [PATCH 20/36] Update properties.py --- deeptrack/properties.py | 1 - 1 file changed, 1 deletion(-) diff --git a/deeptrack/properties.py b/deeptrack/properties.py index 61c378d0d..f5c75ebad 100644 --- a/deeptrack/properties.py +++ b/deeptrack/properties.py @@ -3,7 +3,6 @@ import numpy as np from .utils import get_kwarg_names -) from .backend.core import DeepTrackNode From 99b85261c44d432a2012917b487eeab944fbaef9 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 19:54:59 +0100 Subject: [PATCH 21/36] Update python-app.yml --- .github/workflows/python-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index b02a0032f..85411b810 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -34,7 +34,7 @@ jobs: - name: Install deeplay if: ${{ matrix.install-deeplay == 'deeplay' }} run: | - python -m pip install deeplay + python -m pip install setuptools - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From 298bce0c83743c6427473f900666a0bd05a77893 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 19:56:30 +0100 Subject: [PATCH 22/36] Update python-app.yml --- .github/workflows/python-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 85411b810..b02a0032f 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -34,7 +34,7 @@ jobs: - name: Install deeplay if: ${{ matrix.install-deeplay == 'deeplay' }} run: | - python -m pip install setuptools + python -m pip install deeplay - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From 6d5f055a93a70545c77f33ea5c9d286d476debd8 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 19:57:49 +0100 Subject: [PATCH 23/36] Update __init__.py --- deeptrack/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index 4203a44b8..5683c017e 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -7,7 +7,7 @@ units = UnitRegistry(pint_definitions.split("\n")) -# Check if tensorflow is installed without importing it +'''# Check if tensorflow is installed without importing it import pkg_resources installed = [pkg.key for pkg in pkg_resources.working_set] @@ -23,7 +23,7 @@ HAS_TORCH = False if HAS_TENSORFLOW and HAS_TORCH: - import torch # torch must be imported before tensorflow + import torch # torch must be imported before tensorflow''' from deeptrack.features import * from deeptrack.aberrations import * From 3393ded505313fdf276ccd3e8bea53496360b124 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 20:06:26 +0100 Subject: [PATCH 24/36] removed pkg_resources --- deeptrack/__init__.py | 2 +- deeptrack/models/utils.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index 5683c017e..1ce5ebfe6 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -23,7 +23,7 @@ HAS_TORCH = False if HAS_TENSORFLOW and HAS_TORCH: - import torch # torch must be imported before tensorflow''' + import torch # torch must be imported before tensorflow'''#TBE from deeptrack.features import * from deeptrack.aberrations import * diff --git a/deeptrack/models/utils.py b/deeptrack/models/utils.py index 50724fa84..f56769ada 100644 --- a/deeptrack/models/utils.py +++ b/deeptrack/models/utils.py @@ -21,9 +21,9 @@ ImportWarning, ) -import pkg_resources +'''import pkg_resources -installed_pkg = [pkg.key for pkg in pkg_resources.working_set] +installed_pkg = [pkg.key for pkg in pkg_resources.working_set]'''#TBE __all__ = [ "compile", @@ -96,8 +96,8 @@ def _get_norm_by_name(x): """Returns a normalization layer by name.""" if hasattr(layers, x): return getattr(layers, x) - elif "tensorflow-addons" in installed_pkg and hasattr(tfa.layers, x): - return getattr(tfa.layers, x) + '''elif "tensorflow-addons" in installed_pkg and hasattr(tfa.layers, x): + return getattr(tfa.layers, x)'''#TBE else: raise ValueError(f"Unknown normalization {x}.") From 0277bae99eca67d7bede16e520a4636c79c5ca62 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 21:45:42 +0100 Subject: [PATCH 25/36] Update __init__.py --- deeptrack/__init__.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index 1ce5ebfe6..858b16fcd 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -1,11 +1,22 @@ # flake8: noqa -from pint import UnitRegistry, Context -from .backend.pint_definition import pint_definitions import lazy_import -import importlib +from pint import UnitRegistry +'''units = UnitRegistry(pint_definitions.split("\n"))'''#TBE -units = UnitRegistry(pint_definitions.split("\n")) +# Create a UnitRegistry and add custom units. +units = UnitRegistry() +custom_units = [ + "pixel = 1 micrometer = px", ### Can this be erased? + "xpixel = 1 micrometer = xpx", ### why these are defined as 1 um? + "ypixel = 1 micrometer = ypx", + "zpixel = 1 micrometer = zpx", + "simulation_xpixel = 1 micrometer = sxpx", + "simulation_ypixel = 1 micrometer = sypx", + "simulation_zpixel = 1 micrometer = szpx" +] +for unit in custom_units: + units.define(unit) '''# Check if tensorflow is installed without importing it import pkg_resources From 4217249d471a7ebe3a28497b5d91e55ca051cac8 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 21:45:45 +0100 Subject: [PATCH 26/36] Delete pint_definition.py --- deeptrack/backend/pint_definition.py | 943 --------------------------- 1 file changed, 943 deletions(-) delete mode 100644 deeptrack/backend/pint_definition.py diff --git a/deeptrack/backend/pint_definition.py b/deeptrack/backend/pint_definition.py deleted file mode 100644 index f8137bd07..000000000 --- a/deeptrack/backend/pint_definition.py +++ /dev/null @@ -1,943 +0,0 @@ -pint_constants = """ -# Default Pint constants definition file -# Based on the International System of Units -# Language: english -# Source: https://physics.nist.gov/cuu/Constants/ -# https://physics.nist.gov/PhysRefData/XrayTrans/Html/search.html -# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. - -#### MATHEMATICAL CONSTANTS #### -# As computed by Maxima with fpprec:50 - -pi = 3.1415926535897932384626433832795028841971693993751 = π # pi -tansec = 4.8481368111333441675396429478852851658848753880815e-6 # tangent of 1 arc-second ~ arc_second/radian -ln10 = 2.3025850929940456840179914546843642076011014886288 # natural logarithm of 10 -wien_x = 4.9651142317442763036987591313228939440555849867973 # solution to (x-5)*exp(x)+5 = 0 => x = W(5/exp(5))+5 -wien_u = 2.8214393721220788934031913302944851953458817440731 # solution to (u-3)*exp(u)+3 = 0 => u = W(3/exp(3))+3 -eulers_number = 2.71828182845904523536028747135266249775724709369995 - -#### DEFINED EXACT CONSTANTS #### - -speed_of_light = 299792458 m/s = c = c_0 # since 1983 -planck_constant = 6.62607015e-34 J s = h # since May 2019 -elementary_charge = 1.602176634e-19 C = e # since May 2019 -avogadro_number = 6.02214076e23 # since May 2019 -boltzmann_constant = 1.380649e-23 J K^-1 = k = k_B # since May 2019 -standard_gravity = 9.80665 m/s^2 = g_0 = g0 = g_n = gravity # since 1901 -standard_atmosphere = 1.01325e5 Pa = atm = atmosphere # since 1954 -conventional_josephson_constant = 4.835979e14 Hz / V = K_J90 # since Jan 1990 -conventional_von_klitzing_constant = 2.5812807e4 ohm = R_K90 # since Jan 1990 - -#### DERIVED EXACT CONSTANTS #### -# Floating-point conversion may introduce inaccuracies - -zeta = c / (cm/s) = ζ -dirac_constant = h / (2 * π) = ħ = hbar = atomic_unit_of_action = a_u_action -avogadro_constant = avogadro_number * mol^-1 = N_A -molar_gas_constant = k * N_A = R -faraday_constant = e * N_A -conductance_quantum = 2 * e ** 2 / h = G_0 -magnetic_flux_quantum = h / (2 * e) = Φ_0 = Phi_0 -josephson_constant = 2 * e / h = K_J -von_klitzing_constant = h / e ** 2 = R_K -stefan_boltzmann_constant = 2 / 15 * π ** 5 * k ** 4 / (h ** 3 * c ** 2) = σ = sigma -first_radiation_constant = 2 * π * h * c ** 2 = c_1 -second_radiation_constant = h * c / k = c_2 -wien_wavelength_displacement_law_constant = h * c / (k * wien_x) -wien_frequency_displacement_law_constant = wien_u * k / h - -#### MEASURED CONSTANTS #### -# Recommended CODATA-2018 values -# To some extent, what is measured and what is derived is a bit arbitrary. -# The choice of measured constants is based on convenience and on available uncertainty. -# The uncertainty in the last significant digits is given in parentheses as a comment. - -newtonian_constant_of_gravitation = 6.67430e-11 m^3/(kg s^2) = _ = gravitational_constant # (15) -rydberg_constant = 1.0973731568160e7 * m^-1 = R_∞ = R_inf # (21) -electron_g_factor = -2.00231930436256 = g_e # (35) -atomic_mass_constant = 1.66053906660e-27 kg = m_u # (50) -electron_mass = 9.1093837015e-31 kg = m_e = atomic_unit_of_mass = a_u_mass # (28) -proton_mass = 1.67262192369e-27 kg = m_p # (51) -neutron_mass = 1.67492749804e-27 kg = m_n # (95) -lattice_spacing_of_Si = 1.920155716e-10 m = d_220 # (32) -K_alpha_Cu_d_220 = 0.80232719 # (22) -K_alpha_Mo_d_220 = 0.36940604 # (19) -K_alpha_W_d_220 = 0.108852175 # (98) - -#### DERIVED CONSTANTS #### - -fine_structure_constant = (2 * h * R_inf / (m_e * c)) ** 0.5 = α = alpha -vacuum_permeability = 2 * α * h / (e ** 2 * c) = µ_0 = mu_0 = mu0 = magnetic_constant -vacuum_permittivity = e ** 2 / (2 * α * h * c) = ε_0 = epsilon_0 = eps_0 = eps0 = electric_constant -impedance_of_free_space = 2 * α * h / e ** 2 = Z_0 = characteristic_impedance_of_vacuum -coulomb_constant = α * hbar * c / e ** 2 = k_C -classical_electron_radius = α * hbar / (m_e * c) = r_e -thomson_cross_section = 8 / 3 * π * r_e ** 2 = σ_e = sigma_e -""" - -pint_definitions = f""" -# Default Pint units definition file -# Based on the International System of Units -# Language: english -# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. - -# Syntax -# ====== -# Units -# ----- -# = [= ] [= ] [ = ] [...] -# -# The canonical name and aliases should be expressed in singular form. -# Pint automatically deals with plurals built by adding 's' to the singular form; plural -# forms that don't follow this rule should be instead explicitly listed as aliases. -# -# If a unit has no symbol and one wants to define aliases, then the symbol should be -# conventionally set to _. -# -# Example: -# millennium = 1e3 * year = _ = millennia -# -# -# Prefixes -# -------- -# - = [= ] [= ] [ = ] [...] -# -# Example: -# deca- = 1e+1 = da- = deka- -# -# -# Derived dimensions -# ------------------ -# [dimension name] = -# -# Example: -# [density] = [mass] / [volume] -# -# Note that primary dimensions don't need to be declared; they can be -# defined for the first time in a unit definition. -# E.g. see below `meter = [length]` -# -# -# Additional aliases -# ------------------ -# @alias = [ = ] [...] -# -# Used to add aliases to already existing unit definitions. -# Particularly useful when one wants to enrich definitions -# from defaults_en.txt with custom aliases. -# -# Example: -# @alias meter = my_meter - -# See also: https://pint.readthedocs.io/en/latest/defining.html - -@defaults - group = international - system = mks -@end - - -#### PREFIXES #### - -# decimal prefixes -yocto- = 1e-24 = y- -zepto- = 1e-21 = z- -atto- = 1e-18 = a- -femto- = 1e-15 = f- -pico- = 1e-12 = p- -nano- = 1e-9 = n- -micro- = 1e-6 = µ- = u- -milli- = 1e-3 = m- -centi- = 1e-2 = c- -deci- = 1e-1 = d- -deca- = 1e+1 = da- = deka- -hecto- = 1e2 = h- -kilo- = 1e3 = k- -mega- = 1e6 = M- -giga- = 1e9 = G- -tera- = 1e12 = T- -peta- = 1e15 = P- -exa- = 1e18 = E- -zetta- = 1e21 = Z- -yotta- = 1e24 = Y- - -# binary_prefixes -kibi- = 2**10 = Ki- -mebi- = 2**20 = Mi- -gibi- = 2**30 = Gi- -tebi- = 2**40 = Ti- -pebi- = 2**50 = Pi- -exbi- = 2**60 = Ei- -zebi- = 2**70 = Zi- -yobi- = 2**80 = Yi- - -# extra_prefixes -semi- = 0.5 = _ = demi- -sesqui- = 1.5 - - -#### BASE UNITS #### - -meter = [length] = m = metre -second = [time] = s = sec -ampere = [current] = A = amp -candela = [luminosity] = cd = candle -gram = [mass] = g -mole = [substance] = mol -kelvin = [temperature]; offset: 0 = K = degK = °K = degree_Kelvin = degreeK # older names supported for compatibility -radian = [] = rad -bit = [] -count = [] - - -#### CONSTANTS #### - -{pint_constants} - - -#### UNITS #### -# Common and less common, grouped by quantity. -# Conversion factors are exact (except when noted), -# although floating-point conversion may introduce inaccuracies - -# Angle -turn = 2 * π * radian = _ = revolution = cycle = circle -degree = π / 180 * radian = deg = arcdeg = arcdegree = angular_degree -arcminute = degree / 60 = arcmin = arc_minute = angular_minute -arcsecond = arcminute / 60 = arcsec = arc_second = angular_second -milliarcsecond = 1e-3 * arcsecond = mas -grade = π / 200 * radian = grad = gon -mil = π / 32000 * radian - -# Solid angle -steradian = radian ** 2 = sr -square_degree = (π / 180) ** 2 * sr = sq_deg = sqdeg - -# Information -baud = bit / second = Bd = bps - -byte = 8 * bit = B = octet -# byte = 8 * bit = _ = octet -## NOTE: B (byte) symbol can conflict with Bell - -# Length -angstrom = 1e-10 * meter = Å = ångström = Å -micron = micrometer = µ -fermi = femtometer = fm -light_year = speed_of_light * julian_year = ly = lightyear -astronomical_unit = 149597870700 * meter = au # since Aug 2012 -parsec = 1 / tansec * astronomical_unit = pc -nautical_mile = 1852 * meter = nmi -bohr = hbar / (alpha * m_e * c) = a_0 = a0 = bohr_radius = atomic_unit_of_length = a_u_length -x_unit_Cu = K_alpha_Cu_d_220 * d_220 / 1537.4 = Xu_Cu -x_unit_Mo = K_alpha_Mo_d_220 * d_220 / 707.831 = Xu_Mo -angstrom_star = K_alpha_W_d_220 * d_220 / 0.2090100 = Å_star -planck_length = (hbar * gravitational_constant / c ** 3) ** 0.5 - -# Mass -metric_ton = 1e3 * kilogram = t = tonne -unified_atomic_mass_unit = atomic_mass_constant = u = amu -dalton = atomic_mass_constant = Da -grain = 64.79891 * milligram = gr -gamma_mass = microgram -carat = 200 * milligram = ct = karat -planck_mass = (hbar * c / gravitational_constant) ** 0.5 - -# Time -minute = 60 * second = min -hour = 60 * minute = hr -day = 24 * hour = d -week = 7 * day -fortnight = 2 * week -year = 365.25 * day = a = yr = julian_year -month = year / 12 - -# decade = 10 * year -## NOTE: decade [time] can conflict with decade [dimensionless] - -century = 100 * year = _ = centuries -millennium = 1e3 * year = _ = millennia -eon = 1e9 * year -shake = 1e-8 * second -svedberg = 1e-13 * second -atomic_unit_of_time = hbar / E_h = a_u_time -gregorian_year = 365.2425 * day -sidereal_year = 365.256363004 * day # approximate, as of J2000 epoch -tropical_year = 365.242190402 * day # approximate, as of J2000 epoch -common_year = 365 * day -leap_year = 366 * day -sidereal_day = day / 1.00273790935079524 # approximate -sidereal_month = 27.32166155 * day # approximate -tropical_month = 27.321582 * day # approximate -synodic_month = 29.530589 * day = _ = lunar_month # approximate -planck_time = (hbar * gravitational_constant / c ** 5) ** 0.5 - -# Temperature -degree_Celsius = kelvin; offset: 273.15 = °C = celsius = degC = degreeC -degree_Rankine = 5 / 9 * kelvin; offset: 0 = °R = rankine = degR = degreeR -degree_Fahrenheit = 5 / 9 * kelvin; offset: 233.15 + 200 / 9 = °F = fahrenheit = degF = degreeF -degree_Reaumur = 4 / 5 * kelvin; offset: 273.15 = °Re = reaumur = degRe = degreeRe = degree_Réaumur = réaumur -atomic_unit_of_temperature = E_h / k = a_u_temp -planck_temperature = (hbar * c ** 5 / gravitational_constant / k ** 2) ** 0.5 - -# Area -[area] = [length] ** 2 -are = 100 * meter ** 2 -barn = 1e-28 * meter ** 2 = b -darcy = centipoise * centimeter ** 2 / (second * atmosphere) -hectare = 100 * are = ha - -# Volume -[volume] = [length] ** 3 -liter = decimeter ** 3 = l = L = litre -cubic_centimeter = centimeter ** 3 = cc -lambda = microliter = λ -stere = meter ** 3 - -# Frequency -[frequency] = 1 / [time] -hertz = 1 / second = Hz -revolutions_per_minute = revolution / minute = rpm -revolutions_per_second = revolution / second = rps -counts_per_second = count / second = cps - -# Wavenumber -[wavenumber] = 1 / [length] -reciprocal_centimeter = 1 / cm = cm_1 = kayser - -# Velocity -[velocity] = [length] / [time] -[speed] = [velocity] -knot = nautical_mile / hour = kt = knot_international = international_knot -mile_per_hour = mile / hour = mph = MPH -kilometer_per_hour = kilometer / hour = kph = KPH -kilometer_per_second = kilometer / second = kps -meter_per_second = meter / second = mps -foot_per_second = foot / second = fps - -# Acceleration -[acceleration] = [velocity] / [time] -galileo = centimeter / second ** 2 = Gal - -# Force -[force] = [mass] * [acceleration] -newton = kilogram * meter / second ** 2 = N -dyne = gram * centimeter / second ** 2 = dyn -force_kilogram = g_0 * kilogram = kgf = kilogram_force = pond -force_gram = g_0 * gram = gf = gram_force -force_metric_ton = g_0 * metric_ton = tf = metric_ton_force = force_t = t_force -atomic_unit_of_force = E_h / a_0 = a_u_force - -# Energy -[energy] = [force] * [length] -joule = newton * meter = J -erg = dyne * centimeter -watt_hour = watt * hour = Wh = watthour -electron_volt = e * volt = eV -rydberg = h * c * R_inf = Ry -hartree = 2 * rydberg = E_h = Eh = hartree_energy = atomic_unit_of_energy = a_u_energy -calorie = 4.184 * joule = cal = thermochemical_calorie = cal_th -international_calorie = 4.1868 * joule = cal_it = international_steam_table_calorie -fifteen_degree_calorie = 4.1855 * joule = cal_15 -british_thermal_unit = 1055.056 * joule = Btu = BTU = Btu_iso -international_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * international_calorie = Btu_it -thermochemical_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * calorie = Btu_th -quadrillion_Btu = 1e15 * Btu = quad -therm = 1e5 * Btu = thm = EC_therm -US_therm = 1.054804e8 * joule # approximate, no exact definition -ton_TNT = 1e9 * calorie = tTNT -tonne_of_oil_equivalent = 1e10 * international_calorie = toe -atmosphere_liter = atmosphere * liter = atm_l - -# Power -[power] = [energy] / [time] -watt = joule / second = W -volt_ampere = volt * ampere = VA -horsepower = 550 * foot * force_pound / second = hp = UK_horsepower = hydraulic_horsepower -boiler_horsepower = 33475 * Btu / hour # unclear which Btu -metric_horsepower = 75 * force_kilogram * meter / second -electrical_horsepower = 746 * watt -refrigeration_ton = 12e3 * Btu / hour = _ = ton_of_refrigeration # approximate, no exact definition -standard_liter_per_minute = atmosphere * liter / minute = slpm = slm -conventional_watt_90 = K_J90 ** 2 * R_K90 / (K_J ** 2 * R_K) * watt = W_90 - -# Momentum -[momentum] = [length] * [mass] / [time] - -# Density (as auxiliary for pressure) -[density] = [mass] / [volume] -mercury = 13.5951 * kilogram / liter = Hg = Hg_0C = Hg_32F = conventional_mercury -water = 1.0 * kilogram / liter = H2O = conventional_water -mercury_60F = 13.5568 * kilogram / liter = Hg_60F # approximate -water_39F = 0.999972 * kilogram / liter = water_4C # approximate -water_60F = 0.999001 * kilogram / liter # approximate - -# Pressure -[pressure] = [force] / [area] -pascal = newton / meter ** 2 = Pa -barye = dyne / centimeter ** 2 = Ba = barie = barad = barrie = baryd -bar = 1e5 * pascal -technical_atmosphere = kilogram * g_0 / centimeter ** 2 = at -torr = atm / 760 -pound_force_per_square_inch = force_pound / inch ** 2 = psi -kip_per_square_inch = kip / inch ** 2 = ksi -millimeter_Hg = millimeter * Hg * g_0 = mmHg = mm_Hg = millimeter_Hg_0C -centimeter_Hg = centimeter * Hg * g_0 = cmHg = cm_Hg = centimeter_Hg_0C -inch_Hg = inch * Hg * g_0 = inHg = in_Hg = inch_Hg_32F -inch_Hg_60F = inch * Hg_60F * g_0 -inch_H2O_39F = inch * water_39F * g_0 -inch_H2O_60F = inch * water_60F * g_0 -foot_H2O = foot * water * g_0 = ftH2O = feet_H2O -centimeter_H2O = centimeter * water * g_0 = cmH2O = cm_H2O -sound_pressure_level = 20e-6 * pascal = SPL - -# Torque -[torque] = [force] * [length] -foot_pound = foot * force_pound = ft_lb = footpound - -# Viscosity -[viscosity] = [pressure] * [time] -poise = 0.1 * Pa * second = P -reyn = psi * second - -# Kinematic viscosity -[kinematic_viscosity] = [area] / [time] -stokes = centimeter ** 2 / second = St - -# Fluidity -[fluidity] = 1 / [viscosity] -rhe = 1 / poise - -# Amount of substance -particle = 1 / N_A = _ = molec = molecule - -# Concentration -[concentration] = [substance] / [volume] -molar = mole / liter = M - -# Catalytic activity -[activity] = [substance] / [time] -katal = mole / second = kat -enzyme_unit = micromole / minute = U = enzymeunit - -# Entropy -[entropy] = [energy] / [temperature] -clausius = calorie / kelvin = Cl - -# Molar entropy -[molar_entropy] = [entropy] / [substance] -entropy_unit = calorie / kelvin / mole = eu - -# Radiation -becquerel = counts_per_second = Bq -curie = 3.7e10 * becquerel = Ci -rutherford = 1e6 * becquerel = Rd -gray = joule / kilogram = Gy -sievert = joule / kilogram = Sv -rads = 0.01 * gray -rem = 0.01 * sievert -roentgen = 2.58e-4 * coulomb / kilogram = _ = röntgen # approximate, depends on medium - -# Heat transimission -[heat_transmission] = [energy] / [area] -peak_sun_hour = 1e3 * watt_hour / meter ** 2 = PSH -langley = thermochemical_calorie / centimeter ** 2 = Ly - -# Luminance -[luminance] = [luminosity] / [area] -nit = candela / meter ** 2 -stilb = candela / centimeter ** 2 -lambert = 1 / π * candela / centimeter ** 2 - -# Luminous flux -[luminous_flux] = [luminosity] -lumen = candela * steradian = lm - -# Illuminance -[illuminance] = [luminous_flux] / [area] -lux = lumen / meter ** 2 = lx - -# Intensity -[intensity] = [power] / [area] -atomic_unit_of_intensity = 0.5 * ε_0 * c * atomic_unit_of_electric_field ** 2 = a_u_intensity - -# Current -biot = 10 * ampere = Bi -abampere = biot = abA -atomic_unit_of_current = e / atomic_unit_of_time = a_u_current -mean_international_ampere = mean_international_volt / mean_international_ohm = A_it -US_international_ampere = US_international_volt / US_international_ohm = A_US -conventional_ampere_90 = K_J90 * R_K90 / (K_J * R_K) * ampere = A_90 -planck_current = (c ** 6 / gravitational_constant / k_C) ** 0.5 - -# Charge -[charge] = [current] * [time] -coulomb = ampere * second = C -abcoulomb = 10 * C = abC -faraday = e * N_A * mole -conventional_coulomb_90 = K_J90 * R_K90 / (K_J * R_K) * coulomb = C_90 -ampere_hour = ampere * hour = Ah - -# Electric potential -[electric_potential] = [energy] / [charge] -volt = joule / coulomb = V -abvolt = 1e-8 * volt = abV -mean_international_volt = 1.00034 * volt = V_it # approximate -US_international_volt = 1.00033 * volt = V_US # approximate -conventional_volt_90 = K_J90 / K_J * volt = V_90 - -# Electric field -[electric_field] = [electric_potential] / [length] -atomic_unit_of_electric_field = e * k_C / a_0 ** 2 = a_u_electric_field - -# Electric displacement field -[electric_displacement_field] = [charge] / [area] - -# Resistance -[resistance] = [electric_potential] / [current] -ohm = volt / ampere = Ω -abohm = 1e-9 * ohm = abΩ -mean_international_ohm = 1.00049 * ohm = Ω_it = ohm_it # approximate -US_international_ohm = 1.000495 * ohm = Ω_US = ohm_US # approximate -conventional_ohm_90 = R_K / R_K90 * ohm = Ω_90 = ohm_90 - -# Resistivity -[resistivity] = [resistance] * [length] - -# Conductance -[conductance] = [current] / [electric_potential] -siemens = ampere / volt = S = mho -absiemens = 1e9 * siemens = abS = abmho - -# Capacitance -[capacitance] = [charge] / [electric_potential] -farad = coulomb / volt = F -abfarad = 1e9 * farad = abF -conventional_farad_90 = R_K90 / R_K * farad = F_90 - -# Inductance -[inductance] = [magnetic_flux] / [current] -henry = weber / ampere = H -abhenry = 1e-9 * henry = abH -conventional_henry_90 = R_K / R_K90 * henry = H_90 - -# Magnetic flux -[magnetic_flux] = [electric_potential] * [time] -weber = volt * second = Wb -unit_pole = µ_0 * biot * centimeter - -# Magnetic field -[magnetic_field] = [magnetic_flux] / [area] -tesla = weber / meter ** 2 = T -gamma = 1e-9 * tesla = γ - -# Magnetomotive force -[magnetomotive_force] = [current] -ampere_turn = ampere = At -biot_turn = biot -gilbert = 1 / (4 * π) * biot_turn = Gb - -# Magnetic field strength -[magnetic_field_strength] = [current] / [length] - -# Electric dipole moment -[electric_dipole] = [charge] * [length] -debye = 1e-9 / ζ * coulomb * angstrom = D # formally 1 D = 1e-10 Fr*Å, but we generally want to use it outside the Gaussian context - -# Electric quadrupole moment -[electric_quadrupole] = [charge] * [area] -buckingham = debye * angstrom - -# Magnetic dipole moment -[magnetic_dipole] = [current] * [area] -bohr_magneton = e * hbar / (2 * m_e) = µ_B = mu_B -nuclear_magneton = e * hbar / (2 * m_p) = µ_N = mu_N - -# Logaritmic Unit Definition -# Unit = scale; logbase; logfactor -# x_dB = [logfactor] * log( x_lin / [scale] ) / log( [logbase] ) - -# Logaritmic Units of dimensionless quantity: [ https://en.wikipedia.org/wiki/Level_(logarithmic_quantity) ] - -decibelmilliwatt = 1e-3 watt; logbase: 10; logfactor: 10 = dBm -decibelmicrowatt = 1e-6 watt; logbase: 10; logfactor: 10 = dBu - -decibel = 1 ; logbase: 10; logfactor: 10 = dB -# bell = 1 ; logbase: 10; logfactor: = B -## NOTE: B (Bell) symbol conflicts with byte - -decade = 1 ; logbase: 10; logfactor: 1 -## NOTE: decade [time] can conflict with decade [dimensionless] - -octave = 1 ; logbase: 2; logfactor: 1 = oct - -neper = 1 ; logbase: 2.71828182845904523536028747135266249775724709369995; logfactor: 0.5 = Np -# neper = 1 ; logbase: eulers_number; logfactor: 0.5 = Np - -#### UNIT GROUPS #### -# Mostly for length, area, volume, mass, force -# (customary or specialized units) - -@group USCSLengthInternational - thou = 1e-3 * inch = th = mil_length - inch = yard / 36 = in = international_inch = inches = international_inches - hand = 4 * inch - foot = yard / 3 = ft = international_foot = feet = international_feet - yard = 0.9144 * meter = yd = international_yard # since Jul 1959 - mile = 1760 * yard = mi = international_mile - - circular_mil = π / 4 * mil_length ** 2 = cmil - square_inch = inch ** 2 = sq_in = square_inches - square_foot = foot ** 2 = sq_ft = square_feet - square_yard = yard ** 2 = sq_yd - square_mile = mile ** 2 = sq_mi - - cubic_inch = in ** 3 = cu_in - cubic_foot = ft ** 3 = cu_ft = cubic_feet - cubic_yard = yd ** 3 = cu_yd -@end - -@group USCSLengthSurvey - link = 1e-2 * chain = li = survey_link - survey_foot = 1200 / 3937 * meter = sft - fathom = 6 * survey_foot - rod = 16.5 * survey_foot = rd = pole = perch - chain = 4 * rod - furlong = 40 * rod = fur - cables_length = 120 * fathom - survey_mile = 5280 * survey_foot = smi = us_statute_mile - league = 3 * survey_mile - - square_rod = rod ** 2 = sq_rod = sq_pole = sq_perch - acre = 10 * chain ** 2 - square_survey_mile = survey_mile ** 2 = _ = section - square_league = league ** 2 - - acre_foot = acre * survey_foot = _ = acre_feet -@end - -@group USCSDryVolume - dry_pint = bushel / 64 = dpi = US_dry_pint - dry_quart = bushel / 32 = dqt = US_dry_quart - dry_gallon = bushel / 8 = dgal = US_dry_gallon - peck = bushel / 4 = pk - bushel = 2150.42 cubic_inch = bu - dry_barrel = 7056 cubic_inch = _ = US_dry_barrel - board_foot = ft * ft * in = FBM = board_feet = BF = BDFT = super_foot = superficial_foot = super_feet = superficial_feet -@end - -@group USCSLiquidVolume - minim = pint / 7680 - fluid_dram = pint / 128 = fldr = fluidram = US_fluid_dram = US_liquid_dram - fluid_ounce = pint / 16 = floz = US_fluid_ounce = US_liquid_ounce - gill = pint / 4 = gi = liquid_gill = US_liquid_gill - pint = quart / 2 = pt = liquid_pint = US_pint - fifth = gallon / 5 = _ = US_liquid_fifth - quart = gallon / 4 = qt = liquid_quart = US_liquid_quart - gallon = 231 * cubic_inch = gal = liquid_gallon = US_liquid_gallon -@end - -@group USCSVolumeOther - teaspoon = fluid_ounce / 6 = tsp - tablespoon = fluid_ounce / 2 = tbsp - shot = 3 * tablespoon = jig = US_shot - cup = pint / 2 = cp = liquid_cup = US_liquid_cup - barrel = 31.5 * gallon = bbl - oil_barrel = 42 * gallon = oil_bbl - beer_barrel = 31 * gallon = beer_bbl - hogshead = 63 * gallon -@end - -@group Avoirdupois - dram = pound / 256 = dr = avoirdupois_dram = avdp_dram = drachm - ounce = pound / 16 = oz = avoirdupois_ounce = avdp_ounce - pound = 7e3 * grain = lb = avoirdupois_pound = avdp_pound - stone = 14 * pound - quarter = 28 * stone - bag = 94 * pound - hundredweight = 100 * pound = cwt = short_hundredweight - long_hundredweight = 112 * pound - ton = 2e3 * pound = _ = short_ton - long_ton = 2240 * pound - slug = g_0 * pound * second ** 2 / foot - slinch = g_0 * pound * second ** 2 / inch = blob = slugette - - force_ounce = g_0 * ounce = ozf = ounce_force - force_pound = g_0 * pound = lbf = pound_force - force_ton = g_0 * ton = _ = ton_force = force_short_ton = short_ton_force - force_long_ton = g_0 * long_ton = _ = long_ton_force - kip = 1e3 * force_pound - poundal = pound * foot / second ** 2 = pdl -@end - -@group AvoirdupoisUK using Avoirdupois - UK_hundredweight = long_hundredweight = UK_cwt - UK_ton = long_ton - UK_force_ton = force_long_ton = _ = UK_ton_force -@end - -@group AvoirdupoisUS using Avoirdupois - US_hundredweight = hundredweight = US_cwt - US_ton = ton - US_force_ton = force_ton = _ = US_ton_force -@end - -@group Troy - pennyweight = 24 * grain = dwt - troy_ounce = 480 * grain = toz = ozt - troy_pound = 12 * troy_ounce = tlb = lbt -@end - -@group Apothecary - scruple = 20 * grain - apothecary_dram = 3 * scruple = ap_dr - apothecary_ounce = 8 * apothecary_dram = ap_oz - apothecary_pound = 12 * apothecary_ounce = ap_lb -@end - -@group ImperialVolume - imperial_minim = imperial_fluid_ounce / 480 - imperial_fluid_scruple = imperial_fluid_ounce / 24 - imperial_fluid_drachm = imperial_fluid_ounce / 8 = imperial_fldr = imperial_fluid_dram - imperial_fluid_ounce = imperial_pint / 20 = imperial_floz = UK_fluid_ounce - imperial_gill = imperial_pint / 4 = imperial_gi = UK_gill - imperial_cup = imperial_pint / 2 = imperial_cp = UK_cup - imperial_pint = imperial_gallon / 8 = imperial_pt = UK_pint - imperial_quart = imperial_gallon / 4 = imperial_qt = UK_quart - imperial_gallon = 4.54609 * liter = imperial_gal = UK_gallon - imperial_peck = 2 * imperial_gallon = imperial_pk = UK_pk - imperial_bushel = 8 * imperial_gallon = imperial_bu = UK_bushel - imperial_barrel = 36 * imperial_gallon = imperial_bbl = UK_bbl -@end - -@group Textile - tex = gram / kilometer = Tt - dtex = decitex - denier = gram / (9 * kilometer) = den = Td - jute = pound / (14400 * yard) = Tj - aberdeen = jute = Ta - RKM = gf / tex - - number_english = 840 * yard / pound = Ne = NeC = ECC - number_meter = kilometer / kilogram = Nm -@end - - -#### CGS ELECTROMAGNETIC UNITS #### - -# === Gaussian system of units === -@group Gaussian - franklin = erg ** 0.5 * centimeter ** 0.5 = Fr = statcoulomb = statC = esu - statvolt = erg / franklin = statV - statampere = franklin / second = statA - gauss = dyne / franklin = G - maxwell = gauss * centimeter ** 2 = Mx - oersted = dyne / maxwell = Oe = ørsted - statohm = statvolt / statampere = statΩ - statfarad = franklin / statvolt = statF - statmho = statampere / statvolt -@end -# Note this system is not commensurate with SI, as ε_0 and µ_0 disappear; -# some quantities with different dimensions in SI have the same -# dimensions in the Gaussian system (e.g. [Mx] = [Fr], but [Wb] != [C]), -# and therefore the conversion factors depend on the context (not in pint sense) -[gaussian_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] -[gaussian_current] = [gaussian_charge] / [time] -[gaussian_electric_potential] = [gaussian_charge] / [length] -[gaussian_electric_field] = [gaussian_electric_potential] / [length] -[gaussian_electric_displacement_field] = [gaussian_charge] / [area] -[gaussian_electric_flux] = [gaussian_charge] -[gaussian_electric_dipole] = [gaussian_charge] * [length] -[gaussian_electric_quadrupole] = [gaussian_charge] * [area] -[gaussian_magnetic_field] = [force] / [gaussian_charge] -[gaussian_magnetic_field_strength] = [gaussian_magnetic_field] -[gaussian_magnetic_flux] = [gaussian_magnetic_field] * [area] -[gaussian_magnetic_dipole] = [energy] / [gaussian_magnetic_field] -[gaussian_resistance] = [gaussian_electric_potential] / [gaussian_current] -[gaussian_resistivity] = [gaussian_resistance] * [length] -[gaussian_capacitance] = [gaussian_charge] / [gaussian_electric_potential] -[gaussian_inductance] = [gaussian_electric_potential] * [time] / [gaussian_current] -[gaussian_conductance] = [gaussian_current] / [gaussian_electric_potential] -@context Gaussian = Gau - [gaussian_charge] -> [charge]: value / k_C ** 0.5 - [charge] -> [gaussian_charge]: value * k_C ** 0.5 - [gaussian_current] -> [current]: value / k_C ** 0.5 - [current] -> [gaussian_current]: value * k_C ** 0.5 - [gaussian_electric_potential] -> [electric_potential]: value * k_C ** 0.5 - [electric_potential] -> [gaussian_electric_potential]: value / k_C ** 0.5 - [gaussian_electric_field] -> [electric_field]: value * k_C ** 0.5 - [electric_field] -> [gaussian_electric_field]: value / k_C ** 0.5 - [gaussian_electric_displacement_field] -> [electric_displacement_field]: value / (4 * π / ε_0) ** 0.5 - [electric_displacement_field] -> [gaussian_electric_displacement_field]: value * (4 * π / ε_0) ** 0.5 - [gaussian_electric_dipole] -> [electric_dipole]: value / k_C ** 0.5 - [electric_dipole] -> [gaussian_electric_dipole]: value * k_C ** 0.5 - [gaussian_electric_quadrupole] -> [electric_quadrupole]: value / k_C ** 0.5 - [electric_quadrupole] -> [gaussian_electric_quadrupole]: value * k_C ** 0.5 - [gaussian_magnetic_field] -> [magnetic_field]: value / (4 * π / µ_0) ** 0.5 - [magnetic_field] -> [gaussian_magnetic_field]: value * (4 * π / µ_0) ** 0.5 - [gaussian_magnetic_flux] -> [magnetic_flux]: value / (4 * π / µ_0) ** 0.5 - [magnetic_flux] -> [gaussian_magnetic_flux]: value * (4 * π / µ_0) ** 0.5 - [gaussian_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π * µ_0) ** 0.5 - [magnetic_field_strength] -> [gaussian_magnetic_field_strength]: value * (4 * π * µ_0) ** 0.5 - [gaussian_magnetic_dipole] -> [magnetic_dipole]: value * (4 * π / µ_0) ** 0.5 - [magnetic_dipole] -> [gaussian_magnetic_dipole]: value / (4 * π / µ_0) ** 0.5 - [gaussian_resistance] -> [resistance]: value * k_C - [resistance] -> [gaussian_resistance]: value / k_C - [gaussian_resistivity] -> [resistivity]: value * k_C - [resistivity] -> [gaussian_resistivity]: value / k_C - [gaussian_capacitance] -> [capacitance]: value / k_C - [capacitance] -> [gaussian_capacitance]: value * k_C - [gaussian_inductance] -> [inductance]: value * k_C - [inductance] -> [gaussian_inductance]: value / k_C - [gaussian_conductance] -> [conductance]: value / k_C - [conductance] -> [gaussian_conductance]: value * k_C -@end - -# === ESU system of units === -# (where different from Gaussian) -# See note for Gaussian system too -@group ESU using Gaussian - statweber = statvolt * second = statWb - stattesla = statweber / centimeter ** 2 = statT - stathenry = statweber / statampere = statH -@end -[esu_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] -[esu_current] = [esu_charge] / [time] -[esu_electric_potential] = [esu_charge] / [length] -[esu_magnetic_flux] = [esu_electric_potential] * [time] -[esu_magnetic_field] = [esu_magnetic_flux] / [area] -[esu_magnetic_field_strength] = [esu_current] / [length] -[esu_magnetic_dipole] = [esu_current] * [area] -@context ESU = esu - [esu_magnetic_field] -> [magnetic_field]: value * k_C ** 0.5 - [magnetic_field] -> [esu_magnetic_field]: value / k_C ** 0.5 - [esu_magnetic_flux] -> [magnetic_flux]: value * k_C ** 0.5 - [magnetic_flux] -> [esu_magnetic_flux]: value / k_C ** 0.5 - [esu_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π / ε_0) ** 0.5 - [magnetic_field_strength] -> [esu_magnetic_field_strength]: value * (4 * π / ε_0) ** 0.5 - [esu_magnetic_dipole] -> [magnetic_dipole]: value / k_C ** 0.5 - [magnetic_dipole] -> [esu_magnetic_dipole]: value * k_C ** 0.5 -@end - - -#### CONVERSION CONTEXTS #### - -@context(n=1) spectroscopy = sp - # n index of refraction of the medium. - [length] <-> [frequency]: speed_of_light / n / value - [frequency] -> [energy]: planck_constant * value - [energy] -> [frequency]: value / planck_constant - # allow wavenumber / kayser - [wavenumber] <-> [length]: 1 / value -@end - -@context boltzmann - [temperature] -> [energy]: boltzmann_constant * value - [energy] -> [temperature]: value / boltzmann_constant -@end - -@context energy - [energy] -> [energy] / [substance]: value * N_A - [energy] / [substance] -> [energy]: value / N_A - [energy] -> [mass]: value / c ** 2 - [mass] -> [energy]: value * c ** 2 -@end - -@context(mw=0,volume=0,solvent_mass=0) chemistry = chem - # mw is the molecular weight of the species - # volume is the volume of the solution - # solvent_mass is the mass of solvent in the solution - - # moles -> mass require the molecular weight - [substance] -> [mass]: value * mw - [mass] -> [substance]: value / mw - - # moles/volume -> mass/volume and moles/mass -> mass/mass - # require the molecular weight - [substance] / [volume] -> [mass] / [volume]: value * mw - [mass] / [volume] -> [substance] / [volume]: value / mw - [substance] / [mass] -> [mass] / [mass]: value * mw - [mass] / [mass] -> [substance] / [mass]: value / mw - - # moles/volume -> moles requires the solution volume - [substance] / [volume] -> [substance]: value * volume - [substance] -> [substance] / [volume]: value / volume - - # moles/mass -> moles requires the solvent (usually water) mass - [substance] / [mass] -> [substance]: value * solvent_mass - [substance] -> [substance] / [mass]: value / solvent_mass - - # moles/mass -> moles/volume require the solvent mass and the volume - [substance] / [mass] -> [substance]/[volume]: value * solvent_mass / volume - [substance] / [volume] -> [substance] / [mass]: value / solvent_mass * volume - -@end - -@context textile - # Allow switching between Direct count system (i.e. tex) and - # Indirect count system (i.e. Ne, Nm) - [mass] / [length] <-> [length] / [mass]: 1 / value -@end - - -#### SYSTEMS OF UNITS #### - -@system SI - second - meter - kilogram - ampere - kelvin - mole - candela -@end - -@system mks using international - meter - kilogram - second -@end - -@system cgs using international, Gaussian, ESU - centimeter - gram - second -@end - -@system atomic using international - # based on unit m_e, e, hbar, k_C, k - bohr: meter - electron_mass: gram - atomic_unit_of_time: second - atomic_unit_of_current: ampere - atomic_unit_of_temperature: kelvin -@end - -@system Planck using international - # based on unit c, gravitational_constant, hbar, k_C, k - planck_length: meter - planck_mass: gram - planck_time: second - planck_current: ampere - planck_temperature: kelvin -@end - -@system imperial using ImperialVolume, USCSLengthInternational, AvoirdupoisUK - yard - pound -@end - -@system US using USCSLiquidVolume, USCSDryVolume, USCSVolumeOther, USCSLengthInternational, USCSLengthSurvey, AvoirdupoisUS - yard - pound -@end - -pixel = 1 micrometer = px -xpixel = 1 micrometer = xpx -ypixel = 1 micrometer = ypx -zpixel = 1 micrometer = zpx -simulation_xpixel = 1 micrometer = sxpx -simulation_ypixel = 1 micrometer = sypx -simulation_zpixel = 1 micrometer = szpx - -""" \ No newline at end of file From 28b6b6bdfa52f7e5c6bb2555f68ac30a14455393 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 21:54:06 +0100 Subject: [PATCH 27/36] Create pint_definition.py --- deeptrack/backend/pint_definition.py | 943 +++++++++++++++++++++++++++ 1 file changed, 943 insertions(+) create mode 100644 deeptrack/backend/pint_definition.py diff --git a/deeptrack/backend/pint_definition.py b/deeptrack/backend/pint_definition.py new file mode 100644 index 000000000..f8137bd07 --- /dev/null +++ b/deeptrack/backend/pint_definition.py @@ -0,0 +1,943 @@ +pint_constants = """ +# Default Pint constants definition file +# Based on the International System of Units +# Language: english +# Source: https://physics.nist.gov/cuu/Constants/ +# https://physics.nist.gov/PhysRefData/XrayTrans/Html/search.html +# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. + +#### MATHEMATICAL CONSTANTS #### +# As computed by Maxima with fpprec:50 + +pi = 3.1415926535897932384626433832795028841971693993751 = π # pi +tansec = 4.8481368111333441675396429478852851658848753880815e-6 # tangent of 1 arc-second ~ arc_second/radian +ln10 = 2.3025850929940456840179914546843642076011014886288 # natural logarithm of 10 +wien_x = 4.9651142317442763036987591313228939440555849867973 # solution to (x-5)*exp(x)+5 = 0 => x = W(5/exp(5))+5 +wien_u = 2.8214393721220788934031913302944851953458817440731 # solution to (u-3)*exp(u)+3 = 0 => u = W(3/exp(3))+3 +eulers_number = 2.71828182845904523536028747135266249775724709369995 + +#### DEFINED EXACT CONSTANTS #### + +speed_of_light = 299792458 m/s = c = c_0 # since 1983 +planck_constant = 6.62607015e-34 J s = h # since May 2019 +elementary_charge = 1.602176634e-19 C = e # since May 2019 +avogadro_number = 6.02214076e23 # since May 2019 +boltzmann_constant = 1.380649e-23 J K^-1 = k = k_B # since May 2019 +standard_gravity = 9.80665 m/s^2 = g_0 = g0 = g_n = gravity # since 1901 +standard_atmosphere = 1.01325e5 Pa = atm = atmosphere # since 1954 +conventional_josephson_constant = 4.835979e14 Hz / V = K_J90 # since Jan 1990 +conventional_von_klitzing_constant = 2.5812807e4 ohm = R_K90 # since Jan 1990 + +#### DERIVED EXACT CONSTANTS #### +# Floating-point conversion may introduce inaccuracies + +zeta = c / (cm/s) = ζ +dirac_constant = h / (2 * π) = ħ = hbar = atomic_unit_of_action = a_u_action +avogadro_constant = avogadro_number * mol^-1 = N_A +molar_gas_constant = k * N_A = R +faraday_constant = e * N_A +conductance_quantum = 2 * e ** 2 / h = G_0 +magnetic_flux_quantum = h / (2 * e) = Φ_0 = Phi_0 +josephson_constant = 2 * e / h = K_J +von_klitzing_constant = h / e ** 2 = R_K +stefan_boltzmann_constant = 2 / 15 * π ** 5 * k ** 4 / (h ** 3 * c ** 2) = σ = sigma +first_radiation_constant = 2 * π * h * c ** 2 = c_1 +second_radiation_constant = h * c / k = c_2 +wien_wavelength_displacement_law_constant = h * c / (k * wien_x) +wien_frequency_displacement_law_constant = wien_u * k / h + +#### MEASURED CONSTANTS #### +# Recommended CODATA-2018 values +# To some extent, what is measured and what is derived is a bit arbitrary. +# The choice of measured constants is based on convenience and on available uncertainty. +# The uncertainty in the last significant digits is given in parentheses as a comment. + +newtonian_constant_of_gravitation = 6.67430e-11 m^3/(kg s^2) = _ = gravitational_constant # (15) +rydberg_constant = 1.0973731568160e7 * m^-1 = R_∞ = R_inf # (21) +electron_g_factor = -2.00231930436256 = g_e # (35) +atomic_mass_constant = 1.66053906660e-27 kg = m_u # (50) +electron_mass = 9.1093837015e-31 kg = m_e = atomic_unit_of_mass = a_u_mass # (28) +proton_mass = 1.67262192369e-27 kg = m_p # (51) +neutron_mass = 1.67492749804e-27 kg = m_n # (95) +lattice_spacing_of_Si = 1.920155716e-10 m = d_220 # (32) +K_alpha_Cu_d_220 = 0.80232719 # (22) +K_alpha_Mo_d_220 = 0.36940604 # (19) +K_alpha_W_d_220 = 0.108852175 # (98) + +#### DERIVED CONSTANTS #### + +fine_structure_constant = (2 * h * R_inf / (m_e * c)) ** 0.5 = α = alpha +vacuum_permeability = 2 * α * h / (e ** 2 * c) = µ_0 = mu_0 = mu0 = magnetic_constant +vacuum_permittivity = e ** 2 / (2 * α * h * c) = ε_0 = epsilon_0 = eps_0 = eps0 = electric_constant +impedance_of_free_space = 2 * α * h / e ** 2 = Z_0 = characteristic_impedance_of_vacuum +coulomb_constant = α * hbar * c / e ** 2 = k_C +classical_electron_radius = α * hbar / (m_e * c) = r_e +thomson_cross_section = 8 / 3 * π * r_e ** 2 = σ_e = sigma_e +""" + +pint_definitions = f""" +# Default Pint units definition file +# Based on the International System of Units +# Language: english +# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. + +# Syntax +# ====== +# Units +# ----- +# = [= ] [= ] [ = ] [...] +# +# The canonical name and aliases should be expressed in singular form. +# Pint automatically deals with plurals built by adding 's' to the singular form; plural +# forms that don't follow this rule should be instead explicitly listed as aliases. +# +# If a unit has no symbol and one wants to define aliases, then the symbol should be +# conventionally set to _. +# +# Example: +# millennium = 1e3 * year = _ = millennia +# +# +# Prefixes +# -------- +# - = [= ] [= ] [ = ] [...] +# +# Example: +# deca- = 1e+1 = da- = deka- +# +# +# Derived dimensions +# ------------------ +# [dimension name] = +# +# Example: +# [density] = [mass] / [volume] +# +# Note that primary dimensions don't need to be declared; they can be +# defined for the first time in a unit definition. +# E.g. see below `meter = [length]` +# +# +# Additional aliases +# ------------------ +# @alias = [ = ] [...] +# +# Used to add aliases to already existing unit definitions. +# Particularly useful when one wants to enrich definitions +# from defaults_en.txt with custom aliases. +# +# Example: +# @alias meter = my_meter + +# See also: https://pint.readthedocs.io/en/latest/defining.html + +@defaults + group = international + system = mks +@end + + +#### PREFIXES #### + +# decimal prefixes +yocto- = 1e-24 = y- +zepto- = 1e-21 = z- +atto- = 1e-18 = a- +femto- = 1e-15 = f- +pico- = 1e-12 = p- +nano- = 1e-9 = n- +micro- = 1e-6 = µ- = u- +milli- = 1e-3 = m- +centi- = 1e-2 = c- +deci- = 1e-1 = d- +deca- = 1e+1 = da- = deka- +hecto- = 1e2 = h- +kilo- = 1e3 = k- +mega- = 1e6 = M- +giga- = 1e9 = G- +tera- = 1e12 = T- +peta- = 1e15 = P- +exa- = 1e18 = E- +zetta- = 1e21 = Z- +yotta- = 1e24 = Y- + +# binary_prefixes +kibi- = 2**10 = Ki- +mebi- = 2**20 = Mi- +gibi- = 2**30 = Gi- +tebi- = 2**40 = Ti- +pebi- = 2**50 = Pi- +exbi- = 2**60 = Ei- +zebi- = 2**70 = Zi- +yobi- = 2**80 = Yi- + +# extra_prefixes +semi- = 0.5 = _ = demi- +sesqui- = 1.5 + + +#### BASE UNITS #### + +meter = [length] = m = metre +second = [time] = s = sec +ampere = [current] = A = amp +candela = [luminosity] = cd = candle +gram = [mass] = g +mole = [substance] = mol +kelvin = [temperature]; offset: 0 = K = degK = °K = degree_Kelvin = degreeK # older names supported for compatibility +radian = [] = rad +bit = [] +count = [] + + +#### CONSTANTS #### + +{pint_constants} + + +#### UNITS #### +# Common and less common, grouped by quantity. +# Conversion factors are exact (except when noted), +# although floating-point conversion may introduce inaccuracies + +# Angle +turn = 2 * π * radian = _ = revolution = cycle = circle +degree = π / 180 * radian = deg = arcdeg = arcdegree = angular_degree +arcminute = degree / 60 = arcmin = arc_minute = angular_minute +arcsecond = arcminute / 60 = arcsec = arc_second = angular_second +milliarcsecond = 1e-3 * arcsecond = mas +grade = π / 200 * radian = grad = gon +mil = π / 32000 * radian + +# Solid angle +steradian = radian ** 2 = sr +square_degree = (π / 180) ** 2 * sr = sq_deg = sqdeg + +# Information +baud = bit / second = Bd = bps + +byte = 8 * bit = B = octet +# byte = 8 * bit = _ = octet +## NOTE: B (byte) symbol can conflict with Bell + +# Length +angstrom = 1e-10 * meter = Å = ångström = Å +micron = micrometer = µ +fermi = femtometer = fm +light_year = speed_of_light * julian_year = ly = lightyear +astronomical_unit = 149597870700 * meter = au # since Aug 2012 +parsec = 1 / tansec * astronomical_unit = pc +nautical_mile = 1852 * meter = nmi +bohr = hbar / (alpha * m_e * c) = a_0 = a0 = bohr_radius = atomic_unit_of_length = a_u_length +x_unit_Cu = K_alpha_Cu_d_220 * d_220 / 1537.4 = Xu_Cu +x_unit_Mo = K_alpha_Mo_d_220 * d_220 / 707.831 = Xu_Mo +angstrom_star = K_alpha_W_d_220 * d_220 / 0.2090100 = Å_star +planck_length = (hbar * gravitational_constant / c ** 3) ** 0.5 + +# Mass +metric_ton = 1e3 * kilogram = t = tonne +unified_atomic_mass_unit = atomic_mass_constant = u = amu +dalton = atomic_mass_constant = Da +grain = 64.79891 * milligram = gr +gamma_mass = microgram +carat = 200 * milligram = ct = karat +planck_mass = (hbar * c / gravitational_constant) ** 0.5 + +# Time +minute = 60 * second = min +hour = 60 * minute = hr +day = 24 * hour = d +week = 7 * day +fortnight = 2 * week +year = 365.25 * day = a = yr = julian_year +month = year / 12 + +# decade = 10 * year +## NOTE: decade [time] can conflict with decade [dimensionless] + +century = 100 * year = _ = centuries +millennium = 1e3 * year = _ = millennia +eon = 1e9 * year +shake = 1e-8 * second +svedberg = 1e-13 * second +atomic_unit_of_time = hbar / E_h = a_u_time +gregorian_year = 365.2425 * day +sidereal_year = 365.256363004 * day # approximate, as of J2000 epoch +tropical_year = 365.242190402 * day # approximate, as of J2000 epoch +common_year = 365 * day +leap_year = 366 * day +sidereal_day = day / 1.00273790935079524 # approximate +sidereal_month = 27.32166155 * day # approximate +tropical_month = 27.321582 * day # approximate +synodic_month = 29.530589 * day = _ = lunar_month # approximate +planck_time = (hbar * gravitational_constant / c ** 5) ** 0.5 + +# Temperature +degree_Celsius = kelvin; offset: 273.15 = °C = celsius = degC = degreeC +degree_Rankine = 5 / 9 * kelvin; offset: 0 = °R = rankine = degR = degreeR +degree_Fahrenheit = 5 / 9 * kelvin; offset: 233.15 + 200 / 9 = °F = fahrenheit = degF = degreeF +degree_Reaumur = 4 / 5 * kelvin; offset: 273.15 = °Re = reaumur = degRe = degreeRe = degree_Réaumur = réaumur +atomic_unit_of_temperature = E_h / k = a_u_temp +planck_temperature = (hbar * c ** 5 / gravitational_constant / k ** 2) ** 0.5 + +# Area +[area] = [length] ** 2 +are = 100 * meter ** 2 +barn = 1e-28 * meter ** 2 = b +darcy = centipoise * centimeter ** 2 / (second * atmosphere) +hectare = 100 * are = ha + +# Volume +[volume] = [length] ** 3 +liter = decimeter ** 3 = l = L = litre +cubic_centimeter = centimeter ** 3 = cc +lambda = microliter = λ +stere = meter ** 3 + +# Frequency +[frequency] = 1 / [time] +hertz = 1 / second = Hz +revolutions_per_minute = revolution / minute = rpm +revolutions_per_second = revolution / second = rps +counts_per_second = count / second = cps + +# Wavenumber +[wavenumber] = 1 / [length] +reciprocal_centimeter = 1 / cm = cm_1 = kayser + +# Velocity +[velocity] = [length] / [time] +[speed] = [velocity] +knot = nautical_mile / hour = kt = knot_international = international_knot +mile_per_hour = mile / hour = mph = MPH +kilometer_per_hour = kilometer / hour = kph = KPH +kilometer_per_second = kilometer / second = kps +meter_per_second = meter / second = mps +foot_per_second = foot / second = fps + +# Acceleration +[acceleration] = [velocity] / [time] +galileo = centimeter / second ** 2 = Gal + +# Force +[force] = [mass] * [acceleration] +newton = kilogram * meter / second ** 2 = N +dyne = gram * centimeter / second ** 2 = dyn +force_kilogram = g_0 * kilogram = kgf = kilogram_force = pond +force_gram = g_0 * gram = gf = gram_force +force_metric_ton = g_0 * metric_ton = tf = metric_ton_force = force_t = t_force +atomic_unit_of_force = E_h / a_0 = a_u_force + +# Energy +[energy] = [force] * [length] +joule = newton * meter = J +erg = dyne * centimeter +watt_hour = watt * hour = Wh = watthour +electron_volt = e * volt = eV +rydberg = h * c * R_inf = Ry +hartree = 2 * rydberg = E_h = Eh = hartree_energy = atomic_unit_of_energy = a_u_energy +calorie = 4.184 * joule = cal = thermochemical_calorie = cal_th +international_calorie = 4.1868 * joule = cal_it = international_steam_table_calorie +fifteen_degree_calorie = 4.1855 * joule = cal_15 +british_thermal_unit = 1055.056 * joule = Btu = BTU = Btu_iso +international_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * international_calorie = Btu_it +thermochemical_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * calorie = Btu_th +quadrillion_Btu = 1e15 * Btu = quad +therm = 1e5 * Btu = thm = EC_therm +US_therm = 1.054804e8 * joule # approximate, no exact definition +ton_TNT = 1e9 * calorie = tTNT +tonne_of_oil_equivalent = 1e10 * international_calorie = toe +atmosphere_liter = atmosphere * liter = atm_l + +# Power +[power] = [energy] / [time] +watt = joule / second = W +volt_ampere = volt * ampere = VA +horsepower = 550 * foot * force_pound / second = hp = UK_horsepower = hydraulic_horsepower +boiler_horsepower = 33475 * Btu / hour # unclear which Btu +metric_horsepower = 75 * force_kilogram * meter / second +electrical_horsepower = 746 * watt +refrigeration_ton = 12e3 * Btu / hour = _ = ton_of_refrigeration # approximate, no exact definition +standard_liter_per_minute = atmosphere * liter / minute = slpm = slm +conventional_watt_90 = K_J90 ** 2 * R_K90 / (K_J ** 2 * R_K) * watt = W_90 + +# Momentum +[momentum] = [length] * [mass] / [time] + +# Density (as auxiliary for pressure) +[density] = [mass] / [volume] +mercury = 13.5951 * kilogram / liter = Hg = Hg_0C = Hg_32F = conventional_mercury +water = 1.0 * kilogram / liter = H2O = conventional_water +mercury_60F = 13.5568 * kilogram / liter = Hg_60F # approximate +water_39F = 0.999972 * kilogram / liter = water_4C # approximate +water_60F = 0.999001 * kilogram / liter # approximate + +# Pressure +[pressure] = [force] / [area] +pascal = newton / meter ** 2 = Pa +barye = dyne / centimeter ** 2 = Ba = barie = barad = barrie = baryd +bar = 1e5 * pascal +technical_atmosphere = kilogram * g_0 / centimeter ** 2 = at +torr = atm / 760 +pound_force_per_square_inch = force_pound / inch ** 2 = psi +kip_per_square_inch = kip / inch ** 2 = ksi +millimeter_Hg = millimeter * Hg * g_0 = mmHg = mm_Hg = millimeter_Hg_0C +centimeter_Hg = centimeter * Hg * g_0 = cmHg = cm_Hg = centimeter_Hg_0C +inch_Hg = inch * Hg * g_0 = inHg = in_Hg = inch_Hg_32F +inch_Hg_60F = inch * Hg_60F * g_0 +inch_H2O_39F = inch * water_39F * g_0 +inch_H2O_60F = inch * water_60F * g_0 +foot_H2O = foot * water * g_0 = ftH2O = feet_H2O +centimeter_H2O = centimeter * water * g_0 = cmH2O = cm_H2O +sound_pressure_level = 20e-6 * pascal = SPL + +# Torque +[torque] = [force] * [length] +foot_pound = foot * force_pound = ft_lb = footpound + +# Viscosity +[viscosity] = [pressure] * [time] +poise = 0.1 * Pa * second = P +reyn = psi * second + +# Kinematic viscosity +[kinematic_viscosity] = [area] / [time] +stokes = centimeter ** 2 / second = St + +# Fluidity +[fluidity] = 1 / [viscosity] +rhe = 1 / poise + +# Amount of substance +particle = 1 / N_A = _ = molec = molecule + +# Concentration +[concentration] = [substance] / [volume] +molar = mole / liter = M + +# Catalytic activity +[activity] = [substance] / [time] +katal = mole / second = kat +enzyme_unit = micromole / minute = U = enzymeunit + +# Entropy +[entropy] = [energy] / [temperature] +clausius = calorie / kelvin = Cl + +# Molar entropy +[molar_entropy] = [entropy] / [substance] +entropy_unit = calorie / kelvin / mole = eu + +# Radiation +becquerel = counts_per_second = Bq +curie = 3.7e10 * becquerel = Ci +rutherford = 1e6 * becquerel = Rd +gray = joule / kilogram = Gy +sievert = joule / kilogram = Sv +rads = 0.01 * gray +rem = 0.01 * sievert +roentgen = 2.58e-4 * coulomb / kilogram = _ = röntgen # approximate, depends on medium + +# Heat transimission +[heat_transmission] = [energy] / [area] +peak_sun_hour = 1e3 * watt_hour / meter ** 2 = PSH +langley = thermochemical_calorie / centimeter ** 2 = Ly + +# Luminance +[luminance] = [luminosity] / [area] +nit = candela / meter ** 2 +stilb = candela / centimeter ** 2 +lambert = 1 / π * candela / centimeter ** 2 + +# Luminous flux +[luminous_flux] = [luminosity] +lumen = candela * steradian = lm + +# Illuminance +[illuminance] = [luminous_flux] / [area] +lux = lumen / meter ** 2 = lx + +# Intensity +[intensity] = [power] / [area] +atomic_unit_of_intensity = 0.5 * ε_0 * c * atomic_unit_of_electric_field ** 2 = a_u_intensity + +# Current +biot = 10 * ampere = Bi +abampere = biot = abA +atomic_unit_of_current = e / atomic_unit_of_time = a_u_current +mean_international_ampere = mean_international_volt / mean_international_ohm = A_it +US_international_ampere = US_international_volt / US_international_ohm = A_US +conventional_ampere_90 = K_J90 * R_K90 / (K_J * R_K) * ampere = A_90 +planck_current = (c ** 6 / gravitational_constant / k_C) ** 0.5 + +# Charge +[charge] = [current] * [time] +coulomb = ampere * second = C +abcoulomb = 10 * C = abC +faraday = e * N_A * mole +conventional_coulomb_90 = K_J90 * R_K90 / (K_J * R_K) * coulomb = C_90 +ampere_hour = ampere * hour = Ah + +# Electric potential +[electric_potential] = [energy] / [charge] +volt = joule / coulomb = V +abvolt = 1e-8 * volt = abV +mean_international_volt = 1.00034 * volt = V_it # approximate +US_international_volt = 1.00033 * volt = V_US # approximate +conventional_volt_90 = K_J90 / K_J * volt = V_90 + +# Electric field +[electric_field] = [electric_potential] / [length] +atomic_unit_of_electric_field = e * k_C / a_0 ** 2 = a_u_electric_field + +# Electric displacement field +[electric_displacement_field] = [charge] / [area] + +# Resistance +[resistance] = [electric_potential] / [current] +ohm = volt / ampere = Ω +abohm = 1e-9 * ohm = abΩ +mean_international_ohm = 1.00049 * ohm = Ω_it = ohm_it # approximate +US_international_ohm = 1.000495 * ohm = Ω_US = ohm_US # approximate +conventional_ohm_90 = R_K / R_K90 * ohm = Ω_90 = ohm_90 + +# Resistivity +[resistivity] = [resistance] * [length] + +# Conductance +[conductance] = [current] / [electric_potential] +siemens = ampere / volt = S = mho +absiemens = 1e9 * siemens = abS = abmho + +# Capacitance +[capacitance] = [charge] / [electric_potential] +farad = coulomb / volt = F +abfarad = 1e9 * farad = abF +conventional_farad_90 = R_K90 / R_K * farad = F_90 + +# Inductance +[inductance] = [magnetic_flux] / [current] +henry = weber / ampere = H +abhenry = 1e-9 * henry = abH +conventional_henry_90 = R_K / R_K90 * henry = H_90 + +# Magnetic flux +[magnetic_flux] = [electric_potential] * [time] +weber = volt * second = Wb +unit_pole = µ_0 * biot * centimeter + +# Magnetic field +[magnetic_field] = [magnetic_flux] / [area] +tesla = weber / meter ** 2 = T +gamma = 1e-9 * tesla = γ + +# Magnetomotive force +[magnetomotive_force] = [current] +ampere_turn = ampere = At +biot_turn = biot +gilbert = 1 / (4 * π) * biot_turn = Gb + +# Magnetic field strength +[magnetic_field_strength] = [current] / [length] + +# Electric dipole moment +[electric_dipole] = [charge] * [length] +debye = 1e-9 / ζ * coulomb * angstrom = D # formally 1 D = 1e-10 Fr*Å, but we generally want to use it outside the Gaussian context + +# Electric quadrupole moment +[electric_quadrupole] = [charge] * [area] +buckingham = debye * angstrom + +# Magnetic dipole moment +[magnetic_dipole] = [current] * [area] +bohr_magneton = e * hbar / (2 * m_e) = µ_B = mu_B +nuclear_magneton = e * hbar / (2 * m_p) = µ_N = mu_N + +# Logaritmic Unit Definition +# Unit = scale; logbase; logfactor +# x_dB = [logfactor] * log( x_lin / [scale] ) / log( [logbase] ) + +# Logaritmic Units of dimensionless quantity: [ https://en.wikipedia.org/wiki/Level_(logarithmic_quantity) ] + +decibelmilliwatt = 1e-3 watt; logbase: 10; logfactor: 10 = dBm +decibelmicrowatt = 1e-6 watt; logbase: 10; logfactor: 10 = dBu + +decibel = 1 ; logbase: 10; logfactor: 10 = dB +# bell = 1 ; logbase: 10; logfactor: = B +## NOTE: B (Bell) symbol conflicts with byte + +decade = 1 ; logbase: 10; logfactor: 1 +## NOTE: decade [time] can conflict with decade [dimensionless] + +octave = 1 ; logbase: 2; logfactor: 1 = oct + +neper = 1 ; logbase: 2.71828182845904523536028747135266249775724709369995; logfactor: 0.5 = Np +# neper = 1 ; logbase: eulers_number; logfactor: 0.5 = Np + +#### UNIT GROUPS #### +# Mostly for length, area, volume, mass, force +# (customary or specialized units) + +@group USCSLengthInternational + thou = 1e-3 * inch = th = mil_length + inch = yard / 36 = in = international_inch = inches = international_inches + hand = 4 * inch + foot = yard / 3 = ft = international_foot = feet = international_feet + yard = 0.9144 * meter = yd = international_yard # since Jul 1959 + mile = 1760 * yard = mi = international_mile + + circular_mil = π / 4 * mil_length ** 2 = cmil + square_inch = inch ** 2 = sq_in = square_inches + square_foot = foot ** 2 = sq_ft = square_feet + square_yard = yard ** 2 = sq_yd + square_mile = mile ** 2 = sq_mi + + cubic_inch = in ** 3 = cu_in + cubic_foot = ft ** 3 = cu_ft = cubic_feet + cubic_yard = yd ** 3 = cu_yd +@end + +@group USCSLengthSurvey + link = 1e-2 * chain = li = survey_link + survey_foot = 1200 / 3937 * meter = sft + fathom = 6 * survey_foot + rod = 16.5 * survey_foot = rd = pole = perch + chain = 4 * rod + furlong = 40 * rod = fur + cables_length = 120 * fathom + survey_mile = 5280 * survey_foot = smi = us_statute_mile + league = 3 * survey_mile + + square_rod = rod ** 2 = sq_rod = sq_pole = sq_perch + acre = 10 * chain ** 2 + square_survey_mile = survey_mile ** 2 = _ = section + square_league = league ** 2 + + acre_foot = acre * survey_foot = _ = acre_feet +@end + +@group USCSDryVolume + dry_pint = bushel / 64 = dpi = US_dry_pint + dry_quart = bushel / 32 = dqt = US_dry_quart + dry_gallon = bushel / 8 = dgal = US_dry_gallon + peck = bushel / 4 = pk + bushel = 2150.42 cubic_inch = bu + dry_barrel = 7056 cubic_inch = _ = US_dry_barrel + board_foot = ft * ft * in = FBM = board_feet = BF = BDFT = super_foot = superficial_foot = super_feet = superficial_feet +@end + +@group USCSLiquidVolume + minim = pint / 7680 + fluid_dram = pint / 128 = fldr = fluidram = US_fluid_dram = US_liquid_dram + fluid_ounce = pint / 16 = floz = US_fluid_ounce = US_liquid_ounce + gill = pint / 4 = gi = liquid_gill = US_liquid_gill + pint = quart / 2 = pt = liquid_pint = US_pint + fifth = gallon / 5 = _ = US_liquid_fifth + quart = gallon / 4 = qt = liquid_quart = US_liquid_quart + gallon = 231 * cubic_inch = gal = liquid_gallon = US_liquid_gallon +@end + +@group USCSVolumeOther + teaspoon = fluid_ounce / 6 = tsp + tablespoon = fluid_ounce / 2 = tbsp + shot = 3 * tablespoon = jig = US_shot + cup = pint / 2 = cp = liquid_cup = US_liquid_cup + barrel = 31.5 * gallon = bbl + oil_barrel = 42 * gallon = oil_bbl + beer_barrel = 31 * gallon = beer_bbl + hogshead = 63 * gallon +@end + +@group Avoirdupois + dram = pound / 256 = dr = avoirdupois_dram = avdp_dram = drachm + ounce = pound / 16 = oz = avoirdupois_ounce = avdp_ounce + pound = 7e3 * grain = lb = avoirdupois_pound = avdp_pound + stone = 14 * pound + quarter = 28 * stone + bag = 94 * pound + hundredweight = 100 * pound = cwt = short_hundredweight + long_hundredweight = 112 * pound + ton = 2e3 * pound = _ = short_ton + long_ton = 2240 * pound + slug = g_0 * pound * second ** 2 / foot + slinch = g_0 * pound * second ** 2 / inch = blob = slugette + + force_ounce = g_0 * ounce = ozf = ounce_force + force_pound = g_0 * pound = lbf = pound_force + force_ton = g_0 * ton = _ = ton_force = force_short_ton = short_ton_force + force_long_ton = g_0 * long_ton = _ = long_ton_force + kip = 1e3 * force_pound + poundal = pound * foot / second ** 2 = pdl +@end + +@group AvoirdupoisUK using Avoirdupois + UK_hundredweight = long_hundredweight = UK_cwt + UK_ton = long_ton + UK_force_ton = force_long_ton = _ = UK_ton_force +@end + +@group AvoirdupoisUS using Avoirdupois + US_hundredweight = hundredweight = US_cwt + US_ton = ton + US_force_ton = force_ton = _ = US_ton_force +@end + +@group Troy + pennyweight = 24 * grain = dwt + troy_ounce = 480 * grain = toz = ozt + troy_pound = 12 * troy_ounce = tlb = lbt +@end + +@group Apothecary + scruple = 20 * grain + apothecary_dram = 3 * scruple = ap_dr + apothecary_ounce = 8 * apothecary_dram = ap_oz + apothecary_pound = 12 * apothecary_ounce = ap_lb +@end + +@group ImperialVolume + imperial_minim = imperial_fluid_ounce / 480 + imperial_fluid_scruple = imperial_fluid_ounce / 24 + imperial_fluid_drachm = imperial_fluid_ounce / 8 = imperial_fldr = imperial_fluid_dram + imperial_fluid_ounce = imperial_pint / 20 = imperial_floz = UK_fluid_ounce + imperial_gill = imperial_pint / 4 = imperial_gi = UK_gill + imperial_cup = imperial_pint / 2 = imperial_cp = UK_cup + imperial_pint = imperial_gallon / 8 = imperial_pt = UK_pint + imperial_quart = imperial_gallon / 4 = imperial_qt = UK_quart + imperial_gallon = 4.54609 * liter = imperial_gal = UK_gallon + imperial_peck = 2 * imperial_gallon = imperial_pk = UK_pk + imperial_bushel = 8 * imperial_gallon = imperial_bu = UK_bushel + imperial_barrel = 36 * imperial_gallon = imperial_bbl = UK_bbl +@end + +@group Textile + tex = gram / kilometer = Tt + dtex = decitex + denier = gram / (9 * kilometer) = den = Td + jute = pound / (14400 * yard) = Tj + aberdeen = jute = Ta + RKM = gf / tex + + number_english = 840 * yard / pound = Ne = NeC = ECC + number_meter = kilometer / kilogram = Nm +@end + + +#### CGS ELECTROMAGNETIC UNITS #### + +# === Gaussian system of units === +@group Gaussian + franklin = erg ** 0.5 * centimeter ** 0.5 = Fr = statcoulomb = statC = esu + statvolt = erg / franklin = statV + statampere = franklin / second = statA + gauss = dyne / franklin = G + maxwell = gauss * centimeter ** 2 = Mx + oersted = dyne / maxwell = Oe = ørsted + statohm = statvolt / statampere = statΩ + statfarad = franklin / statvolt = statF + statmho = statampere / statvolt +@end +# Note this system is not commensurate with SI, as ε_0 and µ_0 disappear; +# some quantities with different dimensions in SI have the same +# dimensions in the Gaussian system (e.g. [Mx] = [Fr], but [Wb] != [C]), +# and therefore the conversion factors depend on the context (not in pint sense) +[gaussian_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] +[gaussian_current] = [gaussian_charge] / [time] +[gaussian_electric_potential] = [gaussian_charge] / [length] +[gaussian_electric_field] = [gaussian_electric_potential] / [length] +[gaussian_electric_displacement_field] = [gaussian_charge] / [area] +[gaussian_electric_flux] = [gaussian_charge] +[gaussian_electric_dipole] = [gaussian_charge] * [length] +[gaussian_electric_quadrupole] = [gaussian_charge] * [area] +[gaussian_magnetic_field] = [force] / [gaussian_charge] +[gaussian_magnetic_field_strength] = [gaussian_magnetic_field] +[gaussian_magnetic_flux] = [gaussian_magnetic_field] * [area] +[gaussian_magnetic_dipole] = [energy] / [gaussian_magnetic_field] +[gaussian_resistance] = [gaussian_electric_potential] / [gaussian_current] +[gaussian_resistivity] = [gaussian_resistance] * [length] +[gaussian_capacitance] = [gaussian_charge] / [gaussian_electric_potential] +[gaussian_inductance] = [gaussian_electric_potential] * [time] / [gaussian_current] +[gaussian_conductance] = [gaussian_current] / [gaussian_electric_potential] +@context Gaussian = Gau + [gaussian_charge] -> [charge]: value / k_C ** 0.5 + [charge] -> [gaussian_charge]: value * k_C ** 0.5 + [gaussian_current] -> [current]: value / k_C ** 0.5 + [current] -> [gaussian_current]: value * k_C ** 0.5 + [gaussian_electric_potential] -> [electric_potential]: value * k_C ** 0.5 + [electric_potential] -> [gaussian_electric_potential]: value / k_C ** 0.5 + [gaussian_electric_field] -> [electric_field]: value * k_C ** 0.5 + [electric_field] -> [gaussian_electric_field]: value / k_C ** 0.5 + [gaussian_electric_displacement_field] -> [electric_displacement_field]: value / (4 * π / ε_0) ** 0.5 + [electric_displacement_field] -> [gaussian_electric_displacement_field]: value * (4 * π / ε_0) ** 0.5 + [gaussian_electric_dipole] -> [electric_dipole]: value / k_C ** 0.5 + [electric_dipole] -> [gaussian_electric_dipole]: value * k_C ** 0.5 + [gaussian_electric_quadrupole] -> [electric_quadrupole]: value / k_C ** 0.5 + [electric_quadrupole] -> [gaussian_electric_quadrupole]: value * k_C ** 0.5 + [gaussian_magnetic_field] -> [magnetic_field]: value / (4 * π / µ_0) ** 0.5 + [magnetic_field] -> [gaussian_magnetic_field]: value * (4 * π / µ_0) ** 0.5 + [gaussian_magnetic_flux] -> [magnetic_flux]: value / (4 * π / µ_0) ** 0.5 + [magnetic_flux] -> [gaussian_magnetic_flux]: value * (4 * π / µ_0) ** 0.5 + [gaussian_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π * µ_0) ** 0.5 + [magnetic_field_strength] -> [gaussian_magnetic_field_strength]: value * (4 * π * µ_0) ** 0.5 + [gaussian_magnetic_dipole] -> [magnetic_dipole]: value * (4 * π / µ_0) ** 0.5 + [magnetic_dipole] -> [gaussian_magnetic_dipole]: value / (4 * π / µ_0) ** 0.5 + [gaussian_resistance] -> [resistance]: value * k_C + [resistance] -> [gaussian_resistance]: value / k_C + [gaussian_resistivity] -> [resistivity]: value * k_C + [resistivity] -> [gaussian_resistivity]: value / k_C + [gaussian_capacitance] -> [capacitance]: value / k_C + [capacitance] -> [gaussian_capacitance]: value * k_C + [gaussian_inductance] -> [inductance]: value * k_C + [inductance] -> [gaussian_inductance]: value / k_C + [gaussian_conductance] -> [conductance]: value / k_C + [conductance] -> [gaussian_conductance]: value * k_C +@end + +# === ESU system of units === +# (where different from Gaussian) +# See note for Gaussian system too +@group ESU using Gaussian + statweber = statvolt * second = statWb + stattesla = statweber / centimeter ** 2 = statT + stathenry = statweber / statampere = statH +@end +[esu_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] +[esu_current] = [esu_charge] / [time] +[esu_electric_potential] = [esu_charge] / [length] +[esu_magnetic_flux] = [esu_electric_potential] * [time] +[esu_magnetic_field] = [esu_magnetic_flux] / [area] +[esu_magnetic_field_strength] = [esu_current] / [length] +[esu_magnetic_dipole] = [esu_current] * [area] +@context ESU = esu + [esu_magnetic_field] -> [magnetic_field]: value * k_C ** 0.5 + [magnetic_field] -> [esu_magnetic_field]: value / k_C ** 0.5 + [esu_magnetic_flux] -> [magnetic_flux]: value * k_C ** 0.5 + [magnetic_flux] -> [esu_magnetic_flux]: value / k_C ** 0.5 + [esu_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π / ε_0) ** 0.5 + [magnetic_field_strength] -> [esu_magnetic_field_strength]: value * (4 * π / ε_0) ** 0.5 + [esu_magnetic_dipole] -> [magnetic_dipole]: value / k_C ** 0.5 + [magnetic_dipole] -> [esu_magnetic_dipole]: value * k_C ** 0.5 +@end + + +#### CONVERSION CONTEXTS #### + +@context(n=1) spectroscopy = sp + # n index of refraction of the medium. + [length] <-> [frequency]: speed_of_light / n / value + [frequency] -> [energy]: planck_constant * value + [energy] -> [frequency]: value / planck_constant + # allow wavenumber / kayser + [wavenumber] <-> [length]: 1 / value +@end + +@context boltzmann + [temperature] -> [energy]: boltzmann_constant * value + [energy] -> [temperature]: value / boltzmann_constant +@end + +@context energy + [energy] -> [energy] / [substance]: value * N_A + [energy] / [substance] -> [energy]: value / N_A + [energy] -> [mass]: value / c ** 2 + [mass] -> [energy]: value * c ** 2 +@end + +@context(mw=0,volume=0,solvent_mass=0) chemistry = chem + # mw is the molecular weight of the species + # volume is the volume of the solution + # solvent_mass is the mass of solvent in the solution + + # moles -> mass require the molecular weight + [substance] -> [mass]: value * mw + [mass] -> [substance]: value / mw + + # moles/volume -> mass/volume and moles/mass -> mass/mass + # require the molecular weight + [substance] / [volume] -> [mass] / [volume]: value * mw + [mass] / [volume] -> [substance] / [volume]: value / mw + [substance] / [mass] -> [mass] / [mass]: value * mw + [mass] / [mass] -> [substance] / [mass]: value / mw + + # moles/volume -> moles requires the solution volume + [substance] / [volume] -> [substance]: value * volume + [substance] -> [substance] / [volume]: value / volume + + # moles/mass -> moles requires the solvent (usually water) mass + [substance] / [mass] -> [substance]: value * solvent_mass + [substance] -> [substance] / [mass]: value / solvent_mass + + # moles/mass -> moles/volume require the solvent mass and the volume + [substance] / [mass] -> [substance]/[volume]: value * solvent_mass / volume + [substance] / [volume] -> [substance] / [mass]: value / solvent_mass * volume + +@end + +@context textile + # Allow switching between Direct count system (i.e. tex) and + # Indirect count system (i.e. Ne, Nm) + [mass] / [length] <-> [length] / [mass]: 1 / value +@end + + +#### SYSTEMS OF UNITS #### + +@system SI + second + meter + kilogram + ampere + kelvin + mole + candela +@end + +@system mks using international + meter + kilogram + second +@end + +@system cgs using international, Gaussian, ESU + centimeter + gram + second +@end + +@system atomic using international + # based on unit m_e, e, hbar, k_C, k + bohr: meter + electron_mass: gram + atomic_unit_of_time: second + atomic_unit_of_current: ampere + atomic_unit_of_temperature: kelvin +@end + +@system Planck using international + # based on unit c, gravitational_constant, hbar, k_C, k + planck_length: meter + planck_mass: gram + planck_time: second + planck_current: ampere + planck_temperature: kelvin +@end + +@system imperial using ImperialVolume, USCSLengthInternational, AvoirdupoisUK + yard + pound +@end + +@system US using USCSLiquidVolume, USCSDryVolume, USCSVolumeOther, USCSLengthInternational, USCSLengthSurvey, AvoirdupoisUS + yard + pound +@end + +pixel = 1 micrometer = px +xpixel = 1 micrometer = xpx +ypixel = 1 micrometer = ypx +zpixel = 1 micrometer = zpx +simulation_xpixel = 1 micrometer = sxpx +simulation_ypixel = 1 micrometer = sypx +simulation_zpixel = 1 micrometer = szpx + +""" \ No newline at end of file From 7e2c8f8b0762cfeef030e5f931faa32f25f27521 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:17:04 +0100 Subject: [PATCH 28/36] Update __init__.py --- deeptrack/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index 858b16fcd..f53a32c9f 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -6,14 +6,16 @@ # Create a UnitRegistry and add custom units. units = UnitRegistry() +del units._units["pixel"] +del units._units["px"] custom_units = [ - "pixel = 1 micrometer = px", ### Can this be erased? - "xpixel = 1 micrometer = xpx", ### why these are defined as 1 um? + "pixel = 1 micrometer = px", + "xpixel = 1 micrometer = xpx", "ypixel = 1 micrometer = ypx", "zpixel = 1 micrometer = zpx", "simulation_xpixel = 1 micrometer = sxpx", "simulation_ypixel = 1 micrometer = sypx", - "simulation_zpixel = 1 micrometer = szpx" + "simulation_zpixel = 1 micrometer = szpx", ] for unit in custom_units: units.define(unit) From 3aa4baa31dde3948b7030167bbf868a786ab18f5 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:18:14 +0100 Subject: [PATCH 29/36] Update __init__.py --- deeptrack/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index f53a32c9f..2a75fe82e 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -2,9 +2,10 @@ import lazy_import from pint import UnitRegistry -'''units = UnitRegistry(pint_definitions.split("\n"))'''#TBE +from .backend.pint_definition import pint_definitions +units = UnitRegistry(pint_definitions.split("\n")) -# Create a UnitRegistry and add custom units. +'''# Create a UnitRegistry and add custom units. units = UnitRegistry() del units._units["pixel"] del units._units["px"] @@ -18,7 +19,7 @@ "simulation_zpixel = 1 micrometer = szpx", ] for unit in custom_units: - units.define(unit) + units.define(unit)''' '''# Check if tensorflow is installed without importing it import pkg_resources From 385d8a017b2b53b06acace74e7b260490301ca22 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:32:37 +0100 Subject: [PATCH 30/36] pixel > img_pixel --- deeptrack/scatterers.py | 4 +- ...tracking_particles_of_various_shapes.ipynb | 960 +++--- .../01. deeptrack_introduction_tutorial.ipynb | 1810 +++++----- .../2-single_particle_tracking.ipynb | 3068 ++++++++--------- 4 files changed, 2921 insertions(+), 2921 deletions(-) diff --git a/deeptrack/scatterers.py b/deeptrack/scatterers.py index 05011d4c8..fd7f21716 100644 --- a/deeptrack/scatterers.py +++ b/deeptrack/scatterers.py @@ -80,7 +80,7 @@ class Scatterer(Feature): __list_merge_strategy__ = MERGE_STRATEGY_APPEND __distributed__ = False __conversion_table__ = ConversionTable( - position=(u.pixel, u.pixel), + position=(u.img_pixel, u.img_pixel), z=(u.zpixel, u.zpixel), voxel_size=(u.meter, u.meter), ) @@ -529,7 +529,7 @@ class MieScatterer(Scatterer): collection_angle=(u.radian, u.radian), wavelength=(u.meter, u.meter), offset_z=(u.meter, u.meter), - coherence_length=(u.meter, u.pixel), + coherence_length=(u.meter, u.img_pixel), ) def __init__( diff --git a/examples/LodeSTAR/02. tracking_particles_of_various_shapes.ipynb b/examples/LodeSTAR/02. tracking_particles_of_various_shapes.ipynb index 66115ffc6..7db069c85 100644 --- a/examples/LodeSTAR/02. tracking_particles_of_various_shapes.ipynb +++ b/examples/LodeSTAR/02. tracking_particles_of_various_shapes.ipynb @@ -1,500 +1,500 @@ { - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "everyday-accordance", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:00.379947Z", - "iopub.status.busy": "2022-06-29T20:15:00.379947Z", - "iopub.status.idle": "2022-06-29T20:15:01.821447Z", - "shell.execute_reply": "2022-06-29T20:15:01.822946Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.0)\n", - "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", - "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", - "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", - "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", - "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", - "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", - "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", - "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", - "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", - "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", - "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", - "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", - "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", - "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", - "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", - "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", - "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", - "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", - "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", - "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", - "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", - "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", - "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", - "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", - "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", - "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", - "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", - "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", - "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", - "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", - "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", - "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", - "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", - "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", - "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", - "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", - "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", - "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", - "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", - "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", - "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", - "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", - "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", - "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", - "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", - "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", - "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", - "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", - "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "!pip install deeptrack" - ] - }, - { - "cell_type": "markdown", - "id": "dfd5b527", - "metadata": {}, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "magnetic-literacy", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:01.825447Z", - "iopub.status.busy": "2022-06-29T20:15:01.824947Z", - "iopub.status.idle": "2022-06-29T20:15:05.366454Z", - "shell.execute_reply": "2022-06-29T20:15:05.366454Z" - } - }, - "outputs": [], - "source": [ - "\n", - "import deeptrack as dt\n", - "import numpy as np\n", - "import skimage.color\n", - "import matplotlib.pyplot as plt" - ] - }, + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "everyday-accordance", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:00.379947Z", + "iopub.status.busy": "2022-06-29T20:15:00.379947Z", + "iopub.status.idle": "2022-06-29T20:15:01.821447Z", + "shell.execute_reply": "2022-06-29T20:15:01.822946Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 3, - "id": "electronic-mandate", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:05.369453Z", - "iopub.status.busy": "2022-06-29T20:15:05.368953Z", - "iopub.status.idle": "2022-06-29T20:15:05.370953Z", - "shell.execute_reply": "2022-06-29T20:15:05.371453Z" - } - }, - "outputs": [], - "source": [ - "available_shapes = {\"point\", \"sphere\", \"annulus\", \"ellipse\", \"moon\"}\n", - "\n", - "shape_to_train_on = \"annulus\"\n", - "shape_to_evaluate_on = \"annulus\"\n", - "\n", - "assert shape_to_train_on in available_shapes, f\"{shape_to_train_on} is not a valid shape\"\n", - "assert shape_to_evaluate_on in available_shapes, f\"{shape_to_train_on} is not a valid shape\"" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.0)\n", + "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", + "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", + "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", + "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", + "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", + "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", + "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", + "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", + "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", + "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", + "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", + "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", + "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", + "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", + "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", + "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", + "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", + "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", + "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", + "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", + "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", + "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", + "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", + "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", + "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", + "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", + "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", + "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", + "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", + "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", + "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", + "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", + "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", + "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", + "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", + "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", + "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "!pip install deeptrack" + ] + }, + { + "cell_type": "markdown", + "id": "dfd5b527", + "metadata": {}, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "magnetic-literacy", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:01.825447Z", + "iopub.status.busy": "2022-06-29T20:15:01.824947Z", + "iopub.status.idle": "2022-06-29T20:15:05.366454Z", + "shell.execute_reply": "2022-06-29T20:15:05.366454Z" + } + }, + "outputs": [], + "source": [ + "\n", + "import deeptrack as dt\n", + "import numpy as np\n", + "import skimage.color\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "electronic-mandate", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:05.369453Z", + "iopub.status.busy": "2022-06-29T20:15:05.368953Z", + "iopub.status.idle": "2022-06-29T20:15:05.370953Z", + "shell.execute_reply": "2022-06-29T20:15:05.371453Z" + } + }, + "outputs": [], + "source": [ + "available_shapes = {\"point\", \"sphere\", \"annulus\", \"ellipse\", \"moon\"}\n", + "\n", + "shape_to_train_on = \"annulus\"\n", + "shape_to_evaluate_on = \"annulus\"\n", + "\n", + "assert shape_to_train_on in available_shapes, f\"{shape_to_train_on} is not a valid shape\"\n", + "assert shape_to_evaluate_on in available_shapes, f\"{shape_to_train_on} is not a valid shape\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2d5465d", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:05.375453Z", + "iopub.status.busy": "2022-06-29T20:15:05.374953Z", + "iopub.status.idle": "2022-06-29T20:15:05.377453Z", + "shell.execute_reply": "2022-06-29T20:15:05.377954Z" + } + }, + "outputs": [], + "source": [ + "class Annulus(dt.Ellipse):\n", + "\n", + " __conversion_table__ = dt.ConversionTable(\n", + " outer_radius=(dt.units.img_pixel, dt.units.img_pixel),\n", + " inner_radius=(dt.units.img_pixel, dt.units.img_pixel)\n", + " )\n", + "\n", + " def get(self, *inp, inner_radius, radius, **kwargs):\n", + " \n", + " im0 = super().get(*inp, radius=radius, **kwargs)\n", + " reduced = dt.Affine(scale=inner_radius / radius, mode=\"constant\")(im0)\n", + " return im0 - reduced\n", + "\n", + "\n", + "class CrescentMoon(dt.Ellipse):\n", + " __conversion_table__ = dt.ConversionTable(\n", + " radius=(dt.units.img_pixel, dt.units.img_pixel),\n", + " offset=(dt.units.img_pixel, dt.units.img_pixel)\n", + " )\n", + " def get(self, *inp, radius, offset, **kwargs):\n", + " ellipse = super().get(*inp, radius=radius, **kwargs)\n", + " offset = np.round(offset).astype(np.int)\n", + " other = dt.Affine(translate=offset, mode=\"constant\").resolve(ellipse)\n", + " ellipse[np.array(other > 0)] = 0\n", + "\n", + " return ellipse\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "radical-unemployment", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:05.380454Z", + "iopub.status.busy": "2022-06-29T20:15:05.380454Z", + "iopub.status.idle": "2022-06-29T20:15:05.382453Z", + "shell.execute_reply": "2022-06-29T20:15:05.382453Z" + } + }, + "outputs": [], + "source": [ + "arguments = dt.Arguments(\n", + " particle_shape = shape_to_train_on, \n", + " position=lambda: np.random.uniform(27, 37, 2),\n", + " snr=lambda: np.random.uniform(2, 20)\n", + ")\n", + "optics = dt.Fluorescence(output_region=(0, 0, 64, 64))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b3f478c3", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:05.386953Z", + "iopub.status.busy": "2022-06-29T20:15:05.386953Z", + "iopub.status.idle": "2022-06-29T20:15:05.388954Z", + "shell.execute_reply": "2022-06-29T20:15:05.388954Z" + } + }, + "outputs": [], + "source": [ + "point = dt.PointParticle(position=arguments.position)\n", + "sphere = dt.Sphere(position=arguments.position, radius=1*dt.units.micrometer)\n", + "annulus = Annulus(\n", + " radius=12 * dt.units.px,\n", + " inner_radius= 8 * dt.units.px,\n", + " position=arguments.position,\n", + ")\n", + "ellipse = dt.Ellipse(\n", + " position=arguments.position,\n", + " radius=(12, 7, 3) * dt.units.px,\n", + ")\n", + "moon = CrescentMoon(\n", + " radius=1 * dt.units.micrometer,\n", + " offset=(6, 0),\n", + " position=arguments.position,\n", + ")\n", + "\n", + "particle = dt.OneOfDict(\n", + " dict(\n", + " point=point,\n", + " sphere=sphere, \n", + " annulus=annulus, \n", + " ellipse=ellipse, \n", + " moon=moon\n", + " ),\n", + " key=arguments.particle_shape\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0306fd7a", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:05.395954Z", + "iopub.status.busy": "2022-06-29T20:15:05.395454Z", + "iopub.status.idle": "2022-06-29T20:15:06.115954Z", + "shell.execute_reply": "2022-06-29T20:15:06.116455Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 4, - "id": "a2d5465d", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:05.375453Z", - "iopub.status.busy": "2022-06-29T20:15:05.374953Z", - "iopub.status.idle": "2022-06-29T20:15:05.377453Z", - "shell.execute_reply": "2022-06-29T20:15:05.377954Z" - } - }, - "outputs": [], - "source": [ - "class Annulus(dt.Ellipse):\n", - "\n", - " __conversion_table__ = dt.ConversionTable(\n", - " outer_radius=(dt.units.pixel, dt.units.pixel),\n", - " inner_radius=(dt.units.pixel, dt.units.pixel)\n", - " )\n", - "\n", - " def get(self, *inp, inner_radius, radius, **kwargs):\n", - " \n", - " im0 = super().get(*inp, radius=radius, **kwargs)\n", - " reduced = dt.Affine(scale=inner_radius / radius, mode=\"constant\")(im0)\n", - " return im0 - reduced\n", - "\n", - "\n", - "class CrescentMoon(dt.Ellipse):\n", - " __conversion_table__ = dt.ConversionTable(\n", - " radius=(dt.units.pixel, dt.units.pixel),\n", - " offset=(dt.units.pixel, dt.units.pixel)\n", - " )\n", - " def get(self, *inp, radius, offset, **kwargs):\n", - " ellipse = super().get(*inp, radius=radius, **kwargs)\n", - " offset = np.round(offset).astype(np.int)\n", - " other = dt.Affine(translate=offset, mode=\"constant\").resolve(ellipse)\n", - " ellipse[np.array(other > 0)] = 0\n", - "\n", - " return ellipse\n" + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 5, - "id": "radical-unemployment", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:05.380454Z", - "iopub.status.busy": "2022-06-29T20:15:05.380454Z", - "iopub.status.idle": "2022-06-29T20:15:05.382453Z", - "shell.execute_reply": "2022-06-29T20:15:05.382453Z" - } - }, - "outputs": [], - "source": [ - "arguments = dt.Arguments(\n", - " particle_shape = shape_to_train_on, \n", - " position=lambda: np.random.uniform(27, 37, 2),\n", - " snr=lambda: np.random.uniform(2, 20)\n", - ")\n", - "optics = dt.Fluorescence(output_region=(0, 0, 64, 64))" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "data_pipeline = (\n", + " optics(particle) \n", + " >> dt.NormalizeMinMax()\n", + " >> dt.Affine(rotate=lambda: np.random.uniform(0, 2 * np.pi))\n", + " >> dt.Add(0.1)\n", + " >> dt.Poisson(snr=arguments.snr)\n", + ").bind_arguments(arguments)\n", + "\n", + "data_pipeline.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "fed997c7", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:06.124954Z", + "iopub.status.busy": "2022-06-29T20:15:06.124454Z", + "iopub.status.idle": "2022-06-29T20:15:06.221453Z", + "shell.execute_reply": "2022-06-29T20:15:06.221954Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 6, - "id": "b3f478c3", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:05.386953Z", - "iopub.status.busy": "2022-06-29T20:15:05.386953Z", - "iopub.status.idle": "2022-06-29T20:15:05.388954Z", - "shell.execute_reply": "2022-06-29T20:15:05.388954Z" - } - }, - "outputs": [], - "source": [ - "point = dt.PointParticle(position=arguments.position)\n", - "sphere = dt.Sphere(position=arguments.position, radius=1*dt.units.micrometer)\n", - "annulus = Annulus(\n", - " radius=12 * dt.units.px,\n", - " inner_radius= 8 * dt.units.px,\n", - " position=arguments.position,\n", - ")\n", - "ellipse = dt.Ellipse(\n", - " position=arguments.position,\n", - " radius=(12, 7, 3) * dt.units.px,\n", - ")\n", - "moon = CrescentMoon(\n", - " radius=1 * dt.units.micrometer,\n", - " offset=(6, 0),\n", - " position=arguments.position,\n", - ")\n", - "\n", - "particle = dt.OneOfDict(\n", - " dict(\n", - " point=point,\n", - " sphere=sphere, \n", - " annulus=annulus, \n", - " ellipse=ellipse, \n", - " moon=moon\n", - " ),\n", - " key=arguments.particle_shape\n", - ")" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "training_sample = data_pipeline.update()(snr=10)\n", + "plt.imshow(training_sample)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "fancy-gamma", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:06.232454Z", + "iopub.status.busy": "2022-06-29T20:15:06.231954Z", + "iopub.status.idle": "2022-06-29T20:15:57.511245Z", + "shell.execute_reply": "2022-06-29T20:15:57.511743Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 7, - "id": "0306fd7a", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:05.395954Z", - "iopub.status.busy": "2022-06-29T20:15:05.395454Z", - "iopub.status.idle": "2022-06-29T20:15:06.115954Z", - "shell.execute_reply": "2022-06-29T20:15:06.116455Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "data_pipeline = (\n", - " optics(particle) \n", - " >> dt.NormalizeMinMax()\n", - " >> dt.Affine(rotate=lambda: np.random.uniform(0, 2 * np.pi))\n", - " >> dt.Add(0.1)\n", - " >> dt.Poisson(snr=arguments.snr)\n", - ").bind_arguments(arguments)\n", - "\n", - "data_pipeline.plot()" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating 166 / 160 samples before starting training\n", + "Epoch 1/30\n", + "166/166 [==============================] - 5s 8ms/step - total_loss: 1.1863 - consistency_loss: 0.7993\n", + "Epoch 2/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0673 - consistency_loss: 0.0138\n", + "Epoch 3/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0529 - consistency_loss: 0.0074\n", + "Epoch 4/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0520 - consistency_loss: 0.0072\n", + "Epoch 5/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0446 - consistency_loss: 0.0070\n", + "Epoch 6/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0480 - consistency_loss: 0.0062\n", + "Epoch 7/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0439 - consistency_loss: 0.0059\n", + "Epoch 8/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0389 - consistency_loss: 0.0058\n", + "Epoch 9/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0524 - consistency_loss: 0.0062\n", + "Epoch 10/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0402 - consistency_loss: 0.0053\n", + "Epoch 11/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0415 - consistency_loss: 0.0055\n", + "Epoch 12/30\n", + "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0414 - consistency_loss: 0.0052\n", + "Epoch 13/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0486 - consistency_loss: 0.0059\n", + "Epoch 14/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0326 - consistency_loss: 0.0042\n", + "Epoch 15/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0430 - consistency_loss: 0.0049\n", + "Epoch 16/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0306 - consistency_loss: 0.0042\n", + "Epoch 17/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0312 - consistency_loss: 0.0038\n", + "Epoch 18/30\n", + "166/166 [==============================] - 1s 9ms/step - total_loss: 0.2855 - consistency_loss: 0.0671\n", + "Epoch 19/30\n", + "166/166 [==============================] - 1s 7ms/step - total_loss: 0.0483 - consistency_loss: 0.0077\n", + "Epoch 20/30\n", + "166/166 [==============================] - 2s 9ms/step - total_loss: 0.0330 - consistency_loss: 0.0056\n", + "Epoch 21/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0325 - consistency_loss: 0.0054\n", + "Epoch 22/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0341 - consistency_loss: 0.0046\n", + "Epoch 23/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0261 - consistency_loss: 0.0040\n", + "Epoch 24/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0238 - consistency_loss: 0.0036\n", + "Epoch 25/30\n", + "166/166 [==============================] - 1s 9ms/step - total_loss: 0.7049 - consistency_loss: 0.4456\n", + "Epoch 26/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0913 - consistency_loss: 0.0200\n", + "Epoch 27/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0538 - consistency_loss: 0.0089\n", + "Epoch 28/30\n", + "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0414 - consistency_loss: 0.0075\n", + "Epoch 29/30\n", + "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0379 - consistency_loss: 0.0060\n", + "Epoch 30/30\n", + "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0316 - consistency_loss: 0.0056\n" + ] }, { - "cell_type": "code", - "execution_count": 8, - "id": "fed997c7", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:06.124954Z", - "iopub.status.busy": "2022-06-29T20:15:06.124454Z", - "iopub.status.idle": "2022-06-29T20:15:06.221453Z", - "shell.execute_reply": "2022-06-29T20:15:06.221954Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "training_sample = data_pipeline.update()(snr=10)\n", - "plt.imshow(training_sample)\n", - "plt.show()" + "data": { + "text/plain": [ + "" ] - }, + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = dt.models.LodeSTAR(input_shape=(None, None, 1))\n", + "model.fit(dt.Value(np.array(training_sample)), epochs=30, batch_size=8)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "mounted-miller", + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:15:57.523244Z", + "iopub.status.busy": "2022-06-29T20:15:57.522760Z", + "iopub.status.idle": "2022-06-29T20:15:57.774743Z", + "shell.execute_reply": "2022-06-29T20:15:57.774244Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 9, - "id": "fancy-gamma", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:06.232454Z", - "iopub.status.busy": "2022-06-29T20:15:06.231954Z", - "iopub.status.idle": "2022-06-29T20:15:57.511245Z", - "shell.execute_reply": "2022-06-29T20:15:57.511743Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Generating 166 / 160 samples before starting training\n", - "Epoch 1/30\n", - "166/166 [==============================] - 5s 8ms/step - total_loss: 1.1863 - consistency_loss: 0.7993\n", - "Epoch 2/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0673 - consistency_loss: 0.0138\n", - "Epoch 3/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0529 - consistency_loss: 0.0074\n", - "Epoch 4/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0520 - consistency_loss: 0.0072\n", - "Epoch 5/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0446 - consistency_loss: 0.0070\n", - "Epoch 6/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0480 - consistency_loss: 0.0062\n", - "Epoch 7/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0439 - consistency_loss: 0.0059\n", - "Epoch 8/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0389 - consistency_loss: 0.0058\n", - "Epoch 9/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0524 - consistency_loss: 0.0062\n", - "Epoch 10/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0402 - consistency_loss: 0.0053\n", - "Epoch 11/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0415 - consistency_loss: 0.0055\n", - "Epoch 12/30\n", - "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0414 - consistency_loss: 0.0052\n", - "Epoch 13/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0486 - consistency_loss: 0.0059\n", - "Epoch 14/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0326 - consistency_loss: 0.0042\n", - "Epoch 15/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0430 - consistency_loss: 0.0049\n", - "Epoch 16/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0306 - consistency_loss: 0.0042\n", - "Epoch 17/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0312 - consistency_loss: 0.0038\n", - "Epoch 18/30\n", - "166/166 [==============================] - 1s 9ms/step - total_loss: 0.2855 - consistency_loss: 0.0671\n", - "Epoch 19/30\n", - "166/166 [==============================] - 1s 7ms/step - total_loss: 0.0483 - consistency_loss: 0.0077\n", - "Epoch 20/30\n", - "166/166 [==============================] - 2s 9ms/step - total_loss: 0.0330 - consistency_loss: 0.0056\n", - "Epoch 21/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0325 - consistency_loss: 0.0054\n", - "Epoch 22/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0341 - consistency_loss: 0.0046\n", - "Epoch 23/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0261 - consistency_loss: 0.0040\n", - "Epoch 24/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0238 - consistency_loss: 0.0036\n", - "Epoch 25/30\n", - "166/166 [==============================] - 1s 9ms/step - total_loss: 0.7049 - consistency_loss: 0.4456\n", - "Epoch 26/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0913 - consistency_loss: 0.0200\n", - "Epoch 27/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0538 - consistency_loss: 0.0089\n", - "Epoch 28/30\n", - "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0414 - consistency_loss: 0.0075\n", - "Epoch 29/30\n", - "166/166 [==============================] - 1s 9ms/step - total_loss: 0.0379 - consistency_loss: 0.0060\n", - "Epoch 30/30\n", - "166/166 [==============================] - 1s 8ms/step - total_loss: 0.0316 - consistency_loss: 0.0056\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = dt.models.LodeSTAR(input_shape=(None, None, 1))\n", - "model.fit(dt.Value(np.array(training_sample)), epochs=30, batch_size=8)" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:Keras is training/fitting/evaluating on array-like data. Keras may not be optimized for this format, so if your input data format is supported by TensorFlow I/O (https://github.com/tensorflow/io) we recommend using that to load a Dataset instead.\n" + ] }, { - "cell_type": "code", - "execution_count": 10, - "id": "mounted-miller", - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:15:57.523244Z", - "iopub.status.busy": "2022-06-29T20:15:57.522760Z", - "iopub.status.idle": "2022-06-29T20:15:57.774743Z", - "shell.execute_reply": "2022-06-29T20:15:57.774244Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:Keras is training/fitting/evaluating on array-like data. Keras may not be optimized for this format, so if your input data format is supported by TensorFlow I/O (https://github.com/tensorflow/io) we recommend using that to load a Dataset instead.\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "validation_data = data_pipeline.update()(particle_shape=shape_to_evaluate_on)\n", - "ground_truth_position = validation_data.get_property(\"position\") \n", - "\n", - "prediction = model.predict_and_pool(validation_data[np.newaxis])\n", - "\n", - "plt.imshow(validation_data, cmap=\"gray\")\n", - "plt.scatter(ground_truth_position[1], ground_truth_position[0], s=1400, linewidths=5, marker=\"o\", facecolors=\"none\", edgecolors=\"g\")\n", - "plt.scatter(prediction[0, 1], prediction[:, 0], s=1000, linewidths=5, marker=\"x\")\n", - "plt.axis(\"off\")\n", - "plt.show()" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAOcAAADnCAYAAADl9EEgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAs/klEQVR4nO2d649d573Xv3sutsee8cz4OrZj557m3tCEhOCUJKXoHLVCpxVSCxJvQIiD0DlchED0D0CFNxxxGiodBLzixVGFqJCoGioacNKqTXpSmqQhlzrO3Rlf5maPx57xzN68cGb5s757Pz9vW3G95uj3zZs1ftZ+1rOeS9b3d291Oh0lEonmYeBGDyCRSPRGHs5EoqHIw5lINBR5OBOJhiIPZyLRUAxFjePj40VVbrvdvtzJ0FCxbXh4uLo+d+5c7b7JycnqemRkpNjH/Px8z3/3350/f740XG3btq26XllZqbVdvHixut61a1etbW5urrr29/T3WcfmzZtrfy8tLVXXu3fvLj57eXm5uvb5WF1d7Xkt1d+bY/RxED6PHMfY2Fh13Wq1avetra1V12fPnq21DQxc/n89x+/ztrCwUF1v2rSp1jY4OFhdcz64jyRpy5Yt1bWv+9atW4ttHCPngP/uf5fWWarvKwfH7FYRPnt6ero+yetjKPacSCRuKPJwJhINRUhrSf/8s8/POSmRVP+cOz0jZmdnq2unYPzsk2ZduHCh7zGSkvGa1Mx/d/r06VpbRJtJ19iHUxg+2+kkqRvh1JV/+zh27NjRs43zJtXppFNNrmeJJkt1Kuv9u7hwpX+Xumkz55EiBkUbqS5u+Dg4p77WfB++p+8drtP4+HitjXNAyusUl/07fY9EsGpMV7wjkUjcEOThTCQaijyciURDEcqczuWJSM3NNnJt5/9UeTvnd46+DpolvA+X5yjHlmQ7qS73UJUv1eW0SO4uqeilWG6lLMnf+Tgox/o4SiYYjt1/5zIt15BymZsR2If3T9mMMiJlYklaXFysrl0+5/P4Xj4ffE+fb/7t883fcX/4vuJ9bjLas2dPdf3xxx9X19E58DH6+/RCfjkTiYYiD2ci0VC0onjOXbt2VY1OSUkFnWaV4BQp8q6geYZ0wenp9u3bq2t/F1I3UhN6l0j1d3HTDymeq/MJzoGbhThmNwVxLPydmx84Lp9vzivnzeeX/ftakGryWU7VSM98LTgu0jYfL8fhZjiOi/f5/it5EvV6HsE54bN83UmHvY39R+JSyVNOqr/3wsJCegglEhsJeTgTiYYiD2ci0VCEMufU1FTV6Nw68ugnR6fs5OaRknzhf1PecO7OPlxd3a8szN/5GCm3lsw7Ut3tz9+FpgSfR5ojaIqI3LtcDU+5tWSK8HFFsiTXz2VC/u2yGOeAbT4OyvguF7N/jsnnlLoAfxfKz9F+4bpEOhUHz0wUscK973PFNTt+/HjKnInERkIezkSioQg9hAinUlEQNe8lPXN6Qw8kp6QnTpzo+axIrR15CDECpt8AX39e5G0SUVf+7Z45JVONz3fkzUJKFplcOI8+DqIUAO59uufM6OhodR2JAByH38fnkZ76eN0c1i84j1zPvXv31u47duxYdR1Rb44rot6OjEpJJDYw8nAmEg1F38HWVxNQXdL8kaY4IkoaBb6SrkZ5cUifIidkp5P06Ik0f6Q30Xy4VrA0j1GeIHpFeVtE83mfvwt/x/uc0kWeP1wLIlqXM2fO1Nq47qTJ3gcDHvr1MpLqc8e1+OSTT2r3kTb7e5YsEE5jo7XoB/nlTCQaijyciURDkYczkWgoQg+hAwcOVI0uG5RylEp1eSlSJ1MV73IDZQM+y++LomNKsm+Uy5S5dCXpww8/7DkmHwv7j6JvXC6LvHYIvovPQRR4XOrD54CyfEn+lGLTAeUvej75/oiC4Evjj4LsI32Iy/hRkgAi2rc0m9Eryvcf94ubnYjZ2dn0EEokNhLycCYSDUVoSiHldfrBnKJO40pmEKcspA7uKVIq9xB52DiFoSqetNzpDH83MzNTaztw4EB17TlzSK3Yx8TERO2+KKiXpgm+SxTE63SS1Cpy5i6ZERxRoDHB3LFS/T1pivC1pUktyqVDuuqO6OzfKSg9z3zNiMixPsrdy/mOvJ2cbl8t8suZSDQUeTgTiYYiD2ci0VCEMmfkkhbVvyAiM0hJJpTKMmckL7pMe+rUqep6586d1bWbM6ampqprl/UoV0W1MKJ/pwwavSd/53JrKQhZqstYnG+XK6nO93nk35EpheseJUpjm5sRIlmP8882N2NRvvMxUiaMEqVxf/ve5Nx5WUjun1LtFUfmrU0k/hwhD2ci0VCEtJZUxz/ZUe5RUjfe52aQkslFqtM6eodEZQq8Dz6PfbgX0MmTJ6vryHTgc1DKrRvlKI28qfp9loN98NlufogihBjo7TSOoCeRU0bOP8WBKEDe35990izEsgeStG/fvmIfFD/6LRVyNZXEnWKXwPn330QeSOvIL2ci0VDk4UwkGorQ8X3Hjh1Vo9MqfpYjzRMprlebKlXYkspa2CgvTuRwzv6iasqurS1pMf15JY2pjz+ip7zPNcMcs1NeriHXwp/FPqPKXCW67n34fPNviiWu1eX4I20ttbw+H5GDP8fvYyw5u7t3D2mua/dpZaB44Pubgfp+zrhOp0+fTsf3RGIjIQ9nItFQ5OFMJBqKUJ9L3n01ibWoDi8FTUtx5EUpYNtlBrZF6ukowJd/ex+UFVzWKyUNc1mP8+FzQFmV8pGbKdiny2lESQ72NjcdsI2mlKvJwUu5kOONEmT5e/JeynDuZcRx+Htyj+zevbvWRpMa18zfhfPhe65UriLyovPyke4B1gv55UwkGoo8nIlEQxGaUg4ePFg1+mc5qjrMz3ukDo9MKVGlKyIyddABOjIBlEwRDqdPfF7kZUR65u9SCkb3MUbePZyDSASI8ueWqntH1cJdBCCN4/6InP19HAxQICKPqSi3k9NheodFXkCRQzvXnfQ0yrfk4BqurKykKSWR2EjIw5lINBR5OBOJhiKUOScnJ6vGqP5Hv1WYXUaJflfKixvxeO+/ZN7oN6mUP89NGP3WgeHzfL4p60URNqX+fMyUb31+2eZyIBNhlcrkSXVXPCY48z5LwfLev68nZcLp6enqOtJXuHsg3eb6daX0tY3GTzMOo2O83gr7dNmXfZ49ezZlzkRiIyEPZyLRUIQeQhH9i/LA0HvIzQ+1h+PT7pEipXw6TrNKVbSlOo0rleuT6tTHaRA9oyJqQqrjIgDNBd4/2yJzD+H9kwqSnrpXF2mnz3eJRvt4o/mmSYPP8vmOAto5x5zfyJzm42DUiM9jaS08KoXB4k6bud9JZf28lPL4SnEpiGp8V7wjkUjcEOThTCQaipDWkpqQKkixQzjpWRT8yzZ3sCYlLVVMlmJKSm0faYs7Q5OaeB/9VqyOnNHZFnn+8Fk+jijYmuA8ulM559u1y64NXUekAXeUnMC9jyhFp7/3OpwychyuAS95hkn1fcC1cM0z+48qoXHNIi260+bI6rCO/HImEg1FHs5EoqHIw5lINBShzMmgW3pdSHWZwtXyRJTMifKFy0ClVPx+H+UXN9tQbqXcEOXgjQK23auGc8B3iUpVuNxaiq5w+ZwySxS0HqnoKYu5ap99Uk7zEnr8nT+rlMzNdQbcV94/o59oQnN5LvLIognJo6kIyplRUHlkUozWJQoWL8nWtXuueEcikbghyMOZSDQUfQdb+2ef9M9pHL0wSCH37t1bu499+mfeaXSv/qQ6zXIzBWki1d9OT0mHI9V+lAuHcLU5+4zU8hEl5e88QJn0ieajSIzol9q7lxH79/FyLSjqRHvH20rB3E4tOceRGBGNn+vuJqIo31KpnEQUNBHl3Z2dnU3H90RiIyEPZyLRUOThTCQaitCUQjW0J1FiW1RpmbKHq5MpN0RRKZRlvHwfeb27GBKUX7ymBeUBV/tH+W75PMohLtNy7ly1z2fznd0sxDmI3BQ5XjeXREnT+Gyui7uZRcHnJffDSFb3fcW5o5wZ5dl18xffjdElUrlejMvPkYmE90aJxjinUUK1EvLLmUg0FHk4E4mGIqS1UX5RqqjdhBFFRhBucqgNDFQl8kYiDfIU96TR7MMpEj1nnMKQ5jr1KXmYeIQDc9o69S7lR3UKTfrkc8D35n0+96SdXr2aY2Sbr+2ePXuqa58PzhVNdG4WI7WMyiD0G83jZgp6HUXlEokoh1AUPB+V4YhKS0YB59Xvr3hHIpG4IcjDmUg0FHk4E4mGInTf27NnT7HsPLm2yzZU4VPGchNDKYmXVJfFKEM4V+fvvH/KM5QTXL7gsyLTgZs3SvKdq/ZL5dgd7M+fxf59Lfbv319de+5UYmpqqrp+8803a22lMvEuL3LNosgKmrxmZmZqbZHrHduicoP9zqOb+dgP+/f+eC7cBMg+OQdRpg/fc+x/bm4u3fcSiY2EPJyJREMR0tqRkZGq0WlWZC4plaFz00lkZilFtrjanGYFp1l8HqlxlEvXVe+Ryp50J1Kbu+dIP23XkhBKqs+9m3RY1TmaewYyO9177733qmsXMTjHUXVsvou/ZymBmPfh70aQRrs3WMm8FkXpeFvJjBitu/fBef3www+T1iYSGwl5OBOJhiL0ECJcY0VqGAX18rPv2ixS3qiCMvt3KhXRsyi/EEE65jSINNGdqPmeHGMUWOsoUe+bb765dh/f2zWoBw4cqK5JXaMA5VOnTtXaPvzww+o6cvYnHfO5LznWu1dUybldqq87944HTbN/p/zs0+eqVAU8gu8JPpvz4+/J8fueiMptrCO/nIlEQ5GHM5FoKPJwJhINRUi6I8+ZKDkXQVnP5VbCZQ/KLyWzihTXELnpppuqa6rXo4gAb6MsHFVJJtw8wnfzPK233357dU2ZxU0MjPhweZTPu+2223qOyfv0MX7+85+vrt96663q2oPDKW8dPXq01sa5o1zpugb+He2dKOg7CraOgsr53qXq6VI5+NzbKIP7GLn3/T37kXfzy5lINBR5OBOJhiL8tvKz7JQxysVayuvZ9XB82l21zDb25wG+UW5QgrQlCnz1NP98npuMSiUBfK5YcvDee++ttd1yyy3VNb1q3AOGpg+nrhx/ibZJ5UBmHwfFCH9HzrcHfZ84caK65vp5XibSdw/iL5WWcHrK3zntjEwYpNtR+YsoLzPnLspbS7HHaWyWAEwkNjDycCYSDUUezkSioQhlTpo+oqBVb6OsQ7nE1dXs392zKDdEJdiiqBq6slF2upocpZRRGNQs1eUjBih78izKmfv27au1PfTQQz3bXEah66Dno+X8sx6Nm0HohuayHuWlw4cPV9c+Hz/96U+rawZv+5gpI0dyH5OrSXVZm/e5jEx50eU3zo+/J+Vd7jHvg+/GfeR9ct6ifep6jujedeSXM5FoKPJwJhINRUhrSYNcTRx51ZcqPruHEPPMRLlNo8iTKK096UhUHoBwukGKGuVHJXX1KAZStZ07d9baDh06VF3T28QjYEizoiiPKDCd4/I5oHnm7bffrq4/+OCD2n2PPPJIz2dJ9bnjs+hxJPVf9pDj9/1WqsQtlfMESfU9EY2DaxuZPaKSERSlojGWkF/ORKKhyMOZSDQUfVcZc7pHSuDa2lJb5EDs4GefWszjx48XnxVpbqO0+aSd/i4co3vtkArSm4reNpJ06623Vtd0xpfq70aqxlw9Up0WuRaWpRT83Up44IEHan+/8MIL1fV9991XXfu7UEvqmmdS8eeee6669jn9zW9+UxwX6SXpekR/XSSKRJgSlXX6S1ruqT15FjjfrmHn3vHx97NO+eVMJBqKPJyJREORhzORaCj6TvDl3L1UIViq82vybjeJkNdH8ifV+e4pQlNKlECM4/WAZ6rAXTaIgmIZbcIkW159m15A3h/lR157NMixY8eqa5exmJwrCtjm3HmCr6eeeqq65hzwuVJ9H/h7vv7669U15XM3I/DdWFKw17hK99GzyPcf59hlyVIpBQf3o5vrOI9RvuIoUVr07OqeK96RSCRuCPJwJhINRUhrSUOdmkSf/X6rb5FiOK3l8yJvIbY5rSVdJZX1EgOkYO5UHlWDplmBFNeDofluBw8erLWRkpLSOZ3ku/zyl7+stZVy33rFsbvuuqu6dm8tmgto+nnwwQdr91EUca8dvjfn1N/l/vvvL46xlI82CpB3ikjxwCkvqWZU7YzP831Fkx3797xMpO9R5ewS+pY5E81ERx2dGTyj08OndWr4lBYGF7TaWlW71dbq1lUNrQ1p7PyYJpYmdFAHNaIrlztPNAN5ODco5obn9Obom3pv23u6MHih9031/1nr5/q5JtuTuv/i/bp14FaNtPOgNhl5ODcQOp2OXll+RT/c+0NNb5m+pj7mBub0wuYX9NM9P9VtF27T5xc/r12ru678w8RvHeHhpPwVRaE45y+V5XNZj1zeg63pCka50iM+IhMMx1yqmCzVg2ddFqBpws0snB+6uXkA8Z133lldf/zxx7U2JsWibLYui3UktSS9/sHrenn/y5rePi3VxeJrQrvV1tGRo3pnyzt6bPUxnXz9pAY7g+qo20WSeOKJJ6prT9xFuYrr9LWvfa123/e///3q2veEm7nW4fsvKtFHs4tH90T7haB+JCpTyHG5+Yv3eRRKP3lr88vZYMxqVC/pLu0e+O96/s4f6eJgf36zV4NOq6OfD/9c22/frgenv6zTE1/TQ8uvafta70OS+O0hD2dDMatRHdEDWmkNa6bzu+q0jkjq/UVrrbU0sjCirfNbtXl2s4YuDEkdaWjzkFa2rujc+DktjS/pwtiFS5/hHljaNKp39/6ehrRDvxh+XH9x8Wd5QG8wwsNZys8plVPSS/VogihfLOGqbFJGPssDWvm3q+VJqUkjXK3NKAOnrjR9eKA0vWo4XkZ1SHX67rSNNHfdE2quNabnWw9qbejSWIa0U3uXv60Tm7+l1YHLB3R4fljjb49r50c7NbjanZNmeXlZmz79b1KTWh1d1cKdCzpzxxm1tyCnanu/9i5/W0O69H6rA5v0i9G/pAdnjuj999+v9cl3c7rH+aEo8tJLL9XuYzRLVPU6ylccBUrTPOVrVspH66IZ95zvfT47ypUcmQr7MaWkE0LD0JH08uA9WhuqC5brB3SovV+D5wc1dWRKh/7HIU28PdHzYPbC8Llh7frVLt36327V/jf3q9VudR3MdawObNZbE48qiMJLXGfk4WwYWpImWv9Vq5rpahvSTu0//2908LmHNfrhqFoljnqlZ7Rb2vebffrci1/U1IV/3XUwJWlVMzp49lkFWWAS1xl9ewj5Z7/kaSHVaQYpgd8XVfviZ5/aX9eIUdPqdJWUidrDqGKaV8Cm5vWLX/xirY1eNcytQ1ol1efO54BjmZ6e1uLQon526w8l/aznF601MKnO4/9IneefUWvx0tg4J+zf34W0f+qOBzR3zzc02Oqu+L2qGZ3Y/C0tTpzT7qN/XQP4f/jLL79cXbszOteJc+OeVQwkd802++R9kQO7p79kEEKkreW4nHZyb7pWulTFzM9ItO4euN8L+eVsEDrq6KWpl7Q6sKrVgeOXZMweX1CNTGj1r/yBOqPXZp9sje3R8Xu+obVN5YO5OnBcC9sW9PrE6z16SPw2kIezQXhv+3s6se2y3XP9gHbac903X+MBbY3t0abf/Rc9D+ZaZ6ZL6fTK5Cs6O1Suq5q4fsjD2RB0Oh29Oflm178PrJzW1Gt/Kp2f7/7RpwdUo7u723pg/WC2tk12tQ0sn9HYG/9Jqy3L0dRq663tb3Xdn7j+CGXOSBajXOmcnHJUFHBKRMGnUWA3+3QZtlSZ28dB1b7Lo4zQoDePJN19993VNWUn92JitMn0dN3tbt0r6Pjgcc2Pzctx5xt3atPigoaef+bSQRyZqN8wMiH91X8q/fiPpMVTtYgJRmd0Rndr81f+uTRS98SSJJ2fV+vIM1pZPKXxLeNauK9u7nln7B09uviohjRUM5M5vvrVr1bXnI933nmndh9NV16l+9e//nV1HZXyI3w9aa5yTxzKfpQXXeaMkoRxjkuB1z5ml62jZHRVf1e8I/FbwaubX+36t7H5MU3OXPrKtRZPa+j5Z3p+QVtbJy4d0MIXtDO6W3r6HxcP5tDzz6i1eOl/IJOvT6q1VlfRLg8u69jWY92/TVxX5OFsAFa1qt8Md6eL3PdRPfXk+gFtne/23Fk/oB07oNXB3DrR/eDqYF7+v/rg8qB2HN/RdevRrUf7e5nEZ4aQ1tIZ3YNzSXOdavJ3VGU77SRt8TbSBVICpymk155flKp9/i5Kje9tpLIMVnbQSyqqKOX5aNfW1nRy8KTWWnVzwNDFIe2d3avBobqDQWvxtAaOfEdrT3ZT3NbWCa09+QfVgYsOZmdpXvrxH+nip19MUrKxt8Y0c7A+lyeHTuqjjz/SF77wherfvMoYg8AZeO15dlkJ7ejR+qEnbeYec9GJ6+SiCPeOVwjjWpQCI7xPp6vM4cT+ory1fkYiml4994p3JK47Tg6d7Pq38YVxDbZ7e/60Fk9p8EhviruuJGpP3VP+Yn56MLXYO5nWyNyIWhfr1HZ1aFVLm5d63p+4PsjD2QD0OpxjZ7tNHcSVDuja4d8vH8z//e+KB1OSWp2Wtsx3x6UtbEtH+N8m8nA2AHOD3XbM0cXRHnfWUR3Qpfn+HvTpwWwFB3MdI3Pd3lvnRsoxvYnPHqHMSc7srnH91jmhi5S73hEup5GT06XLg24p67l6mjy/JCdI9YBql60pO/mzGYnC8XvuVY7RE3wdPXpUF0a704zMvT+npdnLNJJjrJkzFqY1cOQ7aj/1h91mFqCzNK8WDqbL+DQrbN++XYudRc2qLud1hjs1OdADx1kHhroAVsqWpGeeeaa6dnmOLqPcR26e4jr5ulD28+RzdPWLEsdxflxuLelbfO9QJne52N0KeyG/nA1Au9UdPtRq9+9x3lo8pYE/+9P4GS/+l76+mNHze40zcf2Qh7MBGOh0L0NnoP9Yrc7obrUf+ZvxMx77211mlrDPHs/vNc7E9UNIa0n/3POfNMspKWkXKZ1TDFICV0OzrF0UARN5rDCPKGmbj5eqfu+fdMpL3pGS0TzgURg/+tGPej5LukSNN3uaPEmd7R0Nn71MDTkuzlVndFdvzyFDa+uE9KV/ouGffFcD506HlZWXlpZ0bqhbvty2aVst4sbLCHI+WM3a541/u6hz++23V9d8lpeg4Hx4/inuHfdsIyJTnu93olTi0vsgdY3yEJWQ/ytsACZXu31dl3eUXR3X0e/BrDAyrpUn/qHa267sLH9+olunMLHS53MSnwnycDYAuy52H5YLk4VctJ8iOpidpTmt/viP1VnqFc1y6YBGFLfT6uj8ePfh3LncHZSduH4IaW0USEpK4Nos0lBqsKL8P679LaUmdDrAcbhGmWOONHMcI2mVVKdITk2oeaXDtpdj4H2uWZyentbAyIA0Uftnnd9zXoNbBjWwdukdSOvWtu5Uu/TFPD+vwSPPaGjxlPT8v+/pSaSRcbWf/ENt+dmfaODcJe+rWpDA/lV1huoy5/DqsFZOrujg05ffxee7FNB+5MiRrndeh3v+cM241n4ftcGu+eS7eM6mUl4p17RG+YvYFlWopvXAx5EeQhsEYxfGNLhWN++0h9uaPzjfdW97686i2aR1fkED/+c7lVY2clTojIzrwuO/35Pinjh0ouvfJs5NXHNalMS1IQ9nAzDQGdCBuQNd/z57+6w6QtGcrTu19PjfLx7MLT/7ky5zydUe0IubL2p272zXvTfN3NT1b4nrizycDcEtp27p+rcLkxd0Zv8lbfT6wexs6Q77Wj+Y6xS1q/3TA9pLBl0/oGtbL8mTJ+8+2WVG2XRxk6bmprp+m7i+CGVOcm2X9aLEWgRNKS430MPG+yjJoy77UlXunj+UF13dTtADyQOD9+/fX127Op/yBvOjupkiks/XvUimNKVXF1/V/Oh8rf3jv/CxVk/s0Ja//A/U2dzDLLA0r8EXntHqp2FfNFfVPKbOntTYL/6zzj3297oOeGdkXGcf+bs693//lWZu785ZdP/y/brlplu63s1z2rIkBZOJeSIwyudcI6luPuH80nQn1eVbT6jGOfB15z6mSc33FeXRSK6MQDnWPZz66TO/nA3CbdO3df3bwOYpDf61f6Z24WBe8pXt/cV0DC7NaNuL/1GtCz3iQbdNauTwtzTU3l/796HOkO47f1/X/YnrjzycDcLU3JT2zF/+yqwnfB4c7A5+vhondmL9gKpHwPZg63Li6nU8dvYxjbav7ISf+OwR0lpSRqcfkSqYn3OncUSpGpn/jnTVTS4RpeYYSdHdG4kB1a42JxV3rxHmECo9V5IeffTR6tq9k0iV9+3bp7t1t77b+a5WOzt65q2V1HUwKTqwP6dOl6nmJ9rd/g89ZViWfti5sqbDw4fVGr68TswJywrV9f6lhx56qLr+3ve+V7uvRC39XTyAgGBblC/WvdL4POaO9WdRrOrHm0fq3h9RAL6XMOmF/HI2DGMa09PtbxYPZrs9q7Wf/9ur/mI6BpZm1Hrjj7XW6Z1Zfmr523pk7itpPrmByMPZMHQ60icXv1oskfDJyL/U8S//SmfvOKtO69oKmbSH25p+YFrvPv6iprf0Tlw9qJ16d/TLurYnJD4L5OFsGFot6YnhdzW4ZtW3kIm9vbmtmSdm9NHf+EjzD87r4ub+tImrO1d19smzmvk7Mzr9udNSS8XM8kPtFd175s/yu3kDEcqcdDly1zXKM1GgKuUvN3VEuWopS/JZLmNyXFGkBeHjpVziUQw097iLF2URysivvfZa7b6nn366uvbxP/nkk9X1iy++KEm6SR19pfWO/ufyXVrRUO1gEmuja5r/wrzmO/PadmGbxs+Na+2jtUv1OdvS6MSoLmy5oMWxRZ0dO6uVLfX3Xsf6AZ1a/rYGtVNbBtr6W/vnNHX757pcEbm2HlFC0w3lL5fnaFryKB3KrVwnRv1IdT2By9ZRgi/KenQjdF1Dqd6PVNd7RLqXyATYjykli+c2FLsGlvQ7m9/WT1Zu0c2bfqJn12a0Wvp/WetSCpFzI+ekayufoomLK7p/4cf6YNvv6BuHLmiqz69x4vohD2eDsWtgSb+3+f+p1Tqg8688qV8f+rWO7+xd3fpa0Wq3dOdHd+rxzuMa0ICmlv+Xpu587DN9RuLaEB7OKGU8PTYi8wbpjQdG02vCqSapD6mm007eF6nUOQ5/Fk0rrjan98nu3fUwq7fffrtnn/fee2/tPppjaIpwMCLGyzY8fO/DelgP6/2V9/Vi60UdGzp2zQohSRpuD+uu83fpgXMPaHx4vJaTl2p/mkSkegC7VxJndMizzz5bXbsHD9csCuKnGOGlMGp5dm1PlPIQ+bNJST1iyr3ZCO7bKFA/EttcROqF/HJuMNzcuVl7z+/VmdYZvbbpNb09/LbmB+f7+m2r09Ke1T26Z/ke3bp4qzZ1Nl35R4kbhjycGxTbO9t1ePmwDi8f1tqmNZ0YOKHpgWm9M/+O2gNttVtttS+2NbQ6pG3ntmns7Jgeu+UxDX265Cud3sqhRHPQ9+F0etBvmsvIuyJKr+kUYR1OB0iLXBtM9EuDnIqwT29jKQFSJNdAUhvs47/nnnuqa2oIqcWV6jTR6eTS0pImNam7dbe+ed83q3/31JXUPD/88MO1Nt779a9/vbr28hH0qnFNKOneD37wg+raNZMsmxFpfCcnL6dv8b3C/ehiSinHj/+O+yCqbO0eZRTPuCd8/7l3EhF5zlV9X/GORCJxQ5CHM5FoKPJwJhINRShzlkroXQnk4ZQdI3V1FAwdoVRFW6rLvpH8QrnEE3DxXTwyh1WvKYe4hxD7/9KXvlRro5xGOcSDc1kB2kvvcQ4o77oZ5NVXLxfopdeSJL300kvVNYOoGUQuSb/61a+qazeNvfvuu+oFN6XwbzfXcU9wz1HWlepr6DIt95zrLri+fJbvHfbpe5/3Utfge4dj9L3v79ML+eVMJBqKPJyJREMRclXSwkOHDtXa6A0SmR8i+kHVvquhqWLnODyXDCkeK2BLdbpXKu8g1Z2h3QxC5383wTCwmc7drtqnZ9Fzzz1Xa2PeHZZxcNMVHb99HKSeNC05zeJ7uwcSHdxJqZ2OrTvn9+qDc/XGG29U1z6nXE83pZRMb+48T08ln6somJtzEJlcuM+i6thRsAXPBfe6FJsRq99f8Y5EInFDkIczkWgo8nAmEg1FKHNSTfzBBx8U2xx0UStxfEfE68n/oyBVl/VKZhyXbyNXKpp4XL5gPzQjuExLmeu+++ppJjmvTz31VHXt8mKU5IzvRtc+74OyL13ovI2ugi6zsbTfsWPHam18NmX8SC7zPRGZTwjOaVQjJ0oAx3l0c0m/Cb4iN1Y+2+u5eC7fXsgvZyLRUOThTCQaipDW0gPEA42psvcyBaQIpL9OHUg/vEQaKWkUUE11vqurSQVJz5zWRuUB+bebcV555ZXqmmX+PBqB5QfcNMFIFI7L6RirQXvOU95LrxePXiE9Iz2V6vPP8TOgXKrPo68nxRmuk4sN/eZ6ovnE1yyiq3xPFwFKoo7vnVLkifcfVXjnfR5kHwVzV8+94h2JROKGIA9nItFQtKI8Qfv3768ao7SW/jnn36SF7txOeuNUh5SJFMMpHamUa9UiDySCFMm1b6S8rnGjRw/f2akr73PaTM8cvucdd9xRu4+O71EaR2oBXdygKMJAcakuOpAO07lfkt58883q2qkZNagck9/HcUSUsVTl2v+OgjKi/FZs8znlfHj//JtrfTXB1XzeyZMne/4wv5yJREORhzORaCjycCYSDUUoc05NTRUbKSM6J2dblJKev3OZs5T71mWPSC5hn5HHB2VTj2yJSrVxjFTRe1A2I0p8rjg/jFBxDyyOOfKcoczp5oaXX365umZUh1SX3WkWclMK18KjTUrBxZFHk8vg3I8ck89HFMhMec71IZx/6iFcLqZ+xMfP/imbemB3af952+zsbMqcicRGQh7ORKKhCGntnj17qkanpPzUu5mC1CFSV5NOOr2hgzt/55Q0Gj+pRClfqVSnsj7G0rv4WCKPFT4v8kQhLfL7WEXaqSbHSDrmXlek124WoqcV1yISWZxe+/PW4XNKREHHXNsoqCGi+R4oUTLV+P725xFcT9Jh74Nz5W3cm2lKSSQ2GPJwJhINRR7ORKKhCGXOAwcOVI2ukibv9ja6MXluU6IkE0rdpeHWEcm3LkuWXPuiUoH+LpFanr+jSp0RJFIsd3P+KTv5vEXRPZSPaCJxUwcjKLz/Urk6XwfOKd0Spfoacr5d7uMceFvJfOLvzLVwmZNt0VpzvG6q4XpG6x7t4WjPcV7n5uZS5kwkNhLycCYSDUUYbM0IDaeTUc5PfsIjNTqphKfsJ13gfa56p7e/UyR690TRKxyjRxaQ/rm5hKYJqtSd3pBeesA235NUx+eNY/b8P+zDI1EIUminq2zjHDtlJG2O8uLynd07hjTR55SmoCjInuPySCL26XuilNPKPcN8zKU+aD7y33BOvc1Fjl7IL2ci0VDk4UwkGoo8nIlEQxGaUnbt2lU1unxBDu3yADl5pNamPOByGmWuKPIkylFaynEbZW5wGaskA0Xjd7V/VKqdMhzf2eWoyIWRiFzeCH8XRrNEMiHb+i3p7utA10GXxUrRLG7qoIzo8jOT0fn+pu6BiPaVj5F6COoQfBzROvF9jh8/nqaURGIjIQ9nItFQ9F2u2tPHR6aJUqp8v49mC6dPJc8iD36OaLPT13VEanJWwJbqgdP+7H6jb3ift5Hy8dojPDgun0eauUhlI2+nyOMmMjHwdz4Ozg9ps1NSUl5fd1JDigA+3kjciHLrlpKBRQnmIg+niOZHXnT9IL+ciURDkYczkWgoQlrLT3v0WXYtVelz7pQuooKkagw8dm1bRFHZFnmbEE4nS/lzfcyRlw6podO4UsC256OhCBDlWI00rVwnVq+W6rSOc+/zW8rBI5Xfxb1hoopppT6i/LbRvnIaW6Le/p7sw8dI7XsUsM21cNocVemr+rviHYlE4oYgD2ci0VDk4UwkGopQ5qRsEFWUds5fkl+uRuVd8kBy2aAUPCvVZQWaIlyG4O/8XSK5h6Cc6TI4587rxRCRJ1S/AcSUZbwPl2NL/fN3nmiM7+lrwcicyHzE+Yl0BtGeY5tHEkVy8YkTJ3r+7mrMfHx2qV6O/871FW6i6oX8ciYSDUUezkSioQhpLSmNq8Opko7oR5SXlJ/9yMGatC16ltM2mnQ4fh9TpNrne0a5ewmn13Ru97T/bIsC2CMTCcUF0uaobF5UXToqoRGBFI+O+6V8UFL3epZy5l6Nh02Ud5d0lfu7X+8yqVyOISrb4IjORTWmK96RSCRuCPJwJhINRR7ORKKhCGVOBsVGJdhc3U4eTrkvkqP6zTkbyUoOjoNyZWQu8SDnKBET5VFGULhMyLnyBF8lM4jLJFFQOeeH8lYUTeHzyPFHuXo5Py7P8Xl0cXNdAF0kXR7l3/ydlyzk/Pi70Dzje5O/41z5/otc70qypJ8R7jmfgygQfh355UwkGoo8nIlEQ9F3ZWuP1iBdiFTGpZIFUlw2j1SNFMM9Skr3ef9RFW3SsSiXjEdysM/333+/uo7oTZRnJvJG4hidGpcibqL5iLyMovKO7NPfpRTM7R48pHhuWuI4+DunnVxD97pinz5+gl47UfSNU1AmHuB4/YxwfjxSiecnyzEkEhsMeTgTiYai7xxCrvWKnIb5OafW1TVuUT4a0id6njg1joJWSZ+i1JWk9lEZBB8j6d/NN99cXUdOzd4/x0+a5bST9Czy1uo3FamvRUkrHTmmR9WaXetNkCa6qFBywHeKzvlwOsk2HwfTZkZeV5yryCOL6xfNdzRXJeSXM5FoKPJwJhINRR7ORKKhCE0p27ZtqxpdXU1ZMoooIbeO5EqXxSKTAMHfeW5dylFRRWbKiK6yZ/9RNeh+y9W5vFtKMuXPOnDgQM/fSPV5pbzvJoAojyrlNI7RE6pFwdwlmdPNCNxLPt8sb0ivJZeROX7PJ0xdgI+xFATusmmptIRUf5+SbkSq76vIdLWwsJCmlERiIyEPZyLRUPTtIeSeFqSMUW4a0oOoopR7ipS8TSLHd6dqpUrRUY5Sp0h8z8i8QUQqdaeaUd5TgmOOHNr5LlFFaR87TWWkzVH+H28rVbP2NeN+cW8n9s/fRSa0yKurVNbDx+ggdfV14fijPFtR+Qv2mVXGEokNhjyciURDkYczkWgoQvc9ukW5XMm/Xfag+t1L6hFR3lr2z/tcZqPc4Cadkgzn7nVUlXuQs7uXESWVvffBcblavlQdO0o45fJiKSGXu+RFVZiJKIqG8+1mlttuu626pg6hX7ONVH8X/s7dNDlXkawX6Rc8Wobg/oty2kbRQjTPZLB1IvHnCHk4E4mGIjSlJBKJG4f8ciYSDUUezkSiocjDmUg0FHk4E4mGIg9nItFQ5OFMJBqK/w+Lp6P8h1TApAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "20f44a6b", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "interpreter": { - "hash": "dee7c62952cd92a9f95e3a9cf2ab80d8434e980a2c662f49192ac9761f392c34" - }, - "kernelspec": { - "display_name": "Python 3.8.6 64-bit", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } + ], + "source": [ + "validation_data = data_pipeline.update()(particle_shape=shape_to_evaluate_on)\n", + "ground_truth_position = validation_data.get_property(\"position\") \n", + "\n", + "prediction = model.predict_and_pool(validation_data[np.newaxis])\n", + "\n", + "plt.imshow(validation_data, cmap=\"gray\")\n", + "plt.scatter(ground_truth_position[1], ground_truth_position[0], s=1400, linewidths=5, marker=\"o\", facecolors=\"none\", edgecolors=\"g\")\n", + "plt.scatter(prediction[0, 1], prediction[:, 0], s=1000, linewidths=5, marker=\"x\")\n", + "plt.axis(\"off\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20f44a6b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "dee7c62952cd92a9f95e3a9cf2ab80d8434e980a2c662f49192ac9761f392c34" + }, + "kernelspec": { + "display_name": "Python 3.8.6 64-bit", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 5 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 } diff --git a/examples/get-started/01. deeptrack_introduction_tutorial.ipynb b/examples/get-started/01. deeptrack_introduction_tutorial.ipynb index a365eeb12..33f5fde07 100644 --- a/examples/get-started/01. deeptrack_introduction_tutorial.ipynb +++ b/examples/get-started/01. deeptrack_introduction_tutorial.ipynb @@ -1,954 +1,954 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# DeepTrack 2.1 - Introduction\n", - "\n", - "\"Open\n", - "\n", - "This tutorial gives an overview of how to use DeepTrack 2.1.\n", - "\n", - "### What is DeepTrack 2.1?\n", - "\n", - "DeepTrack 2.1 is a software that provides a comprehensive framework for digital microscopy enhanced by deep learning. In this tutorial we'll use the example of tracking a single particle to demonstrate how to effecively use deeptrack." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:11:50.722429Z", - "iopub.status.busy": "2022-06-29T20:11:50.721930Z", - "iopub.status.idle": "2022-06-29T20:12:15.986298Z", - "shell.execute_reply": "2022-06-29T20:12:15.985800Z" - } - }, - "outputs": [], - "source": [ - "import deeptrack as dt\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "u = dt.units" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Generate images\n", - "\n", - "In order to train and validate deep-learning models to be used in digital microcopy, we need to generate synthetic images. For example, these images may be like the output of a digital video micoscopy experiment, where we want to track some particles.\n", - "\n", - "In DeepTrack 2.0, any image can be viewed as a series of **features** applied in a sequence. Each feature takes an input image and updates it according to an **update rule**. For example, a feature can add a particle, introduce some noise, or image something through an optical device." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Features and properties\n", - "\n", - "In DeepTrack 2.0, these features are classes implementing the class `Feature` (see also [features_example](../module-examples/features_example.ipynb)). The way a feature updates an image is determined by the values passed to the class constructor. These inputs are converted to **properties** (see also [properties_example](../module-examples/properties_example.ipynb)). For example, a property could be the position of a particle. \n", - "\n", - "For example, the code below creates a feature: a point particle implemented by the class `PointParticle` with properties `position=(0, 0)`, and `intensity=100`. We use `u.pixel` to denote the unit of the property. Most of the time (such as here) this can be omitted." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:15.988799Z", - "iopub.status.busy": "2022-06-29T20:12:15.988799Z", - "iopub.status.idle": "2022-06-29T20:12:16.141300Z", - "shell.execute_reply": "2022-06-29T20:12:16.140800Z" - } - }, - "outputs": [], - "source": [ - "particle = dt.PointParticle(\n", - " position=(0, 0) * u.pixel,\n", - " intensity=100\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above feature is completely deterministic so that the particle will always be at position (0, 0). For machine learning, it may be more useful to add a particle at a random position. This can be done by passing a lambda function that returns a pair of random numbers to the property `position`." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:16.143798Z", - "iopub.status.busy": "2022-06-29T20:12:16.143798Z", - "iopub.status.idle": "2022-06-29T20:12:16.296799Z", - "shell.execute_reply": "2022-06-29T20:12:16.297300Z" - } - }, - "outputs": [], - "source": [ - "IMAGE_SIZE = 64\n", - "\n", - "particle = dt.PointParticle(\n", - " position=lambda: np.random.rand(2) * IMAGE_SIZE * u.pixel,\n", - " intensity=100\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A point particle on its own does not make much sense when thinking of actual experiments. In order retrieve an image, we need to define also the optical device through which it is viewed. In DeepTrack 2.1, optical devices are features that convolve the input image with a pupil function. Here, we will use a fluorescence microscope `fluorescence_microscope`, which is implemented by the feature `Fluorescence` (see also [optics_example](../module-examples/optics_example.ipynb)). \n", - "\n", - "By calling the fluorescence microscope `fluorescence_microscope` with the point particle `particle`, we create a new feature which resolves the image of the particle as seen through the fluorescence microscope." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:16.299798Z", - "iopub.status.busy": "2022-06-29T20:12:16.298799Z", - "iopub.status.idle": "2022-06-29T20:12:16.454799Z", - "shell.execute_reply": "2022-06-29T20:12:16.454300Z" - } - }, - "outputs": [], - "source": [ - "fluorescence_microscope = dt.Fluorescence(\n", - " NA=0.8,\n", - " wavelength=680 * u.nm,\n", - " magnification=10,\n", - " resolution=1 * u.micrometer,\n", - " output_region=(0, 0, IMAGE_SIZE, IMAGE_SIZE)\n", - ")\n", - "\n", - "imaged_particle = fluorescence_microscope(particle)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can finally create the image of the particle by calling the feature `imaged_particle()` and plot it." - ] - }, + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DeepTrack 2.1 - Introduction\n", + "\n", + "\"Open\n", + "\n", + "This tutorial gives an overview of how to use DeepTrack 2.1.\n", + "\n", + "### What is DeepTrack 2.1?\n", + "\n", + "DeepTrack 2.1 is a software that provides a comprehensive framework for digital microscopy enhanced by deep learning. In this tutorial we'll use the example of tracking a single particle to demonstrate how to effecively use deeptrack." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:11:50.722429Z", + "iopub.status.busy": "2022-06-29T20:11:50.721930Z", + "iopub.status.idle": "2022-06-29T20:12:15.986298Z", + "shell.execute_reply": "2022-06-29T20:12:15.985800Z" + } + }, + "outputs": [], + "source": [ + "import deeptrack as dt\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "u = dt.units" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Generate images\n", + "\n", + "In order to train and validate deep-learning models to be used in digital microcopy, we need to generate synthetic images. For example, these images may be like the output of a digital video micoscopy experiment, where we want to track some particles.\n", + "\n", + "In DeepTrack 2.0, any image can be viewed as a series of **features** applied in a sequence. Each feature takes an input image and updates it according to an **update rule**. For example, a feature can add a particle, introduce some noise, or image something through an optical device." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Features and properties\n", + "\n", + "In DeepTrack 2.0, these features are classes implementing the class `Feature` (see also [features_example](../module-examples/features_example.ipynb)). The way a feature updates an image is determined by the values passed to the class constructor. These inputs are converted to **properties** (see also [properties_example](../module-examples/properties_example.ipynb)). For example, a property could be the position of a particle. \n", + "\n", + "For example, the code below creates a feature: a point particle implemented by the class `PointParticle` with properties `position=(0, 0)`, and `intensity=100`. We use `u.img_pixel` to denote the unit of the property. Most of the time (such as here) this can be omitted." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:15.988799Z", + "iopub.status.busy": "2022-06-29T20:12:15.988799Z", + "iopub.status.idle": "2022-06-29T20:12:16.141300Z", + "shell.execute_reply": "2022-06-29T20:12:16.140800Z" + } + }, + "outputs": [], + "source": [ + "particle = dt.PointParticle(\n", + " position=(0, 0) * u.img_pixel,\n", + " intensity=100\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above feature is completely deterministic so that the particle will always be at position (0, 0). For machine learning, it may be more useful to add a particle at a random position. This can be done by passing a lambda function that returns a pair of random numbers to the property `position`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:16.143798Z", + "iopub.status.busy": "2022-06-29T20:12:16.143798Z", + "iopub.status.idle": "2022-06-29T20:12:16.296799Z", + "shell.execute_reply": "2022-06-29T20:12:16.297300Z" + } + }, + "outputs": [], + "source": [ + "IMAGE_SIZE = 64\n", + "\n", + "particle = dt.PointParticle(\n", + " position=lambda: np.random.rand(2) * IMAGE_SIZE * u.img_pixel,\n", + " intensity=100\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A point particle on its own does not make much sense when thinking of actual experiments. In order retrieve an image, we need to define also the optical device through which it is viewed. In DeepTrack 2.1, optical devices are features that convolve the input image with a pupil function. Here, we will use a fluorescence microscope `fluorescence_microscope`, which is implemented by the feature `Fluorescence` (see also [optics_example](../module-examples/optics_example.ipynb)). \n", + "\n", + "By calling the fluorescence microscope `fluorescence_microscope` with the point particle `particle`, we create a new feature which resolves the image of the particle as seen through the fluorescence microscope." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:16.299798Z", + "iopub.status.busy": "2022-06-29T20:12:16.298799Z", + "iopub.status.idle": "2022-06-29T20:12:16.454799Z", + "shell.execute_reply": "2022-06-29T20:12:16.454300Z" + } + }, + "outputs": [], + "source": [ + "fluorescence_microscope = dt.Fluorescence(\n", + " NA=0.8,\n", + " wavelength=680 * u.nm,\n", + " magnification=10,\n", + " resolution=1 * u.micrometer,\n", + " output_region=(0, 0, IMAGE_SIZE, IMAGE_SIZE)\n", + ")\n", + "\n", + "imaged_particle = fluorescence_microscope(particle)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can finally create the image of the particle by calling the feature `imaged_particle()` and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:16.457298Z", + "iopub.status.busy": "2022-06-29T20:12:16.456799Z", + "iopub.status.idle": "2022-06-29T20:12:18.499649Z", + "shell.execute_reply": "2022-06-29T20:12:18.499649Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:16.457298Z", - "iopub.status.busy": "2022-06-29T20:12:16.456799Z", - "iopub.status.idle": "2022-06-29T20:12:18.499649Z", - "shell.execute_reply": "2022-06-29T20:12:18.499649Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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AOAikWKMMbaL+LZQKCS32227DADAIAWDQWVnZ8fczrXgAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwwnEAffrpp7rjjjuUm5urzMxMXXXVVTp48GBkuzFGq1evVl5enjIzM1VeXq4TJ07EtWgAQOJzFEBffPGF5syZo/T0dO3YsUPHjx/XE088oTFjxkTGPPbYY1q7dq02btyo/fv3a9SoUaqoqFBnZ2fciwcAJDDjwP3332/mzp0bc3tvb6/xer3m8ccfj/S1t7cbl8tlXnnllQt6jmAwaCTRaDQaLcFbMBg85/u9oyOgN954QzNnztStt96qCRMmaMaMGXruueci25uamuT3+1VeXh7pc7vdKisrU319fdR9hsNhhUKhPg0AkPwcBdAnn3yiDRs2aPLkydq1a5eWLFmi++67Ty+++KIkye/3S5I8Hk+fx3k8nsi276qpqZHb7Y60goKCgcwDAJBgHAVQb2+vrrnmGj366KOaMWOG7rnnHt19993auHHjgAuorq5WMBiMtJaWlgHvCwCQOBwFUF5enqZOndqnb8qUKWpubpYkeb1eSVIgEOgzJhAIRLZ9l8vlUnZ2dp8GAEh+jgJozpw5amxs7NP30UcfadKkSZKkoqIieb1e1dbWRraHQiHt379fPp8vDuUCAJLGha1/+9p7771n0tLSzCOPPGJOnDhhXn75ZXPJJZeYl156KTJmzZo1Jicnx7z++uvm8OHDZv78+aaoqMicPXuWVXA0Go12EbXzrYJzFEDGGLN9+3Yzbdo043K5THFxsXn22Wf7bO/t7TUPPvig8Xg8xuVymXnz5pnGxsYL3j8BRKPRaMnRzhdAKcYYo2EkFArJ7XbbLgMAMEjBYPCc5/W5FhwAwAoCCABgBQEEALCCAAIAWEEAAQCsIIAAAFYQQAAAKwggAIAVBBAAwAoC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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "output_image = imaged_particle()\n", - "\n", - "plt.imshow(np.squeeze(output_image), cmap='gray')\n", - "plt.show()" + "data": { + "image/png": "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AOAikWKMMbaL+LZQKCS32227DADAIAWDQWVnZ8fczrXgAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwwnEAffrpp7rjjjuUm5urzMxMXXXVVTp48GBkuzFGq1evVl5enjIzM1VeXq4TJ07EtWgAQOJzFEBffPGF5syZo/T0dO3YsUPHjx/XE088oTFjxkTGPPbYY1q7dq02btyo/fv3a9SoUaqoqFBnZ2fciwcAJDDjwP3332/mzp0bc3tvb6/xer3m8ccfj/S1t7cbl8tlXnnllQt6jmAwaCTRaDQaLcFbMBg85/u9oyOgN954QzNnztStt96qCRMmaMaMGXruueci25uamuT3+1VeXh7pc7vdKisrU319fdR9hsNhhUKhPg0AkPwcBdAnn3yiDRs2aPLkydq1a5eWLFmi++67Ty+++KIkye/3S5I8Hk+fx3k8nsi276qpqZHb7Y60goKCgcwDAJBgHAVQb2+vrrnmGj366KOaMWOG7rnnHt19993auHHjgAuorq5WMBiMtJaWlgHvCwCQOBwFUF5enqZOndqnb8qUKWpubpYkeb1eSVIgEOgzJhAIRLZ9l8vlUnZ2dp8GAEh+jgJozpw5amxs7NP30UcfadKkSZKkoqIieb1e1dbWRraHQiHt379fPp8vDuUCAJLGha1/+9p7771n0tLSzCOPPGJOnDhhXn75ZXPJJZeYl156KTJmzZo1Jicnx7z++uvm8OHDZv78+aaoqMicPXuWVXA0Go12EbXzrYJzFEDGGLN9+3Yzbdo043K5THFxsXn22Wf7bO/t7TUPPvig8Xg8xuVymXnz5pnGxsYL3j8BRKPRaMnRzhdAKcYYo2EkFArJ7XbbLgMAMEjBYPCc5/W5FhwAwAoCCABgBQEEALCCAAIAWEEAAQCsIIAAAFYQQAAAKwggAIAVBBAAwAoC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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "output_image = imaged_particle()\n", + "\n", + "plt.imshow(np.squeeze(output_image), cmap='gray')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As a shorthand for this, you can also call plot on the feature directly." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:18.503147Z", + "iopub.status.busy": "2022-06-29T20:12:18.502648Z", + "iopub.status.idle": "2022-06-29T20:12:18.749648Z", + "shell.execute_reply": "2022-06-29T20:12:18.749148Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As a shorthand for this, you can also call plot on the feature directly." + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:18.503147Z", - "iopub.status.busy": "2022-06-29T20:12:18.502648Z", - "iopub.status.idle": "2022-06-29T20:12:18.749648Z", - "shell.execute_reply": "2022-06-29T20:12:18.749148Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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AOAikWKMMbaL+LZQKCS32227DADAIAWDQWVnZ8fczrXgAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwwnEAffrpp7rjjjuUm5urzMxMXXXVVTp48GBkuzFGq1evVl5enjIzM1VeXq4TJ07EtWgAQOJzFEBffPGF5syZo/T0dO3YsUPHjx/XE088oTFjxkTGPPbYY1q7dq02btyo/fv3a9SoUaqoqFBnZ2fciwcAJDDjwP3332/mzp0bc3tvb6/xer3m8ccfj/S1t7cbl8tlXnnllQt6jmAwaCTRaDQaLcFbMBg85/u9oyOgN954QzNnztStt96qCRMmaMaMGXruueci25uamuT3+1VeXh7pc7vdKisrU319fdR9hsNhhUKhPg0AkPwcBdAnn3yiDRs2aPLkydq1a5eWLFmi++67Ty+++KIkye/3S5I8Hk+fx3k8nsi276qpqZHb7Y60goKCgcwDAJBgHAVQb2+vrrnmGj366KOaMWOG7rnnHt19993auHHjgAuorq5WMBiMtJaWlgHvCwCQOBwFUF5enqZOndqnb8qUKWpubpYkeb1eSVIgEOgzJhAIRLZ9l8vlUnZ2dp8GAEh+jgJozpw5amxs7NP30UcfadKkSZKkoqIieb1e1dbWRraHQiHt379fPp8vDuUCAJLGha1/+9p7771n0tLSzCOPPGJOnDhhXn75ZXPJJZeYl156KTJmzZo1Jicnx7z++uvm8OHDZv78+aaoqMicPXuWVXA0Go12EbXzrYJzFEDGGLN9+3Yzbdo043K5THFxsXn22Wf7bO/t7TUPPvig8Xg8xuVymXnz5pnGxsYL3j8BRKPRaMnRzhdAKcYYo2EkFArJ7XbbLgMAMEjBYPCc5/W5FhwAwAoCCABgBQEEALCCAAIAWEEAAQCsIIAAAFYQQAAAKwggAIAVBBAAwAoC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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "imaged_particle.plot(cmap=\"gray\")" + "data": { + "image/png": "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AOAikWKMMbaL+LZQKCS32227DADAIAWDQWVnZ8fczrXgAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwwnEAffrpp7rjjjuUm5urzMxMXXXVVTp48GBkuzFGq1evVl5enjIzM1VeXq4TJ07EtWgAQOJzFEBffPGF5syZo/T0dO3YsUPHjx/XE088oTFjxkTGPPbYY1q7dq02btyo/fv3a9SoUaqoqFBnZ2fciwcAJDDjwP3332/mzp0bc3tvb6/xer3m8ccfj/S1t7cbl8tlXnnllQt6jmAwaCTRaDQaLcFbMBg85/u9oyOgN954QzNnztStt96qCRMmaMaMGXruueci25uamuT3+1VeXh7pc7vdKisrU319fdR9hsNhhUKhPg0AkPwcBdAnn3yiDRs2aPLkydq1a5eWLFmi++67Ty+++KIkye/3S5I8Hk+fx3k8nsi276qpqZHb7Y60goKCgcwDAJBgHAVQb2+vrrnmGj366KOaMWOG7rnnHt19993auHHjgAuorq5WMBiMtJaWlgHvCwCQOBwFUF5enqZOndqnb8qUKWpubpYkeb1eSVIgEOgzJhAIRLZ9l8vlUnZ2dp8GAEh+jgJozpw5amxs7NP30UcfadKkSZKkoqIieb1e1dbWRraHQiHt379fPp8vDuUCAJLGha1/+9p7771n0tLSzCOPPGJOnDhhXn75ZXPJJZeYl156KTJmzZo1Jicnx7z++uvm8OHDZv78+aaoqMicPXuWVXA0Go12EbXzrYJzFEDGGLN9+3Yzbdo043K5THFxsXn22Wf7bO/t7TUPPvig8Xg8xuVymXnz5pnGxsYL3j8BRKPRaMnRzhdAKcYYo2EkFArJ7XbbLgMAMEjBYPCc5/W5FhwAwAoCCABgBQEEALCCAAIAWEEAAQCsIIAAAFYQQAAAKwggAIAVBBAAwAoC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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "imaged_particle.plot(cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You might have noticed that, even though the position of the particle is random, it doesn't change if you refresh the cell. This is because the value of the particle position is stored as a property of the particle, useful for example to know the ground truth value of the particle position to train a deep-learning model.\n", + "\n", + "If you want the particle position to change each time you refresh the cell, you need to call the method `imaged_particle.update()` before resolving the image." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:18.751647Z", + "iopub.status.busy": "2022-06-29T20:12:18.751647Z", + "iopub.status.idle": "2022-06-29T20:12:18.995148Z", + "shell.execute_reply": "2022-06-29T20:12:18.994648Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You might have noticed that, even though the position of the particle is random, it doesn't change if you refresh the cell. This is because the value of the particle position is stored as a property of the particle, useful for example to know the ground truth value of the particle position to train a deep-learning model.\n", - "\n", - "If you want the particle position to change each time you refresh the cell, you need to call the method `imaged_particle.update()` before resolving the image." + "data": { + "image/png": "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pbxeb6Ty8vJcTwIAEH9cB9Cll16qw4cPa//+/Vq2bJmWLFmiY8eO9bmBiooKhUKhSDU1NfX5WACA+JHi9hvS0tJ08cUXS5KKiop04MABPfnkk1q8eLE6OzvV0tLS6yooGAwqOzs76vE8Ho88Ho/7zgEAca3fnwPq6elRR0eHioqKlJqaqurq6si2+vp6NTY2yu/39/dlAAAJxtUVUEVFhRYsWKD8/Hy1trZqy5Yt2rt3r3bt2iWv16vbbrtNq1ev1tixY5WRkaG77rpLfr9fc+bMGaj+AQBxylUAnT59Wr/97W/V3Nwsr9er6dOna9euXfrFL34hSXr88ceVnJyssrIydXR0aP78+Xr66acHpHEAQHxLMsYY2018Vzgcltfrtd0GAKCfQqGQMjIyom7nXnAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArOhXAK1du1ZJSUlauXJlZKy9vV3l5eXKyspSenq6ysrKFAwG+9snACDB9DmADhw4oGeeeUbTp0/vNb5q1Spt375dVVVVqqmp0alTp7Ro0aJ+NwoASDCmD1pbW83kyZPN7t27zTXXXGNWrFhhjDGmpaXFpKammqqqqsi+x48fN5JMbW3tBR07FAoZSRRFUVScVygUOuf5vk9XQOXl5br++utVWlraa7yurk5dXV29xgsLC5Wfn6/a2lrHY3V0dCgcDvcqAEDiS3H7DVu3btX777+vAwcOnLUtEAgoLS1NmZmZvcZ9Pp8CgYDj8SorK/XHP/7RbRsAgDjn6gqoqalJK1as0Msvv6zhw4fHpIGKigqFQqFINTU1xeS4AIDBzVUA1dXV6fTp07ryyiuVkpKilJQU1dTUaP369UpJSZHP51NnZ6daWlp6fV8wGFR2drbjMT0ejzIyMnoVACDxufoT3Lx583TkyJFeY7feeqsKCwt1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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "imaged_particle.update().plot(cmap='gray')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating a pipeline\n", + "\n", + "The power of feature is the ability to chain them! The most common way to chain features is through the pipe operator (`>>`). This will take the output of the feature on the left and pass it as input to the feature on the right! For example, here's how to add noise to the image!" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:18.996648Z", + "iopub.status.busy": "2022-06-29T20:12:18.996648Z", + "iopub.status.idle": "2022-06-29T20:12:19.248148Z", + "shell.execute_reply": "2022-06-29T20:12:19.247649Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:18.751647Z", - "iopub.status.busy": "2022-06-29T20:12:18.751647Z", - "iopub.status.idle": "2022-06-29T20:12:18.995148Z", - "shell.execute_reply": "2022-06-29T20:12:18.994648Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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pbxeb6Ty8vJcTwIAEH9cB9Cll16qw4cPa//+/Vq2bJmWLFmiY8eO9bmBiooKhUKhSDU1NfX5WACA+JHi9hvS0tJ08cUXS5KKiop04MABPfnkk1q8eLE6OzvV0tLS6yooGAwqOzs76vE8Ho88Ho/7zgEAca3fnwPq6elRR0eHioqKlJqaqurq6si2+vp6NTY2yu/39/dlAAAJxtUVUEVFhRYsWKD8/Hy1trZqy5Yt2rt3r3bt2iWv16vbbrtNq1ev1tixY5WRkaG77rpLfr9fc+bMGaj+AQBxylUAnT59Wr/97W/V3Nwsr9er6dOna9euXfrFL34hSXr88ceVnJyssrIydXR0aP78+Xr66acHpHEAQHxLMsYY2018Vzgcltfrtd0GAKCfQqGQMjIyom7nXnAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArCCAAABWEEAAACsIIACAFQQQAMAKAggAYAUBBACwggACAFhBAAEArOhXAK1du1ZJSUlauXJlZKy9vV3l5eXKyspSenq6ysrKFAwG+9snACDB9DmADhw4oGeeeUbTp0/vNb5q1Spt375dVVVVqqmp0alTp7Ro0aJ+NwoASDCmD1pbW83kyZPN7t27zTXXXGNWrFhhjDGmpaXFpKammqqqqsi+x48fN5JMbW3tBR07FAoZSRRFUVScVygUOuf5vk9XQOXl5br++utVWlraa7yurk5dXV29xgsLC5Wfn6/a2lrHY3V0dCgcDvcqAEDiS3H7DVu3btX777+vAwcOnLUtEAgoLS1NmZmZvcZ9Pp8CgYDj8SorK/XHP/7RbRsAgDjn6gqoqalJK1as0Msvv6zhw4fHpIGKigqFQqFINTU1xeS4AIDBzVUA1dXV6fTp07ryyiuVkpKilJQU1dTUaP369UpJSZHP51NnZ6daWlp6fV8wGFR2drbjMT0ejzIyMnoVACDxufoT3Lx583TkyJFeY7feeqsKCwt1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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "imaged_particle.update().plot(cmap='gray')\n", - "plt.show()" + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Creating a pipeline\n", - "\n", - "The power of feature is the ability to chain them! The most common way to chain features is through the pipe operator (`>>`). This will take the output of the feature on the left and pass it as input to the feature on the right! For example, here's how to add noise to the image!" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# The >> operator\n", + "noisy_image = imaged_particle >> dt.Gaussian(sigma=0.01)\n", + "noisy_image.update().plot(cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also get the properties (for example the `position`) of a feature by accessing `feature.{propertyname}`. For example, to get the position of the particle, we can call `particle.position`." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "noisy_image_particle_position = dt.Value(particle.position)\n", + "\n", + "image = noisy_image()\n", + "position = noisy_image_particle_position()\n", + "\n", + "plt.imshow(np.squeeze(image), cmap='gray')\n", + "plt.scatter(position[1], position[0], c='r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Features can also cleanly interact with things that are not features! For example, arithmatic operators or functions!" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:19.250649Z", + "iopub.status.busy": "2022-06-29T20:12:19.249648Z", + "iopub.status.idle": "2022-06-29T20:12:19.549147Z", + "shell.execute_reply": "2022-06-29T20:12:19.549647Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:18.996648Z", - "iopub.status.busy": "2022-06-29T20:12:18.996648Z", - "iopub.status.idle": "2022-06-29T20:12:19.248148Z", - "shell.execute_reply": "2022-06-29T20:12:19.247649Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# The >> operator\n", - "noisy_image = imaged_particle >> dt.Gaussian(sigma=0.01)\n", - "noisy_image.update().plot(cmap=\"gray\")" + "data": { + "text/plain": [ + "" ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also get the properties (for example the `position`) of a feature by accessing `feature.{propertyname}`. For example, to get the position of the particle, we can call `particle.position`." + "data": { + "image/png": "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71ddXV3ksVAopKNHjyoQCMTzRwEAkty0WL/h7Nmzam1tjXzd1tam5uZmZWdna+7cudq6dat+9atf6frrr1dRUZEeffRR5efna/Xq1fGcGwCQ7GK99PrQoUMXvdyusrIycin2o48+6nJzc53X63VlZWWupaVl1PvnMmwWi8WaGutyl2F7nHNOk0goFJLP57MeAwAwTsFg8JKf65tfBQcAuDIRIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMxB+jw4cO68847lZ+fL4/Ho9deey3q+fXr18vj8UStFStWxGteAMAUEXOA+vv7VVxcrF27do24zYoVK9TZ2RlZe/fuHdeQAICpZ1qs37By5UqtXLnyktt4vV75/f4xDwUAmPoS8hlQfX29Zs+erYULF2rz5s06c+bMiNuGw2GFQqGoBQCY+uIeoBUrVuj3v/+96urq9Otf/1oNDQ1auXKlhoaGLrp9TU2NfD5fZBUUFMR7JADAJORxzrkxf7PHo9raWq1evXrEbf7xj39o/vz5evfdd1VWVnbB8+FwWOFwOPJ1KBQiQgAwBQSDQWVmZo74fMIvw543b55ycnLU2tp60ee9Xq8yMzOjFgBg6kt4gD777DOdOXNGeXl5if5RAIAkEvNVcGfPno16N9PW1qbm5mZlZ2crOztbTzzxhNauXSu/369Tp07p5z//uRYsWKCKioq4Dg4ASHIuRocOHXKSLliVlZXu3Llzbvny5W7WrFkuLS3NFRYWuo0bN7qurq5R7z8YDF50/ywWi8VKrhUMBi/5ej+uixASIRQKyefzWY8BABgn84sQAAC4GAIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYmGY9AABcSTweT8L27ZxL2L4TgXdAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATHAvOAAYp1ju75bI+7Ul8j5zsRjtMfIOCABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMcCseABinRN5eZ9q0xL1MDw8Pj3rbWG83NJp98w4IAGAipgDV1NTolltuUUZGhmbPnq3Vq1erpaUlapuBgQFVVVVp5syZmjFjhtauXavu7u64Dg0ASH4xBaihoUFVVVU6cuSI3nnnHQ0ODmr58uXq7++PbLNt2za9/vrr2r9/vxoaGtTR0aE1a9bEfXAAQJJz49DT0+MkuYaGBuecc729vS4tLc3t378/ss2nn37qJLnGxsZR7TMYDDpJLBaLxZLctGnTErZSUlJGvVJTU0e9UlJSnCQXDAYv+Xo/rs+AgsGgJCk7O1uS1NTUpMHBQZWXl0e2WbRokebOnavGxsaL7iMcDisUCkUtAMDUN+YADQ8Pa+vWrbrtttu0ePFiSVJXV5fS09OVlZUVtW1ubq66urouup+amhr5fL7IKigoGOtIAIAkMuYAVVVV6cSJE9q3b9+4BqiurlYwGIys9vb2ce0PAJAcxnSB+ZYtW/TGG2/o8OHDmjNnTuRxv9+v8+fPq7e3N+pdUHd3t/x+/0X35fV65fV6xzIGACCJxfQOyDmnLVu2qLa2VgcPHlRRUVHU8yUlJUpLS1NdXV3ksZaWFp0+fVqBQCA+EwMApoSY3gFVVVVpz549OnDggDIyMiKf6/h8Pk2fPl0+n08bNmzQ9u3blZ2drczMTN1///0KBAK69dZbE3IAAIDk5HFu9PeQGOlWDC+99JLWr18v6T9/iPrAAw9o7969CofDqqio0HPPPTfir+C+KhQKyefzjXYkAJjSkvlWPMFgUJmZmSPvM5YATQQCBMBaLC+2kmK6F1xqamrCZhkaGopp39dcc82ot/3yyy9Hva1zTuFw+LIB4l5wAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGAicTcZAoAklcg7lMV6m59Ybq9z4403xrTve+65Z9Tb9vT0jHrbcDisF1544bLb8Q4IAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACe4FBwATKNb7zE2bNvqX6aVLl8a070ceeWTU2/79738f9bZnz57lXnAAgMmLAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAExwKx4AmEAejyem7YeGhka97UcffRTTvn/3u9+NetuOjo5RbzswMDCq7XgHBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwITHOeesh/hfoVBIPp/PegwAV7BY79cWy8toampqrOMkTHZ29qi3HRwcHPW2zjkFg0EFg0FlZmaOuB3vgAAAJmIKUE1NjW655RZlZGRo9uzZWr16tVpaWqK2ueOOO+TxeKLWpk2b4jo0ACD5xRSghoYGVVVV6ciRI3rnnXc0ODio5cuXq7+/P2q7jRs3qrOzM7J27twZ16EBAMkvpn8P6K233or6evfu3Zo9e7aampq0bNmyyONXX321/H5/fCYEAExJ4/oMKBgMSrrwg6yXX35ZOTk5Wrx4saqrq3Xu3LkR9xEOhxUKhaIWAGDqG/O/iDo8PKytW7fqtttu0+LFiyOP33PPPSosLFR+fr6OHz+uhx56SC0tLXr11Vcvup+amho98cQTYx0DAJCkxnwZ9ubNm/Xmm2/qvffe05w5c0bc7uDBgyorK1Nra6vmz59/wfPhcFjhcDjydSgUUkFBwVhGAoC44DLsCyXiMuwxvQPasmWL3njjDR0+fPiS8ZGk0tJSSRoxQF6vV16vdyxjAACSWEwBcs7p/vvvV21trerr61VUVHTZ72lubpYk5eXljWlAAMDUFFOAqqqqtGfPHh04cEAZGRnq6uqSJPl8Pk2fPl2nTp3Snj179L3vfU8zZ87U8ePHtW3bNi1btkxLlixJyAEAAJJTTJ8BjfR70Zdeeknr169Xe3u7fvCDH+jEiRPq7+9XQUGB7rrrLv3iF7+45O8B/xe34gFgjc+ALpSIz4C4FxwATGLTpo35YuXLGh4eTsh+nXORCHEvOADApEOAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJhJ3jwcAuELEcu+4WO9+9uWXXyZkjrFsH2+8AwIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCe8EBwDjFcn+3RN5/Ldb7zMW6fbzxDggAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATHArHgCYQNa3v5lMeAcEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEzEF6Pnnn9eSJUuUmZmpzMxMBQIBvfnmm5HnBwYGVFVVpZkzZ2rGjBlau3aturu74z40ACD5xRSgOXPm6Mknn1RTU5OOHTum73znO1q1apU+/vhjSdK2bdv0+uuva//+/WpoaFBHR4fWrFmTkMEBAEnOjdO1117rXnzxRdfb2+vS0tLc/v37I899+umnTpJrbGwc9f6CwaCTxGKxWKwkX8Fg8JKv92P+DGhoaEj79u1Tf3+/AoGAmpqaNDg4qPLy8sg2ixYt0ty5c9XY2DjifsLhsEKhUNQCAEx9MQfoo48+0owZM+T1erVp0ybV1tbqxhtvVFdXl9LT05WVlRW1fW5urrq6ukbcX01NjXw+X2QVFBTEfBAAgOQTc4AWLlyo5uZmHT16VJs3b1ZlZaU++eSTMQ9QXV2tYDAYWe3t7WPeFwAgeUyL9RvS09O1YMECSVJJSYn++te/6plnntG6det0/vx59fb2Rr0L6u7ult/vH3F/Xq9XXq839skBAElt3H8HNDw8rHA4rJKSEqWlpamuri7yXEtLi06fPq1AIDDeHwMAmGJiegdUXV2tlStXau7cuerr69OePXtUX1+vt99+Wz6fTxs2bND27duVnZ2tzMxM3X///QoEArr11lsTNT8AIEnFFKCenh798Ic/VGdnp3w+n5YsWaK3335b3/3udyVJv/nNb5SSkqK1a9cqHA6roqJCzz33XEIGBwAkN49zzlkP8b9CoZB8Pp/1GACAcQoGg8rMzBzxee4FBwAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMDHpAjTJbswAABijy72eT7oA9fX1WY8AAIiDy72eT7p7wQ0PD6ujo0MZGRnyeDyRx0OhkAoKCtTe3n7JewslO45z6rgSjlHiOKeaeBync059fX3Kz89XSsrI73Ni/gfpEi0lJUVz5swZ8fnMzMwpffL/i+OcOq6EY5Q4zqlmvMc5mptKT7pfwQEArgwECABgImkC5PV6tWPHDnm9XutREorjnDquhGOUOM6pZiKPc9JdhAAAuDIkzTsgAMDUQoAAACYIEADABAECAJhImgDt2rVL1113na666iqVlpbq/ffftx4prh5//HF5PJ6otWjRIuuxxuXw4cO68847lZ+fL4/Ho9deey3qeeecHnvsMeXl5Wn69OkqLy/XyZMnbYYdh8sd5/r16y84tytWrLAZdoxqamp0yy23KCMjQ7Nnz9bq1avV0tIStc3AwICqqqo0c+ZMzZgxQ2vXrlV3d7fRxGMzmuO84447LjifmzZtMpp4bJ5//nktWbIk8semgUBAb775ZuT5iTqXSRGgV155Rdu3b9eOHTv0wQcfqLi4WBUVFerp6bEeLa5uuukmdXZ2RtZ7771nPdK49Pf3q7i4WLt27bro8zt37tSzzz6rF154QUePHtU111yjiooKDQwMTPCk43O545SkFStWRJ3bvXv3TuCE49fQ0KCqqiodOXJE77zzjgYHB7V8+XL19/dHttm2bZtef/117d+/Xw0NDero6NCaNWsMp47daI5TkjZu3Bh1Pnfu3Gk08djMmTNHTz75pJqamnTs2DF95zvf0apVq/Txxx9LmsBz6ZLA0qVLXVVVVeTroaEhl5+f72pqagyniq8dO3a44uJi6zESRpKrra2NfD08POz8fr976qmnIo/19vY6r9fr9u7dazBhfHz1OJ1zrrKy0q1atcpknkTp6elxklxDQ4Nz7j/nLi0tze3fvz+yzaeffuokucbGRqsxx+2rx+mcc9/+9rfdT3/6U7uhEuTaa691L7744oSey0n/Duj8+fNqampSeXl55LGUlBSVl5ersbHRcLL4O3nypPLz8zVv3jzde++9On36tPVICdPW1qaurq6o8+rz+VRaWjrlzqsk1dfXa/bs2Vq4cKE2b96sM2fOWI80LsFgUJKUnZ0tSWpqatLg4GDU+Vy0aJHmzp2b1Ofzq8f5Xy+//LJycnK0ePFiVVdX69y5cxbjxcXQ0JD27dun/v5+BQKBCT2Xk+5mpF/1+eefa2hoSLm5uVGP5+bm6m9/+5vRVPFXWlqq3bt3a+HChers7NQTTzyh22+/XSdOnFBGRob1eHHX1dUlSRc9r/99bqpYsWKF1qxZo6KiIp06dUqPPPKIVq5cqcbGRqWmplqPF7Ph4WFt3bpVt912mxYvXizpP+czPT1dWVlZUdsm8/m82HFK0j333KPCwkLl5+fr+PHjeuihh9TS0qJXX33VcNrYffTRRwoEAhoYGNCMGTNUW1urG2+8Uc3NzRN2Lid9gK4UK1eujPz3kiVLVFpaqsLCQv3hD3/Qhg0bDCfDeH3/+9+P/PfNN9+sJUuWaP78+aqvr1dZWZnhZGNTVVWlEydOJP1nlJcz0nHed999kf+++eablZeXp7KyMp06dUrz58+f6DHHbOHChWpublYwGNQf//hHVVZWqqGhYUJnmPS/gsvJyVFqauoFV2B0d3fL7/cbTZV4WVlZuuGGG9Ta2mo9SkL899xdaedVkubNm6ecnJykPLdbtmzRG2+8oUOHDkX9syl+v1/nz59Xb29v1PbJej5HOs6LKS0tlaSkO5/p6elasGCBSkpKVFNTo+LiYj3zzDMTei4nfYDS09NVUlKiurq6yGPDw8Oqq6tTIBAwnCyxzp49q1OnTikvL896lIQoKiqS3++POq+hUEhHjx6d0udVkj777DOdOXMmqc6tc05btmxRbW2tDh48qKKioqjnS0pKlJaWFnU+W1padPr06aQ6n5c7zotpbm6WpKQ6nxczPDyscDg8secyrpc0JMi+ffuc1+t1u3fvdp988om77777XFZWluvq6rIeLW4eeOABV19f79ra2tyf//xnV15e7nJyclxPT4/1aGPW19fnPvzwQ/fhhx86Se7pp592H374ofvXv/7lnHPuySefdFlZWe7AgQPu+PHjbtWqVa6oqMh98cUXxpPH5lLH2dfX5x588EHX2Njo2tra3Lvvvuu+8Y1vuOuvv94NDAxYjz5qmzdvdj6fz9XX17vOzs7IOnfuXGSbTZs2ublz57qDBw+6Y8eOuUAg4AKBgOHUsbvccba2trpf/vKX7tixY66trc0dOHDAzZs3zy1btsx48tg8/PDDrqGhwbW1tbnjx4+7hx9+2Hk8HvenP/3JOTdx5zIpAuScc7/97W/d3LlzXXp6ulu6dKk7cuSI9UhxtW7dOpeXl+fS09Pd1772Nbdu3TrX2tpqPda4HDp0yEm6YFVWVjrn/nMp9qOPPupyc3Od1+t1ZWVlrqWlxXboMbjUcZ47d84tX77czZo1y6WlpbnCwkK3cePGpPufp4sdnyT30ksvRbb54osv3E9+8hN37bXXuquvvtrdddddrrOz027oMbjccZ4+fdotW7bMZWdnO6/X6xYsWOB+9rOfuWAwaDt4jH784x+7wsJCl56e7mbNmuXKysoi8XFu4s4l/xwDAMDEpP8MCAAwNREgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJv4fu1qd5KlMJo0AAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Arithmatic\n", + "inverted_particle = 1 - imaged_particle \n", + "inverted_particle.update().plot(cmap=\"gray\")\n", + "\n", + "# Function\n", + "sqrt_of_particle = imaged_particle >> np.sqrt\n", + "sqrt_of_particle.update().plot(cmap=\"gray\")\n", + "\n", + "# Indexing\n", + "downsampled_particle = imaged_particle[::2, ::2]\n", + "downsampled_particle.update().plot(cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are also a few special operators, noteably the `^` operator and the `&` operator. The `^` operator is a handly tool for evaluating a feature multiple times. Note that each time it is evaluated, it will use a new set of properties. As such, it is a very convenient way to resolve multiple particles!" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:19.552147Z", + "iopub.status.busy": "2022-06-29T20:12:19.552147Z", + "iopub.status.idle": "2022-06-29T20:12:19.795649Z", + "shell.execute_reply": "2022-06-29T20:12:19.795147Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "noisy_image_particle_position = dt.Value(particle.position)\n", - "\n", - "image = noisy_image()\n", - "position = noisy_image_particle_position()\n", - "\n", - "plt.imshow(np.squeeze(image), cmap='gray')\n", - "plt.scatter(position[1], position[0], c='r')" + "data": { + "image/png": "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X1+fpxlPzfbt27V8+fLUT47HYjE99dRTqcfzYY0ft3XrVoVCIW3atClVy4d1fve731UoFJo06uvrU4/nwxo/8u677+rrX/+6FixYoJKSEl122WU6ePBg6vFz/R6UtQH0n//5n9qyZYvuv/9+vfTSS1qxYoXWrFmj/v5+31ObsuHhYa1YsULbtm2zPv7AAw/o4Ycf1o4dO3TgwAHNnTtXa9as0cjIyDme6dS1t7erublZ+/fv1zPPPKPx8XF98Ytf1PDwcOqYzZs3a+/evdq9e7fa29vV29urtWvXepx1cIsWLdLWrVvV2dmpgwcP6rrrrtONN96o1157TVJ+rPH/evHFF/Wzn/1My5cvn1TPl3V+7nOf04kTJ1Ljz3/+c+qxfFnjyZMntWrVKhUVFempp57S66+/rh/+8IeaP39+6phz/h5kstTVV19tmpubU7+fmJgw1dXVprW11eOsMkeS2bNnT+r3yWTSVFZWmgcffDBVGxgYMOFw2PzmN7/xMMPM6O/vN5JMe3u7MebDNRUVFZndu3enjjly5IiRZDo6OnxNMyPmz59vfvGLX+TdGoeGhsySJUvMM888Y/7xH//R3HnnncaY/Pla3n///WbFihXWx/JljcYYc/fdd5trr73W+biP96CsvAIaGxtTZ2enmpqaUrWCggI1NTWpo6PD48xmzvHjxxWPxyetORKJqLGxMafXnEgkJEkVFRWSpM7OTo2Pj09aZ319vWpra3N2nRMTE9q1a5eGh4cVi8Xybo3Nzc360pe+NGk9Un59LY8eParq6mp99rOf1S233KLu7m5J+bXG3//+91q5cqW+8pWvaOHChbriiiv06KOPph738R6UlQH03nvvaWJiQtFodFI9Go0qHo97mtXM+mhd+bTmZDKpTZs2adWqVVq2bJmkD9dZXFys8vLyScfm4joPHz6s0tJShcNh3X777dqzZ4+WLl2aV2vctWuXXnrpJbW2tqY9li/rbGxs1M6dO/X0009r+/btOn78uD7/+c9raGgob9YoSW+99Za2b9+uJUuWaN++fbrjjjv07W9/W7/61a8k+XkPyrrbMSB/NDc369VXX530/fR8cskll+jQoUNKJBL6r//6L61fv17t7e2+p5UxPT09uvPOO/XMM89o9uzZvqczY66//vrUr5cvX67GxkYtXrxYv/3tb1VSUuJxZpmVTCa1cuVK/eAHP5AkXXHFFXr11Ve1Y8cOrV+/3sucsvIK6IILLtCsWbPSOk36+vpUWVnpaVYz66N15cuaN2zYoD/84Q/605/+lLq/k/ThOsfGxjQwMDDp+FxcZ3FxsS666CI1NDSotbVVK1as0I9//OO8WWNnZ6f6+/t15ZVXqrCwUIWFhWpvb9fDDz+swsJCRaPRvFjnx5WXl+viiy/WsWPH8uZrKUlVVVVaunTppNqll16a+najj/egrAyg4uJiNTQ0qK2tLVVLJpNqa2tTLBbzOLOZU1dXp8rKyklrHhwc1IEDB3JqzcYYbdiwQXv27NGzzz6rurq6SY83NDSoqKho0jq7urrU3d2dU+u0SSaTGh0dzZs1rl69WocPH9ahQ4dSY+XKlbrllltSv86HdX7cqVOn9Oabb6qqqipvvpaStGrVqrQfiXjjjTe0ePFiSZ7eg2aktSEDdu3aZcLhsNm5c6d5/fXXzW233WbKy8tNPB73PbUpGxoaMi+//LJ5+eWXjSTzox/9yLz88svmnXfeMcYYs3XrVlNeXm6efPJJ88orr5gbb7zR1NXVmdOnT3ue+dm74447TCQSMc8995w5ceJEanzwwQepY26//XZTW1trnn32WXPw4EETi8VMLBbzOOvg7rnnHtPe3m6OHz9uXnnlFXPPPfeYUChk/vjHPxpj8mONNv+3C86Y/FjnXXfdZZ577jlz/Phx89///d+mqanJXHDBBaa/v98Ykx9rNMaYF154wRQWFprvf//75ujRo+bxxx83c+bMMb/+9a9Tx5zr96CsDSBjjPnJT35iamtrTXFxsbn66qvN/v37fU9pWv70pz8ZSWlj/fr1xpgP2yDvvfdeE41GTTgcNqtXrzZdXV1+Jx2QbX2SzGOPPZY65vTp0+Zb3/qWmT9/vpkzZ4758pe/bE6cOOFv0lPwL//yL2bx4sWmuLjYXHjhhWb16tWp8DEmP9Zo8/EAyod13nzzzaaqqsoUFxebz3zmM+bmm282x44dSz2eD2v8yN69e82yZctMOBw29fX15uc///mkx8/1exD3AwIAeJGVnwEBAPIfAQQA8IIAAgB4QQABALwggAAAXhBAAAAvCCAAgBcEEADACwIIAOAFAQQA8IIAAgB48f8AmTNDtCg6lswAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# # The ^ operator\n", + "\n", + "particle = dt.PointParticle(\n", + " position=lambda: (np.random.rand(2) * IMAGE_SIZE),\n", + " intensity=1\n", + ")\n", + "\n", + "five_particles = particle^5\n", + "\n", + "# five_particles is a feature that resolves five instances of particle, then images it\n", + "imaged_five_particles = fluorescence_microscope(five_particles)\n", + "\n", + "\n", + "output_image = imaged_five_particles.update().plot(cmap=\"gray\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Bringing it all together, we can create a nice experimental image of multiple particles!" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:19.797648Z", + "iopub.status.busy": "2022-06-29T20:12:19.797648Z", + "iopub.status.idle": "2022-06-29T20:12:20.051649Z", + "shell.execute_reply": "2022-06-29T20:12:20.051149Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Features can also cleanly interact with things that are not features! For example, arithmatic operators or functions!" + "data": { + "image/png": "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acmoxcfH8uXLNWPGjO6/HK+pqdFTTz3V/fuB0MejuffeezVo0CDdfvvt3bGB0M+vfOUrGjRoUI+fqVOndv9+IPTxCHv27NGnPvUpjR07VsOHD9cFF1ygDRs2dP/+3X4P6rcb0H/+539q8eLFuvvuu/Xb3/5WF154oebPn6/W1tasm3bcHDx4UBdeeKGWLVsW/v6b3/ymHnjgAT300ENav369Tj/9dM2fPx8ze/dH1qxZo4ULF2rdunV69tlndfjwYf3FX/xFjxK/d9xxh5588kk98cQTWrNmjRobG3Xddddl2Or0VFRU6N5771Vtba02bNigK664Qtdcc41efvllSQOjj+/khRde0Pe//33NmDGjR3yg9PO8885TU1NT98+vfvWr7t8NlD7u379fc+fO1dChQ/XUU09p06ZN+pd/+ZcepdDf9fegpJ9yySWXJAsXLuz+/52dnUl5eXmydOnSDFvVd0hKVq1a1f3/u7q6krKysuRb3/pWd6ytrS0pLi5O/uM//iODFvYNra2tiaRkzZo1SZK83aehQ4cmTzzxRPc1f/zjHxNJydq1a7NqZp9w5plnJv/6r/864Pp44MCBZPLkycmzzz6bfOhDH0puu+22JEkGzlzefffdyYUXXhj+bqD0MUmS5Atf+EJy2WWX4e+zeA/ql5+ADh06pNraWs2bN687NnjwYM2bN09r167NsGUnj7q6OjU3N/focy6X05w5c07pPufzeUnSmDFjJEm1tbU6fPhwj35OnTpVVVVVp2w/Ozs7tXLlSh08eFA1NTUDro8LFy7URz/60R79kQbWXG7dulXl5eU6++yzdcMNN6i+vl7SwOrjz372M82ePVsf//jHVVJSopkzZ+rhhx/u/n0W70H9cgPat2+fOjs7VVpa2iNeWlqq5ubmjFp1cjnSr4HU566uLt1+++2aO3euzj//fElv97OoqEijR4/uce2p2M8XX3xRZ5xxhoqLi/XZz35Wq1at0vTp0wdUH1euXKnf/va3Wrp0acHvBko/58yZo0cffVRPP/20li9frrq6On3wgx/UgQMHBkwfJWnHjh1avny5Jk+erGeeeUa33HKLPve5z+mxxx6TlM17UL8rx2AGDgsXLtRLL73U4/v0gcSUKVO0ceNG5fN5/dd//ZduvPFGrVmzJutm9RkNDQ267bbb9Oyzz2rYsGFZN+ekcdVVV3X/7xkzZmjOnDmaNGmSfvzjH2v48OEZtqxv6erq0uzZs/WNb3xDkjRz5ky99NJLeuihh3TjjTdm0qZ++Qlo3LhxOu200wpMk5aWFpWVlWXUqpPLkX4NlD4vWrRIP//5z/XLX/6yR0XEsrIyHTp0SG1tbT2uPxX7WVRUpHPPPVezZs3S0qVLdeGFF+o73/nOgOljbW2tWltbddFFF2nIkCEaMmSI1qxZowceeEBDhgxRaWnpgOjn0YwePVrve9/7tG3btgEzl5I0YcIETZ8+vUds2rRp3V83ZvEe1C83oKKiIs2aNUurV6/ujnV1dWn16tWqqanJsGUnj+rqapWVlfXoc3t7u9avX39K9TlJEi1atEirVq3SL37xC1VXV/f4/axZszR06NAe/dy8ebPq6+tPqX5GdHV1qaOjY8D08corr9SLL76ojRs3dv/Mnj1bN9xwQ/f/Hgj9PJrXX39d27dv14QJEwbMXErS3LlzC/4kYsuWLZo0aZKkjN6DTora0AesXLkyKS4uTh599NFk06ZNyc0335yMHj06aW5uzrppx82BAweS3/3ud8nvfve7RFLy7W9/O/nd736X7Nq1K0mSJLn33nuT0aNHJz/96U+TP/zhD8k111yTVFdXJ2+++WbGLe89t9xyS5LL5ZLnnnsuaWpq6v554403uq/57Gc/m1RVVSW/+MUvkg0bNiQ1NTVJTU1Nhq1Ozxe/+MVkzZo1SV1dXfKHP/wh+eIXv5gMGjQo+Z//+Z8kSQZGHyPeacElycDo55133pk899xzSV1dXfLrX/86mTdvXjJu3LiktbU1SZKB0cckSZLf/OY3yZAhQ5Kvf/3rydatW5Mf/ehHyYgRI5J///d/777m3X4P6rcbUJIkyXe/+92kqqoqKSoqSi655JJk3bp1WTfphPjlL3+ZSCr4ufHGG5MkeVuD/PKXv5yUlpYmxcXFyZVXXpls3rw520anJOqfpGTFihXd17z55pvJP/zDPyRnnnlmMmLEiOSv/uqvkqampuwafRz8/d//fTJp0qSkqKgoGT9+fHLllVd2bz5JMjD6GHH0BjQQ+nn99dcnEyZMSIqKipKJEycm119/fbJt27bu3w+EPh7hySefTM4///ykuLg4mTp1avKDH/ygx+/f7fcg1wMyxhiTCf3yDMgYY8zAxxuQMcaYTPAGZIwxJhO8ARljjMkEb0DGGGMywRuQMcaYTPAGZIwxJhO8ARljjMkEb0DGGGMywRuQMcaYTPAGZIwxJhP+P6JA+k4nF1wMAAAAAElFTkSuQmCC", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "particles = particle^5\n", + "experimental_image = fluorescence_microscope(particles) + 0.1 >> dt.Poisson(snr=7, background=0.1)\n", + "output_image = experimental_image.update().plot(cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `&` will be demonstrated in detail later in this example. But know for now that is a way to stack the outputs of multiple features." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Retrieve information about the image\n", + "\n", + "To train a supervised machine-learning model, labelled images are needed. We can use the `TakeProperties` feature to extract all positions of the particles in the image. This is useful when there are many instances of the property, such as the position of the many particles in the image." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:20.054648Z", + "iopub.status.busy": "2022-06-29T20:12:20.054147Z", + "iopub.status.idle": "2022-06-29T20:12:20.306648Z", + "shell.execute_reply": "2022-06-29T20:12:20.307148Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:19.250649Z", - "iopub.status.busy": "2022-06-29T20:12:19.249648Z", - "iopub.status.idle": "2022-06-29T20:12:19.549147Z", - "shell.execute_reply": "2022-06-29T20:12:19.549647Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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71ddXV3ksVAopKNHjyoQCMTzRwEAkty0WL/h7Nmzam1tjXzd1tam5uZmZWdna+7cudq6dat+9atf6frrr1dRUZEeffRR5efna/Xq1fGcGwCQ7GK99PrQoUMXvdyusrIycin2o48+6nJzc53X63VlZWWupaVl1PvnMmwWi8WaGutyl2F7nHNOk0goFJLP57MeAwAwTsFg8JKf65tfBQcAuDIRIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMxB+jw4cO68847lZ+fL4/Ho9deey3q+fXr18vj8UStFStWxGteAMAUEXOA+vv7VVxcrF27do24zYoVK9TZ2RlZe/fuHdeQAICpZ1qs37By5UqtXLnyktt4vV75/f4xDwUAmPoS8hlQfX29Zs+erYULF2rz5s06c+bMiNuGw2GFQqGoBQCY+uIeoBUrVuj3v/+96urq9Otf/1oNDQ1auXKlhoaGLrp9TU2NfD5fZBUUFMR7JADAJORxzrkxf7PHo9raWq1evXrEbf7xj39o/vz5evfdd1VWVnbB8+FwWOFwOPJ1KBQiQgAwBQSDQWVmZo74fMIvw543b55ycnLU2tp60ee9Xq8yMzOjFgBg6kt4gD777DOdOXNGeXl5if5RAIAkEvNVcGfPno16N9PW1qbm5mZlZ2crOztbTzzxhNauXSu/369Tp07p5z//uRYsWKCKioq4Dg4ASHIuRocOHXKSLliVlZXu3Llzbvny5W7WrFkuLS3NFRYWuo0bN7qurq5R7z8YDF50/ywWi8VKrhUMBi/5ej+uixASIRQKyefzWY8BABgn84sQAAC4GAIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYmGY9AABc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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Arithmatic\n", - "inverted_particle = 1 - imaged_particle \n", - "inverted_particle.update().plot(cmap=\"gray\")\n", - "\n", - "# Function\n", - "sqrt_of_particle = imaged_particle >> np.sqrt\n", - "sqrt_of_particle.update().plot(cmap=\"gray\")\n", - "\n", - "# Indexing\n", - "downsampled_particle = imaged_particle[::2, ::2]\n", - "downsampled_particle.update().plot(cmap=\"gray\")" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "get_positions = dt.TakeProperties(experimental_image, \"position\")\n", + "\n", + "output_image = experimental_image.update()()\n", + "\n", + "positions = get_positions() # returns a list\n", + "\n", + "plt.imshow(np.squeeze(output_image), cmap='gray')\n", + "plt.scatter(positions[:, 1], positions[:, 0], c=\"r\", s=100, linewidths=4, marker=\"x\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we want a pipeline that returns both the image and the positions of the particles. For this we can use the `&` operator." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:20.310149Z", + "iopub.status.busy": "2022-06-29T20:12:20.309648Z", + "iopub.status.idle": "2022-06-29T20:12:20.564649Z", + "shell.execute_reply": "2022-06-29T20:12:20.565147Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are also a few special operators, noteably the `^` operator and the `&` operator. The `^` operator is a handly tool for evaluating a feature multiple times. Note that each time it is evaluated, it will use a new set of properties. As such, it is a very convenient way to resolve multiple particles!" + "data": { + "image/png": "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Dz7wdu3a5Xme5z344INe165dvT/84Q/eRx995F155ZVeVlaWd+TIEZ9b3nSmT5/uBQIB7+233/ZKS0uDP5999lmwzi233OJlZmZ6f/nLX7yNGzd62dnZXnZ2to+tdueuu+7y1q5d6xUUFHgfffSRd9ddd3kxMTHem2++6XledPTR4kQLzvOio5+333679/bbb3sFBQXe3//+d2/ChAlejx49vD179nieFx199DzPe++997x27dp5P//5z738/HzvhRde8M466yzv+eefD9Y508+giN2APM/zHnvsMS8zM9OLjY31zj//fG/9+vV+N+m0+Otf/+oBCPuZOnWq53nHNci7777bS0pK8uLi4ryLL77Yy8vL87fRjlj9A+AtW7YsWOfIkSPeD3/4Q69bt27eWWed5X3729/2SktL/Wv0KfD973/f69WrlxcbG+v17NnTu/jii4Obj+dFRx8tGm5A0dDPa665xktJSfFiY2O9tLQ075prrvG2bdsWfD0a+ljPa6+95g0dOtSLi4vzBg0a5D311FMhr5/pZ5DyAQkhhPCFiDwDEkIIEf1oAxJCCOEL2oCEEEL4gjYgIYQQvqANSAghhC9oAxJCCOEL2oCEEEL4gjYgIYQQvqANSAghhC9oAxJCCOEL2oCEEEL4wv8DVx3vMzM0UGkAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:19.552147Z", - "iopub.status.busy": "2022-06-29T20:12:19.552147Z", - "iopub.status.idle": "2022-06-29T20:12:19.795649Z", - "shell.execute_reply": "2022-06-29T20:12:19.795147Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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X1+fpxlPzfbt27V8+fLUT47HYjE99dRTqcfzYY0ft3XrVoVCIW3atClVy4d1fve731UoFJo06uvrU4/nwxo/8u677+rrX/+6FixYoJKSEl122WU6ePBg6vFz/R6UtQH0n//5n9qyZYvuv/9+vfTSS1qxYoXWrFmj/v5+31ObsuHhYa1YsULbtm2zPv7AAw/o4Ycf1o4dO3TgwAHNnTtXa9as0cjIyDme6dS1t7erublZ+/fv1zPPPKPx8XF98Ytf1PDwcOqYzZs3a+/evdq9e7fa29vV29urtWvXepx1cIsWLdLWrVvV2dmpgwcP6rrrrtONN96o1157TVJ+rPH/evHFF/Wzn/1My5cvn1TPl3V+7nOf04kTJ1Ljz3/+c+qxfFnjyZMntWrVKhUVFempp57S66+/rh/+8IeaP39+6phz/h5kstTVV19tmpubU7+fmJgw1dXVprW11eOsMkeS2bNnT+r3yWTSVFZWmgcffDBVGxgYMOFw2PzmN7/xMMPM6O/vN5JMe3u7MebDNRUVFZndu3enjjly5IiRZDo6OnxNMyPmz59vfvGLX+TdGoeGhsySJUvMM888Y/7xH//R3HnnncaY/Pla3n///WbFihXWx/JljcYYc/fdd5trr73W+biP96CsvAIaGxtTZ2enmpqaUrWCggI1NTWpo6PD48xmzvHjxxWPxyetORKJqLGxMafXnEgkJEkVFRWSpM7OTo2Pj09aZ319vWpra3N2nRMTE9q1a5eGh4cVi8Xybo3Nzc360pe+NGk9Un59LY8eParq6mp99rOf1S233KLu7m5J+bXG3//+91q5cqW+8pWvaOHChbriiiv06KOPph738R6UlQH03nvvaWJiQtFodFI9Go0qHo97mtXM+mhd+bTmZDKpTZs2adWqVVq2bJmkD9dZXFys8vLyScfm4joPHz6s0tJShcNh3X777dqzZ4+WLl2aV2vctWuXXnrpJbW2tqY9li/rbGxs1M6dO/X0009r+/btOn78uD7/+c9raGgob9YoSW+99Za2b9+uJUuWaN++fbrjjjv07W9/W7/61a8k+XkPyrrbMSB/NDc369VXX530/fR8cskll+jQoUNKJBL6r//6L61fv17t7e2+p5UxPT09uvPOO/XMM89o9uzZvqczY66//vrUr5cvX67GxkYtXrxYv/3tb1VSUuJxZpmVTCa1cuVK/eAHP5AkXXHFFXr11Ve1Y8cOrV+/3sucsvIK6IILLtCsWbPSOk36+vpUWVnpaVYz66N15cuaN2zYoD/84Q/605/+lLq/k/ThOsfGxjQwMDDp+FxcZ3FxsS666CI1NDSotbVVK1as0I9//OO8WWNnZ6f6+/t15ZVXqrCwUIWFhWpvb9fDDz+swsJCRaPRvFjnx5WXl+viiy/WsWPH8uZrKUlVVVVaunTppNqll16a+najj/egrAyg4uJiNTQ0qK2tLVVLJpNqa2tTLBbzOLOZU1dXp8rKyklrHhwc1IEDB3JqzcYYbdiwQXv27NGzzz6rurq6SY83NDSoqKho0jq7urrU3d2dU+u0SSaTGh0dzZs1rl69WocPH9ahQ4dSY+XKlbrllltSv86HdX7cqVOn9Oabb6qqqipvvpaStGrVqrQfiXjjjTe0ePFiSZ7eg2aktSEDdu3aZcLhsNm5c6d5/fXXzW233WbKy8tNPB73PbUpGxoaMi+//LJ5+eWXjSTzox/9yLz88svmnXfeMcYYs3XrVlNeXm6efPJJ88orr5gbb7zR1NXVmdOnT3ue+dm74447TCQSMc8995w5ceJEanzwwQepY26//XZTW1trnn32WXPw4EETi8VMLBbzOOvg7rnnHtPe3m6OHz9uXnnlFXPPPfeYUChk/vjHPxpj8mONNv+3C86Y/FjnXXfdZZ577jlz/Phx89///d+mqanJXHDBBaa/v98Ykx9rNMaYF154wRQWFprvf//75ujRo+bxxx83c+bMMb/+9a9Tx5zr96CsDSBjjPnJT35iamtrTXFxsbn66qvN/v37fU9pWv70pz8ZSWlj/fr1xpgP2yDvvfdeE41GTTgcNqtXrzZdXV1+Jx2QbX2SzGOPPZY65vTp0+Zb3/qWmT9/vpkzZ4758pe/bE6cOOFv0lPwL//yL2bx4sWmuLjYXHjhhWb16tWp8DEmP9Zo8/EAyod13nzzzaaqqsoUFxebz3zmM+bmm282x44dSz2eD2v8yN69e82yZctMOBw29fX15uc///mkx8/1exD3AwIAeJGVnwEBAPIfAQQA8IIAAgB4QQABALwggAAAXhBAAAAvCCAAgBcEEADACwIIAOAFAQQA8IIAAgB48f8AmTNDtCg6lswAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "position_feature = dt.TakeProperties(experimental_image, \"position\")\n", + "image_and_position = experimental_image & position_feature\n", + "\n", + "output_image, positions = image_and_position.update()()\n", + "\n", + "plt.imshow(np.squeeze(output_image), cmap='gray')\n", + "plt.scatter(positions[:, 1], positions[:, 0], c=\"r\", s=100, linewidths=4, marker=\"x\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, we first create a feature that extracts the positions in the image, and then we \"stack\" them using the `&` operator. The result is a feature that first calls `experimental_image()` and then `get_positions(experimental_image())`, and returns both results. Don't worry, DeepTrack 2.1 makes sure that `experimental_image` will not be executed twice unless absolutely needed!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Training the model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are finally ready to create a deep-learning model to track the particles. We will use `deeplay`, which is developed by the same team as DeepTrack. Deeplay is a deep-learning library containing a collection of flexible and modular components for building and training deep-learning models, with a seamless integration with DeepTrack. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:20.568148Z", + "iopub.status.busy": "2022-06-29T20:12:20.567650Z", + "iopub.status.idle": "2022-06-29T20:12:20.825148Z", + "shell.execute_reply": "2022-06-29T20:12:20.825650Z" + } + }, + "outputs": [], + "source": [ + "import deeptrack.deeplay as dl\n", + "\n", + "# DEFINE MODEL\n", + "net = dl.MultiLayerPerceptron(\n", + " in_features=64*64,\n", + " hidden_features=[64, 256],\n", + " out_features=2,\n", + ")\n", + "\n", + "\n", + "# DEFINE TRAINING SET\n", + "particle = dt.PointParticle(position=lambda: IMAGE_SIZE / 2 + np.random.randn(2) * 2)\n", + "training_data = fluorescence_microscope(particle) >> dt.NormalizeMinMax()\n", + "normalized_position = particle.position - IMAGE_SIZE / 2\n", + "training_set = training_data & normalized_position" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we want to tell the model which loss and optimizer to use. We can do this by using `dl.Regressor()`, since we are doing a regression task. We will also provide the training pipeline. Deeplay will make the dataset for us internally." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Regressor(\n", + " (loss): L1Loss()\n", + " (train_metrics): MetricCollection,\n", + " prefix=train\n", + " )\n", + " (val_metrics): MetricCollection,\n", + " prefix=val\n", + " )\n", + " (test_metrics): MetricCollection,\n", + " prefix=test\n", + " )\n", + " (model): MultiLayerPerceptron(\n", + " (blocks): LayerList(\n", + " (0): LayerActivationNormalizationDropout(\n", + " (layer): Layer[Linear](in_features=4096, out_features=64)\n", + " (activation): Layer[ReLU]()\n", + " (normalization): Layer[Identity](num_features=64)\n", + " (dropout): Layer[Dropout](p=0)\n", + " )\n", + " (1): LayerActivationNormalizationDropout(\n", + " (layer): Layer[Linear](in_features=64, out_features=256)\n", + " (activation): Layer[ReLU]()\n", + " (normalization): Layer[Identity](num_features=256)\n", + " (dropout): Layer[Dropout](p=0)\n", + " )\n", + " (2): LayerActivationNormalizationDropout(\n", + " (layer): Layer[Linear](in_features=256, out_features=2)\n", + " (activation): Layer[Identity]()\n", + " (normalization): Layer[Identity](num_features=2)\n", + " (dropout): Layer[Dropout](p=0)\n", + " )\n", + " )\n", + " )\n", + " (optimizer): Adam[Adam](lr=0.001)\n", + ")" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = dl.Regressor(net)\n", + "model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we've defined the `training_set` as a feature that returns the data and the label simultaneously, we can train the model by passing it the feature directly! We can easily generate a separate validation set from the same feature." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:20.828148Z", + "iopub.status.busy": "2022-06-29T20:12:20.828148Z", + "iopub.status.idle": "2022-06-29T20:12:46.042765Z", + "shell.execute_reply": "2022-06-29T20:12:46.043266Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
┏━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
+       "┃    Name           Type                  Params ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
+       "│ 0 │ loss          │ L1Loss               │      0 │\n",
+       "│ 1 │ train_metrics │ MetricCollection     │      0 │\n",
+       "│ 2 │ val_metrics   │ MetricCollection     │      0 │\n",
+       "│ 3 │ test_metrics  │ MetricCollection     │      0 │\n",
+       "│ 4 │ model         │ MultiLayerPerceptron │  279 K │\n",
+       "│ 5 │ optimizer     │ Adam                 │      0 │\n",
+       "└───┴───────────────┴──────────────────────┴────────┘\n",
+       "
\n" ], - "source": [ - "# # The ^ operator\n", - "\n", - "particle = dt.PointParticle(\n", - " position=lambda: (np.random.rand(2) * IMAGE_SIZE),\n", - " intensity=1\n", - ")\n", - "\n", - "five_particles = particle^5\n", - "\n", - "# five_particles is a feature that resolves five instances of particle, then images it\n", - "imaged_five_particles = fluorescence_microscope(five_particles)\n", - "\n", - "\n", - "output_image = imaged_five_particles.update().plot(cmap=\"gray\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bringing it all together, we can create a nice experimental image of multiple particles!" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:19.797648Z", - "iopub.status.busy": "2022-06-29T20:12:19.797648Z", - "iopub.status.idle": "2022-06-29T20:12:20.051649Z", - "shell.execute_reply": "2022-06-29T20:12:20.051149Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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acmoxcfH8uXLNWPGjO6/HK+pqdFTTz3V/fuB0MejuffeezVo0CDdfvvt3bGB0M+vfOUrGjRoUI+fqVOndv9+IPTxCHv27NGnPvUpjR07VsOHD9cFF1ygDRs2dP/+3X4P6rcb0H/+539q8eLFuvvuu/Xb3/5WF154oebPn6/W1tasm3bcHDx4UBdeeKGWLVsW/v6b3/ymHnjgAT300ENav369Tj/9dM2fPx8ze/dH1qxZo4ULF2rdunV69tlndfjwYf3FX/xFjxK/d9xxh5588kk98cQTWrNmjRobG3Xddddl2Or0VFRU6N5771Vtba02bNigK664Qtdcc41efvllSQOjj+/khRde0Pe//33NmDGjR3yg9PO8885TU1NT98+vfvWr7t8NlD7u379fc+fO1dChQ/XUU09p06ZN+pd/+ZcepdDf9fegpJ9yySWXJAsXLuz+/52dnUl5eXmydOnSDFvVd0hKVq1a1f3/u7q6krKysuRb3/pWd6ytrS0pLi5O/uM//iODFvYNra2tiaRkzZo1SZK83aehQ4cmTzzxRPc1f/zjHxNJydq1a7NqZp9w5plnJv/6r/864Pp44MCBZPLkycmzzz6bfOhDH0puu+22JEkGzlzefffdyYUXXhj+bqD0MUmS5Atf+EJy2WWX4e+zeA/ql5+ADh06pNraWs2bN687NnjwYM2bN09r167NsGUnj7q6OjU3N/focy6X05w5c07pPufzeUnSmDFjJEm1tbU6fPhwj35OnTpVVVVVp2w/Ozs7tXLlSh08eFA1NTUDro8LFy7URz/60R79kQbWXG7dulXl5eU6++yzdcMNN6i+vl7SwOrjz372M82ePVsf//jHVVJSopkzZ+rhhx/u/n0W70H9cgPat2+fOjs7VVpa2iNeWlqq5ubmjFp1cjnSr4HU566uLt1+++2aO3euzj//fElv97OoqEijR4/uce2p2M8XX3xRZ5xxhoqLi/XZz35Wq1at0vTp0wdUH1euXKnf/va3Wrp0acHvBko/58yZo0cffVRPP/20li9frrq6On3wgx/UgQMHBkwfJWnHjh1avny5Jk+erGeeeUa33HKLPve5z+mxxx6TlM17UL8rx2AGDgsXLtRLL73U4/v0gcSUKVO0ceNG5fN5/dd//ZduvPFGrVmzJutm9RkNDQ267bbb9Oyzz2rYsGFZN+ekcdVVV3X/7xkzZmjOnDmaNGmSfvzjH2v48OEZtqxv6erq0uzZs/WNb3xDkjRz5ky99NJLeuihh3TjjTdm0qZ++Qlo3LhxOu200wpMk5aWFpWVlWXUqpPLkX4NlD4vWrRIP//5z/XLX/6yR0XEsrIyHTp0SG1tbT2uPxX7WVRUpHPPPVezZs3S0qVLdeGFF+o73/nOgOljbW2tWltbddFFF2nIkCEaMmSI1qxZowceeEBDhgxRaWnpgOjn0YwePVrve9/7tG3btgEzl5I0YcIETZ8+vUds2rRp3V83ZvEe1C83oKKiIs2aNUurV6/ujnV1dWn16tWqqanJsGUnj+rqapWVlfXoc3t7u9avX39K9TlJEi1atEirVq3SL37xC1VXV/f4/axZszR06NAe/dy8ebPq6+tPqX5GdHV1qaOjY8D08corr9SLL76ojRs3dv/Mnj1bN9xwQ/f/Hgj9PJrXX39d27dv14QJEwbMXErS3LlzC/4kYsuWLZo0aZKkjN6DTora0AesXLkyKS4uTh599NFk06ZNyc0335yMHj06aW5uzrppx82BAweS3/3ud8nvfve7RFLy7W9/O/nd736X7Nq1K0mSJLn33nuT0aNHJz/96U+TP/zhD8k111yTVFdXJ2+++WbGLe89t9xyS5LL5ZLnnnsuaWpq6v554403uq/57Gc/m1RVVSW/+MUvkg0bNiQ1NTVJTU1Nhq1Ozxe/+MVkzZo1SV1dXfKHP/wh+eIXv5gMGjQo+Z//+Z8kSQZGHyPeacElycDo55133pk899xzSV1dXfLrX/86mTdvXjJu3LiktbU1SZKB0cckSZLf/OY3yZAhQ5Kvf/3rydatW5Mf/ehHyYgRI5J///d/777m3X4P6rcbUJIkyXe/+92kqqoqKSoqSi655JJk3bp1WTfphPjlL3+ZSCr4ufHGG5MkeVuD/PKXv5yUlpYmxcXFyZVXXpls3rw520anJOqfpGTFihXd17z55pvJP/zDPyRnnnlmMmLEiOSv/uqvkqampuwafRz8/d//fTJp0qSkqKgoGT9+fHLllVd2bz5JMjD6GHH0BjQQ+nn99dcnEyZMSIqKipKJEycm119/fbJt27bu3w+EPh7hySefTM4///ykuLg4mTp1avKDH/ygx+/f7fcg1wMyxhiTCf3yDMgYY8zAxxuQMcaYTPAGZIwxJhO8ARljjMkEb0DGGGMywRuQMcaYTPAGZIwxJhO8ARljjMkEb0DGGGMywRuQMcaYTPAGZIwxJhP+P6JA+k4nF1wMAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + "text/plain": [ + "┏━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n", + "┃\u001b[1;35m \u001b[0m\u001b[1;35m \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mName \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mType \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mParams\u001b[0m\u001b[1;35m \u001b[0m┃\n", + "┡━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m0\u001b[0m\u001b[2m \u001b[0m│ loss │ L1Loss │ 0 │\n", + "│\u001b[2m \u001b[0m\u001b[2m1\u001b[0m\u001b[2m \u001b[0m│ train_metrics │ MetricCollection │ 0 │\n", + "│\u001b[2m \u001b[0m\u001b[2m2\u001b[0m\u001b[2m \u001b[0m│ val_metrics │ MetricCollection │ 0 │\n", + "│\u001b[2m \u001b[0m\u001b[2m3\u001b[0m\u001b[2m \u001b[0m│ test_metrics │ MetricCollection │ 0 │\n", + "│\u001b[2m \u001b[0m\u001b[2m4\u001b[0m\u001b[2m \u001b[0m│ model │ MultiLayerPerceptron │ 279 K │\n", + "│\u001b[2m \u001b[0m\u001b[2m5\u001b[0m\u001b[2m \u001b[0m│ optimizer │ Adam │ 0 │\n", + "└───┴───────────────┴──────────────────────┴────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Trainable params: 279 K                                                                                            \n",
+       "Non-trainable params: 0                                                                                            \n",
+       "Total params: 279 K                                                                                                \n",
+       "Total estimated model params size (MB): 1                                                                          \n",
+       "
\n" ], - "source": [ - "particles = particle^5\n", - "experimental_image = fluorescence_microscope(particles) + 0.1 >> dt.Poisson(snr=7, background=0.1)\n", - "output_image = experimental_image.update().plot(cmap=\"gray\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `&` will be demonstrated in detail later in this example. But know for now that is a way to stack the outputs of multiple features." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Retrieve information about the image\n", - "\n", - "To train a supervised machine-learning model, labelled images are needed. We can use the `TakeProperties` feature to extract all positions of the particles in the image. This is useful when there are many instances of the property, such as the position of the many particles in the image." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:20.054648Z", - "iopub.status.busy": "2022-06-29T20:12:20.054147Z", - "iopub.status.idle": "2022-06-29T20:12:20.306648Z", - "shell.execute_reply": "2022-06-29T20:12:20.307148Z" - } + "text/plain": [ + "\u001b[1mTrainable params\u001b[0m: 279 K \n", + "\u001b[1mNon-trainable params\u001b[0m: 0 \n", + "\u001b[1mTotal params\u001b[0m: 279 K \n", + "\u001b[1mTotal estimated model params size (MB)\u001b[0m: 1 \n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7afb984f7642447e911fc64a60ff1c3f", + "version_major": 2, + "version_minor": 0 }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "get_positions = dt.TakeProperties(experimental_image, \"position\")\n", - "\n", - "output_image = experimental_image.update()()\n", - "\n", - "positions = get_positions() # returns a list\n", - "\n", - "plt.imshow(np.squeeze(output_image), cmap='gray')\n", - "plt.scatter(positions[:, 1], positions[:, 0], c=\"r\", s=100, linewidths=4, marker=\"x\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we want a pipeline that returns both the image and the positions of the particles. For this we can use the `&` operator." + "text/plain": [ + "Output()" ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:20.310149Z", - "iopub.status.busy": "2022-06-29T20:12:20.309648Z", - "iopub.status.idle": "2022-06-29T20:12:20.564649Z", - "shell.execute_reply": "2022-06-29T20:12:20.565147Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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Dz7wdu3a5Xme5z344INe165dvT/84Q/eRx995F155ZVeVlaWd+TIEZ9b3nSmT5/uBQIB7+233/ZKS0uDP5999lmwzi233OJlZmZ6f/nLX7yNGzd62dnZXnZ2to+tdueuu+7y1q5d6xUUFHgfffSRd9ddd3kxMTHem2++6XledPTR4kQLzvOio5+333679/bbb3sFBQXe3//+d2/ChAlejx49vD179nieFx199DzPe++997x27dp5P//5z738/HzvhRde8M466yzv+eefD9Y508+giN2APM/zHnvsMS8zM9OLjY31zj//fG/9+vV+N+m0+Otf/+oBCPuZOnWq53nHNci7777bS0pK8uLi4ryLL77Yy8vL87fRjlj9A+AtW7YsWOfIkSPeD3/4Q69bt27eWWed5X3729/2SktL/Wv0KfD973/f69WrlxcbG+v17NnTu/jii4Obj+dFRx8tGm5A0dDPa665xktJSfFiY2O9tLQ075prrvG2bdsWfD0a+ljPa6+95g0dOtSLi4vzBg0a5D311FMhr5/pZ5DyAQkhhPCFiDwDEkIIEf1oAxJCCOEL2oCEEEL4gjYgIYQQvqANSAghhC9oAxJCCOEL2oCEEEL4gjYgIYQQvqANSAghhC9oAxJCCOEL2oCEEEL4wv8DVx3vMzM0UGkAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + "data": { + "text/html": [ + "
c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n",
+       "nector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the \n",
+       "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n",
+       "
\n" ], - "source": [ - "position_feature = dt.TakeProperties(experimental_image, \"position\")\n", - "image_and_position = experimental_image & position_feature\n", - "\n", - "output_image, positions = image_and_position.update()()\n", - "\n", - "plt.imshow(np.squeeze(output_image), cmap='gray')\n", - "plt.scatter(positions[:, 1], positions[:, 0], c=\"r\", s=100, linewidths=4, marker=\"x\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, we first create a feature that extracts the positions in the image, and then we \"stack\" them using the `&` operator. The result is a feature that first calls `experimental_image()` and then `get_positions(experimental_image())`, and returns both results. Don't worry, DeepTrack 2.1 makes sure that `experimental_image` will not be executed twice unless absolutely needed!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Training the model" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are finally ready to create a deep-learning model to track the particles. We will use `deeplay`, which is developed by the same team as DeepTrack. Deeplay is a deep-learning library containing a collection of flexible and modular components for building and training deep-learning models, with a seamless integration with DeepTrack. \n" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:20.568148Z", - "iopub.status.busy": "2022-06-29T20:12:20.567650Z", - "iopub.status.idle": "2022-06-29T20:12:20.825148Z", - "shell.execute_reply": "2022-06-29T20:12:20.825650Z" - } - }, - "outputs": [], - "source": [ - "import deeptrack.deeplay as dl\n", - "\n", - "# DEFINE MODEL\n", - "net = dl.MultiLayerPerceptron(\n", - " in_features=64*64,\n", - " hidden_features=[64, 256],\n", - " out_features=2,\n", - ")\n", - "\n", - "\n", - "# DEFINE TRAINING SET\n", - "particle = dt.PointParticle(position=lambda: IMAGE_SIZE / 2 + np.random.randn(2) * 2)\n", - "training_data = fluorescence_microscope(particle) >> dt.NormalizeMinMax()\n", - "normalized_position = particle.position - IMAGE_SIZE / 2\n", - "training_set = training_data & normalized_position" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we want to tell the model which loss and optimizer to use. We can do this by using `dl.Regressor()`, since we are doing a regression task. We will also provide the training pipeline. Deeplay will make the dataset for us internally." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Regressor(\n", - " (loss): L1Loss()\n", - " (train_metrics): MetricCollection,\n", - " prefix=train\n", - " )\n", - " (val_metrics): MetricCollection,\n", - " prefix=val\n", - " )\n", - " (test_metrics): MetricCollection,\n", - " prefix=test\n", - " )\n", - " (model): MultiLayerPerceptron(\n", - " (blocks): LayerList(\n", - " (0): LayerActivationNormalizationDropout(\n", - " (layer): Layer[Linear](in_features=4096, out_features=64)\n", - " (activation): Layer[ReLU]()\n", - " (normalization): Layer[Identity](num_features=64)\n", - " (dropout): Layer[Dropout](p=0)\n", - " )\n", - " (1): LayerActivationNormalizationDropout(\n", - " (layer): Layer[Linear](in_features=64, out_features=256)\n", - " (activation): Layer[ReLU]()\n", - " (normalization): Layer[Identity](num_features=256)\n", - " (dropout): Layer[Dropout](p=0)\n", - " )\n", - " (2): LayerActivationNormalizationDropout(\n", - " (layer): Layer[Linear](in_features=256, out_features=2)\n", - " (activation): Layer[Identity]()\n", - " (normalization): Layer[Identity](num_features=2)\n", - " (dropout): Layer[Dropout](p=0)\n", - " )\n", - " )\n", - " )\n", - " (optimizer): Adam[Adam](lr=0.001)\n", - ")" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } + "text/plain": [ + "c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n", + "nector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the \n", + "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n",
+       "nector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the\n",
+       "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n",
+       "
\n" ], - "source": [ - "model = dl.Regressor(net)\n", - "model" + "text/plain": [ + "c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n", + "nector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the\n", + "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n" ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since we've defined the `training_set` as a feature that returns the data and the label simultaneously, we can train the model by passing it the feature directly! We can easily generate a separate validation set from the same feature." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:20.828148Z", - "iopub.status.busy": "2022-06-29T20:12:20.828148Z", - "iopub.status.idle": "2022-06-29T20:12:46.042765Z", - "shell.execute_reply": "2022-06-29T20:12:46.043266Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
┏━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
-              "┃    Name           Type                  Params ┃\n",
-              "┡━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
-              "│ 0 │ loss          │ L1Loss               │      0 │\n",
-              "│ 1 │ train_metrics │ MetricCollection     │      0 │\n",
-              "│ 2 │ val_metrics   │ MetricCollection     │      0 │\n",
-              "│ 3 │ test_metrics  │ MetricCollection     │      0 │\n",
-              "│ 4 │ model         │ MultiLayerPerceptron │  279 K │\n",
-              "│ 5 │ optimizer     │ Adam                 │      0 │\n",
-              "└───┴───────────────┴──────────────────────┴────────┘\n",
-              "
\n" - ], - "text/plain": [ - "┏━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n", - "┃\u001b[1;35m \u001b[0m\u001b[1;35m \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mName \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mType \u001b[0m\u001b[1;35m \u001b[0m┃\u001b[1;35m \u001b[0m\u001b[1;35mParams\u001b[0m\u001b[1;35m \u001b[0m┃\n", - "┡━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n", - "│\u001b[2m \u001b[0m\u001b[2m0\u001b[0m\u001b[2m \u001b[0m│ loss │ L1Loss │ 0 │\n", - "│\u001b[2m \u001b[0m\u001b[2m1\u001b[0m\u001b[2m \u001b[0m│ train_metrics │ MetricCollection │ 0 │\n", - "│\u001b[2m \u001b[0m\u001b[2m2\u001b[0m\u001b[2m \u001b[0m│ val_metrics │ MetricCollection │ 0 │\n", - "│\u001b[2m \u001b[0m\u001b[2m3\u001b[0m\u001b[2m \u001b[0m│ test_metrics │ MetricCollection │ 0 │\n", - "│\u001b[2m \u001b[0m\u001b[2m4\u001b[0m\u001b[2m \u001b[0m│ model │ MultiLayerPerceptron │ 279 K │\n", - "│\u001b[2m \u001b[0m\u001b[2m5\u001b[0m\u001b[2m \u001b[0m│ optimizer │ Adam │ 0 │\n", - "└───┴───────────────┴──────────────────────┴────────┘\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
Trainable params: 279 K                                                                                            \n",
-              "Non-trainable params: 0                                                                                            \n",
-              "Total params: 279 K                                                                                                \n",
-              "Total estimated model params size (MB): 1                                                                          \n",
-              "
\n" - ], - "text/plain": [ - "\u001b[1mTrainable params\u001b[0m: 279 K \n", - "\u001b[1mNon-trainable params\u001b[0m: 0 \n", - "\u001b[1mTotal params\u001b[0m: 279 K \n", - "\u001b[1mTotal estimated model params size (MB)\u001b[0m: 1 \n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7afb984f7642447e911fc64a60ff1c3f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n",
-              "nector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the \n",
-              "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n",
-              "
\n" - ], - "text/plain": [ - "c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n", - "nector.py:441: The 'val_dataloader' does not have many workers which may be a bottleneck. Consider increasing the \n", - "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n",
-              "nector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the\n",
-              "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n",
-              "
\n" - ], - "text/plain": [ - "c:\\Users\\GU\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\lightning\\pytorch\\trainer\\connectors\\data_con\n", - "nector.py:441: The 'train_dataloader' does not have many workers which may be a bottleneck. Consider increasing the\n", - "value of the `num_workers` argument` to `num_workers=19` in the `DataLoader` to improve performance.\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n"
-            ],
-            "text/plain": []
-          },
-          "metadata": {},
-          "output_type": "display_data"
-        },
-        {
-          "data": {
-            "text/html": [
-              "
\n",
-              "
\n" - ], - "text/plain": [ - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + "data": { + "text/html": [ + "
\n"
       ],
-      "source": [
-        "h = model.fit(\n",
-        "    training_set,\n",
-        "    max_epochs=20,\n",
-        "    batch_size=32, \n",
-        "    steps_per_epoch=100,\n",
-        "    val_data=training_set,\n",
-        "    val_batch_size=128,\n",
-        "    val_steps_per_epoch=1\n",
-        ")"
-      ]
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
     },
     {
-      "cell_type": "markdown",
-      "metadata": {},
-      "source": [
-        "We can inspect the output of `.fit` to see how the training went. For example, plot the loss to see how it evolved over time."
-      ]
-    },
-    {
-      "cell_type": "code",
-      "execution_count": 25,
-      "metadata": {},
-      "outputs": [
-        {
-          "data": {
-            "image/png": "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IqJpj0EyIiIiIiIiIiKa9hgkIyIiIiIiIiKKUllZGZ544om4rOvtt9+GJEno6+uLy/ooNgySEREREREREdG0cMEFF+Ab3/hGXNa1e/dufPWrX43LuiaDjRs3Yvny5cluRkIZkt0AIiIiIiIiIqKJQFEUOJ1OGAyRwyUzZ84chxbReGIm2WTQdRho2QuM9iW7JURERERERETqZOf4X6Kwfv16vPPOO3jyySchSRIkScJzzz0HSZLw+uuv47TTToPJZML777+P+vp6XHHFFSgsLERGRgZWrlyJt956y299gcMtJUnCs88+i6uuugppaWlYsGABXn311Zhfzr/85S9YvHgxTCYTysrK8Nhjj/nd//TTT2PBggUwm80oLCzEtdde67nvz3/+M5YuXYrU1FTk5+djzZo1GB4ejrjNt99+G2eccQbS09ORk5ODs88+G8eOHcNzzz2HBx54AAcOHPB77QCgr68PX/nKVzBz5kxkZWXhoosuwoEDBzzrdGegPfPMMygtLUVaWhquu+469Pf3x/zaJAozySYDhwWwjQCyI9ktISIiIiIiIgomO4Fj28d/u3NXATq9pkWffPJJHD58GEuWLMGDDz4IADh48CAA4J577sGjjz6KiooK5Obmorm5GZdddhm+//3vw2Qy4fnnn8fll1+Ouro6zJkzJ+Q2HnjgATz88MN45JFH8NRTT+HGG2/EsWPHkJeXF9XT2rt3L6677jps3LgR119/PbZv347bbrsN+fn5WL9+Pfbs2YM77rgDv/vd77Bq1Sr09PTgvffeAwC0tbXhhhtuwMMPP4yrrroKg4ODeO+996AoSthtOhwOXHnllbjlllvw4osvwmazYdeuXZAkCddffz0++eQTvPHGG55gYXZ2NgDgc5/7HFJTU/H6668jOzsbzzzzDFavXo3Dhw97nvfRo0fxxz/+EX//+98xMDCAL3/5y7jtttvwwgsvRPW6JBqDZJOB5Er4izJKTkRERERERERCdnY2jEYj0tLSUFRUBACora0FADz44IO4+OKLPcvm5eVh2bJlnv8feughvPLKK3j11Vdx++23h9zG+vXrccMNNwAAfvCDH+CnP/0pdu3ahXXr1kXV1scffxyrV6/GvffeCwCorKzEoUOH8Mgjj2D9+vU4fvw40tPT8ZnPfAaZmZmYO3cuTj31VAAiSOZwOHD11Vdj7ty5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Y+b4NYiIiIiIiIiIaBJj+tFUoQuId3bVJqcdRERERERERESTEINkk5RstWLovffR88IL4obAIBkRERERERERefziF7/A7NmzIcuy3+1XXHEFvvSlL6G+vh5XXHEFCgsLkZGRgZUrV+Ktt96K2/Y//vhjXHTRRUhNTUV+fj6++tWvYmhoyHP/22+/jTPOOAPp6enIycnB2WefjWPHjgEADhw4gAsvvBCZmZnIysrCaaedhj179mja7vvvv49zzz0XqampKC0txR133IHh4WHP/WVlZXjooYdwww03ID09HcXFxdi0aZPfOo4fP44rrrgCGRkZyMrKwnXXXYeOjg6/Zf7+979j5cqVMJvNmDFjBq666iq/+0dGRvClL30JmZmZmDNnDn7xi19E9fqNhwkZJPvHP/6BhQsXYsGCBXj22WeT3ZwJSbFY0HzLLeh46H/gHBgAdCkqCynj3zAiIiIiIiKatuSRkdAXq1X7shZLxGWj9bnPfQ7d3d3497//7bmtp6cHb7zxBm688UYMDQ3hsssuw9atW7Fv3z6sW7cOl19+OY4fPx7bi+FjeHgYa9euRW5uLnbv3o0//elPeOutt3D77bcDABwOB6688kqcf/75+Oijj7Bjxw589atfheQqrXTjjTeipKQEu3fvxt69e3HPPfcgJUUlDhCgvr4e69atwzXXXIOPPvoIL730Et5//33Pdt0eeeQRLFu2DPv27cM999yDr3/969iyZQsAQJZlXHHFFejp6cE777yDLVu2oKGhAddff73n8a+99hquuuoqXHbZZdi3bx+2bt2KM844w28bjz32GE4//XTs27cPt912G/7rv/4LdXV1Y3pd401SlIkVSXE4HKiursa///1vZGdn47TTTsP27duRn5+f7KZNOEcvWg17ayvmPP9bpK9cCTS977/A3FWATp+cxhEREREREdGUZLFY0NjYiPLycpjNZr/7ahZVhXxc+vnnYc4zz3j+rz11BZTRUdVl01auxNzfPe/5//BZq+Ds7fVbpqq2Juq2X3nllcjPz8evfvUrACK77IEHHkBzczN0uuA8oiVLluDWW2/1BJXKysrwjW98A9/4xjcibkuSJLzyyiu48sor8ctf/hLf/va30dzcjPT0dADA5s2bcfnll6O1tRUpKSnIz8/H22+/jfPPPz9oXVlZWXjqqadw0003RfV8v/KVr0Cv1+MZn9f9/fffx/nnn4/h4WGYzWaUlZWhqqoKr7/+umeZz3/+8xgYGMDmzZuxZcsWXHrppWhsbERpaSkA4NChQ1i8eDF27dqFlStXYtWqVaioqMD//d//qbajrKwM5557Ln73u98BABRFQVFRER544AHceuutUT0nNeE+k9GYcJlku3btwuLFi1FcXIyMjAxceumlePPNN5PdrAnJVCV2Ptba2uDC/QCgyMG3EREREREREU1TN954I/7yl7/A6spqe+GFF/D5z38eOp0OQ0NDuOuuu1BVVYWcnBxkZGSgpqYmLplkNTU1WLZsmSdABgBnn302ZFlGXV0d8vLysH79eqxduxaXX345nnzySbS1tXmWvfPOO/GVr3wFa9aswY9+9CPU19dr2u6BAwfw3HPPISMjw3NZu3YtZFlGY2OjZ7mzzjrL73FnnXUWampqPG0vLS31BMgAoLq6Gjk5OZ5l9u/fj9WrV4dtyymnnOK5LkkSioqK0NnZqel5jJe4F7J699138cgjj2Dv3r1oa2vzRE19bdq0CY888gja29uxbNkyPPXUU540vNbWVhQXF3uWLS4uRktLS7ybOSWYFy3C0NatsNSEKNLPIBkRERERERGNo4Uf7g19p95/pFPltvdDLAggIKtr/tb41Aa7/PLLoSgKXnvtNaxcuRLvvfcefvKTnwAA7rrrLmzZsgWPPvoo5s+fj9TUVFx77bWw2Wxx2XYkv/nNb3DHHXfgjTfewEsvvYTvfe972LJlCz71qU9h48aN+MIXvoDXXnsNr7/+Ou6//3784Q9/CKr7FWhoaAj/+Z//iTvuuCPovjlz5sSt7ampqRGXCRweKklSUH24ZIt7Jtnw8DCWLVsWVOTN7aWXXsKdd96J+++/Hx9++CGWLVuGtWvXTrjo4WRgrloEALDUMkhGREREREREyadLSwt9MZm0LxswZE5tmViYzWZcffXVeOGFF/Diiy9i4cKFWLFiBQBg27ZtWL9+Pa666iosXboURUVFaGpqimk7gaqqqnDgwAG/gvnbtm2DTqfDwoULPbedeuqp+M53voPt27djyZIl+P3vf++5r7KyEv/93/+NN998E1dffTV+85vfRNzuihUrcOjQIcyfPz/oYjQaPct98MEHfo/74IMPUOUavVZVVYXm5mY0Nzd77j906BD6+vpQXV0NQGSJbd26NcpX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A+T+fjhO9ia7OUREREREREREkwaDZFOIzmiEad486PPyYPcNkjGrjIiIiIiIiIgoLEOyG0DxNfeFF6BLT4PU9L7PrQySERERERERERGFwyDZFKPPSA++kZlkRERERERERERhcbjltMAgGRERERERERFROAySTTGK3Y7m/7oNR774bTiHR1w3MkhGRERERERERBQOg2RTjJSSAktdLRxdvbA2trhuZZCMiIiIiIiIiCgcBsmmIPPCRQAAS32zuIGZZEREREREREREYU2ZINmmTZtQXV2NlStXJrspSWeucgXJGpqT3BIiIiIiIiIioslhygTJNmzYgEOHDmH37t3JbkrSmRaJIJm1qc11CzPJiIiIiIiIiIjCmTJBMvIyV1UBAKyNx6E4HBxuSUREREREREQUAYNkU1BKcTF0GRlQ7A5Ym9vBTDIiIiIiIiIiovAMyW4AxZ+k0yF1xamQe7qgWG3MJCMiIiIiIiIiioBBsilqzi9+AZw8Agwyk4yIiIiIiIiIKBIOt5zSJPGHmWRERERERERERGExSDaVSRJkixWKIie7JUREREREREREExqDZFOUIsto+OLtqLvmDjg6Tya7OUREREREREREExqDZFOUpHO9tbICy+H65DaGiIiIiIiIiGiCY5BsCjMvqAAAWI4wSEZEREREREREFA6DZFOYyRUksx5uSHJLiIiIiIiIiIgmtikTJNu0aROqq6uxcuXKZDdlwjBXzgMAWI40AKN9QP+J5DaIiIiIiIiIiGiCkhRFUZLdiHgaGBhAdnY2+vv7kZWVlezmJJXj2Cc4svZzAIDKPz8BfXoaUFANpOcnuWVERERERERERBPLlMkko2CGnBwYZuYCAKyNLeJGx2gSW0RERERERERENDEZkt0ASiBJj8xVKyBbnNCZTeK2qZU4SEREREREREQUFwySTWWSDkW3Xg+k5gKjvcluDRERERERERHRhMXhllOZTi/+KnJy20FERERERERENMExSDaVSeLtVRw2WI+1QnE6AXC4JRERERERERFRIAbJpjJJgqIoOHLd7Wi4dSOsze3JbhERERERERER0YTEINlUJukhSRKMJUUAAGtDc5IbREREREREREQ0MTFINpW5hluaK0oBAJb6Zs5uSURERERERESkgkGyqcxVuN9cUQIAsDCTjIiIiIiIiIhIFYNkU5krk8xUXgxADLdUmElGRERERERERBSEQbKpTBKZZKa5swGdDs6BYTi6upLcKCIiIiIiIiKiiYdBsqnMlUmmM6bANEcU77ccbkhmi4iIiIiIiIiIJiRDshtACaTTAZIEKApy1p0L5/AojKXF6svKMtCyF6j/F3De3eKxRERERERERETTxJQJkm3atAmbNm2C0+lMdlMmFkkHKE7kXbFa/J8dIkjmtAHPXwHYh4EFa4Di08avjURERERERERESTZl0oU2bNiAQ4cOYffu3cluysQiBb7FIQr3p5hFcAwAajcntElERERERERERBPNlAmSUQg+QTJ7RzcG390BeWREfdmFnxZ/a18bh4YREREREREREU0cU2a4JYXgEyRruuthOE72Yu6cKqStWBG87IKLxYyYXTVATwOQVzGODSUiIiIiIiIiSh5mkk11kuS5aq4oBQBYamrUl03LA8rOFtc55JKIiIiIiIiIphEGyaY6n0wy0zwRJLPW1oobZBmw9AOKT50yDrkkIiIiIiIiommIQbKpzidIZq4oAQBYalxBsp56oO0joLfJu/yiy8Tf5g+A4e5xaiQRERERERERUXIxSDaNuIdbWg8fhmK3A4Pt4o7+E96FcuYARUsBRQYOv5GEVhIRERERERERjT8GyaY6n6GUKUUzoEs1QbHZYG1sDP0YDrkkIiIiIiIiommGQbJpRNLpYCoXQy49dcnUuIdc1v8LsI2MQ8uIiIiIiIiIiJLLkOwGUKIpfv/lX7sWsnEG0s78FDBSp/6QolOA7FKgvxloeNsbNCMiIiIiIiIimqKYSTbVKf5BssyzliN73WqkFBaEfowkAQtdgTEOuSQiIiIiIiKiaYBBsilPUblJCQqeBXFnjx1+A5Cd8W8WEREREREREdEEwiDZVKcSCxt+55/ofnwjHH0DoR8392zAnA2MnASadyWufUREREREREREEwCDZFNecJSs46nfovOXf8To4abQD9OnAAvWiuu1/0hM04iIiIiIiIiIJggGyaY6lWGVpopSAIC1vjn8Y91DLus2Rx6eSUREREREREQ0iTFINtXpU4JuMruCZJaGCEGy+WsAvRHoaQC6QsyESUREREREREQ0BTBINtXNqAy6yTyvBABgaTgR/rGmTKD8fHGdQy6JiIiIiIiIaApjkGyqM6YBxnS/m0zlIpPM3toJ54hF3CjL6o/3HXJJRERE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pMoz5LImhiAZwCGXRERERERERDSpMEhGgiHV79/0FdXIWr0KpvnzY1ufO0jW9D4w2je2thERERERERERJRiDZCTkVfj9m3PxKhTfcysyL7owtvXlzwNmLARkB3BkSxwaSERERERERESUOAySkWAwAhmFATcqqotqxiGXRERERERERDRJMEhGXors/6/DCWtDIxy9vbGtzx0kO7IFcFjH2DgiIiIiIiIiosRhkIx8+GeOnXjwp2i47DIM/vOfsa1u9gogowiwDQGN78WhfUREREREREREicEgGXml+BfvN82ZDWAMM1zqdMDCS8V1DrkkIiIiIiIiogmMQTLyyi71+9dcMQcAYKmtiX2d7iGXtZsBWQ6/LBERERERERFRkjBIRl46PZA+w/OvaZ4ImlnrDkNxOmNbZ/l5gDEDGGoHWvfFo5VERERERERERHHHIBmFZCzKh2QyQrFYYDt2LLaVGEzA/DXiOodcEhEREREREdEExSAZhSTpdTCXlwAALDXxGHLJIBkRERERERERTUwMklEAye8/U4VryGVtjMX7AWDBxYCkB7pqge76sTSOiIiIiIiIiCghpkyQbNOmTaiursbKlSuT3ZQpJXPVcsz4wmeQceFFsa8kNRcoO0dcr9scn4YREREREREREcWRpCiKkuxGxNPAwACys7PR39+PrKysZDdn8umsBYa7gm8vP3ds6935DPD6t4A5ZwFfemNs6yIiIiIiIiIiirMpk0lGCTbWWOrCS8Xf5p3A8Mmxt4eIiIiIiIiIKI4YJKOI7N19GPz327HPcAkAOXOAolMARQYOM5OMiIiIiIiIiCYWBsnInyQF3dT5yz/hxG23YeCfb45t3ZzlkoiIiIiIiIgmKAbJKCLvDJc1Y1vRwsvE3/p/A7aRMbaKiIiIiIiIiCh+GCSjiMzzRJDMUls3thUVLQWy5wCOUaDh33FoGRERERERERFRfDBIRgGCh1uaXZlktsZGyCNjyACTJGCRK5uMQy6JiIiIiIiIaAJhkIwiMuRmQT9jBqAosB454r1DlqNfmXvI5eE3ANkZnwYSEREREREREY0Rg2SkiXnRQgCApaZW3HDyCHBsW/S1xeauAsw5wEg30Lwzvo0kIiIiIiIiIooRg2SkiXnRIgCAxV28f7Bd/B1oiW5F+hSgcq24ziGXRERERERERDRBMEhGmmStvRizf/wj5K9fP/aVLfSpS6YoY18fEREREREREdEYGZLdAJpgpODC/QBgrqqCeemy4DtiCXLNXw3oTUBvI9BVCxRURb8OIiIiIiIiIqI4YiYZaRTHjC9TJlBxvrhe+4/4rZeIiIiIiIiIKEYMkpFmowcPoue3v8XogQNjX5lnyOXmsa+LiIiIiIiIiGiMGCQjbRQFfX/8Ezp++CMMvrV17OtbeBkACWj9EBhoHfv6iIiIiIiIiIjGgEEyCqBekwxdtTDPLwMAWA4dHPtmMguBktPF9TpmkxERERERERFRcjFIRtpYB2HOFwE0S41vkGwMtco45JKIiIiIiIiIJggGyUgzU3kxIElw9vTD0Tsw9hUu+oz42/guYInD+oiIiIiIiIiIYsQgGWmmM5tgLC4AAFgamse+wpmVQP58QLYDR7eMfX1ERERERERERDFikIz8ZRSEvdtcUQoAsMYjSAZwyCURERERERERTQgMkpE/cxZQsjLk3aZ5IkhmqY9TkMw95PLIFsBhi886iYiIiIiIiIiiZEh2A2gCSjGHvCv7gjOQvnShqE8WDyWnA+kzgeEu4Nj7wLyL4rNeIiIiIiIiIqIoMJOMopJSkI/UqgrozCZxgzKG2S0BQKcHKteJ6xxySURERERERERJwiAZJZ97yGXd5rEH3YiIiIiIiIiIYsAgGUVtaM8naH/69xj84EB8VlhxPpCSBgy0AG3747NOIiIiIiIiIqIoMEhGURs5UIfev7+NoT2fxGeFKaneWmQccklEREREREREScAgGUXNPcOltSFOM1wC/kMuiYiIiIiIiIjGGYNkpE6nD3mXuUIEySyNLVCczvhsr3ItIOmBjk+A3qb4rJOIiIiIiIiISCMGyUjd7BXAjAViKGQAY3EhJFMKFIsVttb2+GzPmAGUnC6uc8glEREREREREY0zBslIXYoZyCwCJCnoLkmvg6msBABgPdIYn+217gOKThHXOeSSiIiIiIiIiMYZg2QUE7OrLpnlaJyCZE4bUHqmuH5sGzDSE5/1EhERERERERFpwCAZxcRdl8ze3hW/lWYWAXkVgCIDh/8Zv/USEREREREREUVgSHYDaIJTFNWbsy5YicyzV8BQXB7f7ZWdA/Q0AHWvActviO+6iYiIiIiIiIhCYCYZhRciSKZPT4MhJzPk/TErO1f8PboVsI/Gd91ERERERERERCEwSEYRxDkIFsmMSiCrGLCPAA3vjO+2iYiIiIiIiGjaYpCMwguTKdb/9i4cv/sh9P7hD/Hd5sLLxN+61+K7XiIiIiIiIiKiEBgkowhCB8nsHd0Y3rUfI7v3xHeTi9xBstcB2RnfdRMRERERERERqWCQjMILk0lmrigBAFhqa+O3PUkC5p4DmLKA4S7gRJwDcEREREREREREKhgkowhCB8lM80oBALbGRsgWS5w2pwAGI7DgEvE/h1wSERERERER0ThgkIxiZsjNhj43G5BlWI8cie/K3UMuaxkkGxdOO9B/AnDYkt0SIiIiIiIioqRgkIzCCzPcUpIkmOeXAQAsNTXx3e78iwFdCtB9FOg6HN91U7DOGqCnEeiK8/tIRERERERENEkwSEYRhA6SAfAEyazxrEsGAOYsoPw8cZ1DLhPP0u/6O5DcdhARERERERElCYNkFF6YTDIAMM0vgy4zE4AU/21zyCURERERERERjRMGyWhMss4/C5W7dqLovnvjv/KFriDZiT3AYHv8109ERERERERE5MIgGY2JZNBDkhKQRQYAWbOB2SsAKEDd64nZBhERERERERERGCSjOFIiDM2MiXvIZd3m+K+biIiIiIiIiMiFQTIas94/vISja9ei68kn47/yhZ8WfxveBkb7479+8peorEAiIiIiIiKiCY5BMhojBYrshP3YcVhqauK/+oIqIHMW4LQBn/wl/uunAAySERERERER0fTEIBmNmXlRFQDAWlMb/5VLElB6prhe/1b810/+mElGRERERERE0xSDZDRmpspKQJLg6OyEo7s7/hso/ZT42/ge4LTHf/3kJXGXQERERERERNPThDwivuqqq5Cbm4trr7022U0hDfQZ6TDOmQMAsNQmIJusoAowZQHWAeDY9vivn3wwk4yIiIiIiIimpwkZJPv617+O559/PtnNoCiYqlxDLmvr4r9ynR4oOUNc5yyXicVMMiIiIiIiIpqmJuQR8QUXXIDMzMxkN4O0UBQAgHnRIgAJyiQDgDmuumS1mz3bpARgTTIiIiIiIiKapqIOkr377ru4/PLLMXv2bEiShL/+9a9By2zatAllZWUwm80488wzsWvXrni0lSYkV5BsyRKYFy+GcVY+0HssxKJjCG7NPhUwmIH+40D7x7GvhyJgkIyIiIiIiIimp6iDZMPDw1i2bBk2bdqkev9LL72EO++8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",
-            "text/plain": [
-              "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } + "data": { + "text/html": [ + "
\n",
+       "
\n" ], - "source": [ - "import seaborn as sns\n", - "h.plot()\n", - "sns.despine(trim=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we test the trained model on some newly generated images. We can create a batch of data using the `.batch()` method. We also call `.torch` to convert the data to a format that deeplay expects." + "text/plain": [ + "\n" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h = model.fit(\n", + " training_set,\n", + " max_epochs=20,\n", + " batch_size=32, \n", + " steps_per_epoch=100,\n", + " val_data=training_set,\n", + " val_batch_size=128,\n", + " val_steps_per_epoch=1\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can inspect the output of `.fit` to see how the training went. For example, plot the loss to see how it evolved over time." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IqJpj0EyIiIiIiIiIiKa9hgkIyIiIiIiIiKKUllZGZ544om4rOvtt9+GJEno6+uLy/ooNgySEREREREREdG0cMEFF+Ab3/hGXNa1e/dufPWrX43LuiaDjRs3Yvny5cluRkIZkt0AIiIiIiIiIqKJQFEUOJ1OGAyRwyUzZ84chxbReGIm2WTQdRho2QuM9iW7JURERERERETqZOf4X6Kwfv16vPPOO3jyySchSRIkScJzzz0HSZLw+uuv47TTToPJZML777+P+vp6XHHFFSgsLERGRgZWrlyJt956y299gcMtJUnCs88+i6uuugppaWlYsGABXn311Zhfzr/85S9YvHgxTCYTysrK8Nhjj/nd//TTT2PBggUwm80oLCzEtdde67nvz3/+M5YuXYrU1FTk5+djzZo1GB4ejrjNt99+G2eccQbS09ORk5ODs88+G8eOHcNzzz2HBx54AAcOHPB77QCgr68PX/nKVzBz5kxkZWXhoosuwoEDBzzrdGegPfPMMygtLUVaWhquu+469Pf3x/zaJAozySYDhwWwjQCyI9ktISIiIiIiIgomO4Fj28d/u3NXATq9pkWffPJJHD58GEuWLMGDDz4IADh48CAA4J577sGjjz6KiooK5Obmorm5GZdddhm+//3vw2Qy4fnnn8fll1+Ouro6zJkzJ+Q2HnjgATz88MN45JFH8NRTT+HGG2/EsWPHkJeXF9XT2rt3L6677jps3LgR119/PbZv347bbrsN+fn5WL9+Pfbs2YM77rgDv/vd77Bq1Sr09PTgvffeAwC0tbXhhhtuwMMPP4yrrroKg4ODeO+996AoSthtOhwOXHnllbjlllvw4osvwmazYdeuXZAkCddffz0++eQTvPHGG55gYXZ2NgDgc5/7HFJTU/H6668jOzsbzzzzDFavXo3Dhw97nvfRo0fxxz/+EX//+98xMDCAL3/5y7jtttvwwgsvRPW6JBqDZJOB5Er4izJKTkRERERERERCdnY2jEYj0tLSUFRUBACora0FADz44IO4+OKLPcvm5eVh2bJlnv8feughvPLKK3j11Vdx++23h9zG+vXrccMNNwAAfvCDH+CnP/0pdu3ahXXr1kXV1scffxyrV6/GvffeCwCorKzEoUOH8Mgjj2D9+vU4fvw40tPT8ZnPfAaZmZmYO3cuTj31VAAiSOZwOHD11Vdj7ty5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Y+b4NYiIiIiIiIiIaBJj+tFUoQuId3bVJqcdRERERERERESTEINkk5RstWLovffR88IL4obAIBkRERERERERefziF7/A7NmzIcuy3+1XXHEFvvSlL6G+vh5XXHEFCgsLkZGRgZUrV+Ktt96K2/Y//vhjXHTRRUhNTUV+fj6++tWvYmhoyHP/22+/jTPOOAPp6enIycnB2WefjWPHjgEADhw4gAsvvBCZmZnIysrCaaedhj179mja7vvvv49zzz0XqampKC0txR133IHh4WHP/WVlZXjooYdwww03ID09HcXFxdi0aZPfOo4fP44rrrgCGRkZyMrKwnXXXYeOjg6/Zf7+979j5cqVMJvNmDFjBq666iq/+0dGRvClL30JmZmZmDNnDn7xi19E9fqNhwkZJPvHP/6BhQsXYsGCBXj22WeT3ZwJSbFY0HzLLeh46H/gHBgAdCkqCynj3zAiIiIiIiKatuSRkdAXq1X7shZLxGWj9bnPfQ7d3d3497//7bmtp6cHb7zxBm688UYMDQ3hsssuw9atW7Fv3z6sW7cOl19+OY4fPx7bi+FjeHgYa9euRW5uLnbv3o0//elPeOutt3D77bcDABwOB6688kqcf/75+Oijj7Bjxw589atfheQqrXTjjTeipKQEu3fvxt69e3HPPfcgJUUlDhCgvr4e69atwzXXXIOPPvoIL730Et5//33Pdt0eeeQRLFu2DPv27cM999yDr3/969iyZQsAQJZlXHHFFejp6cE777yDLVu2oKGhAddff73n8a+99hquuuoqXHbZZdi3bx+2bt2KM844w28bjz32GE4//XTs27cPt912G/7rv/4LdXV1Y3pd401SlIkVSXE4HKiursa///1vZGdn47TTTsP27duRn5+f7KZNOEcvWg17ayvmPP9bpK9cCTS977/A3FWATp+cxhEREREREdGUZLFY0NjYiPLycpjNZr/7ahZVhXxc+vnnYc4zz3j+rz11BZTRUdVl01auxNzfPe/5//BZq+Ds7fVbpqq2Juq2X3nllcjPz8evfvUrACK77IEHHkBzczN0uuA8oiVLluDWW2/1BJXKysrwjW98A9/4xjcibkuSJLzyyiu48sor8ctf/hLf/va30dzcjPT0dADA5s2bcfnll6O1tRUpKSnIz8/H22+/jfPPPz9oXVlZWXjqqadw0003RfV8v/KVr0Cv1+MZn9f9/fffx/nnn4/h4WGYzWaUlZWhqqoKr7/+umeZz3/+8xgYGMDmzZuxZcsWXHrppWhsbERpaSkA4NChQ1i8eDF27dqFlStXYtWqVaioqMD//d//qbajrKwM5557Ln73u98BABRFQVFRER544AHceuutUT0nNeE+k9GYcJlku3btwuLFi1FcXIyMjAxceumlePPNN5PdrAnJVCV2Ptba2uDC/QCgyMG3EREREREREU1TN954I/7yl7/A6spqe+GFF/D5z38eOp0OQ0NDuOuuu1BVVYWcnBxkZGSgpqYmLplkNTU1WLZsmSdABgBnn302ZFlGXV0d8vLysH79eqxduxaXX345nnzySbS1tXmWvfPOO/GVr3wFa9aswY9+9CPU19dr2u6BAwfw3HPPISMjw3NZu3YtZFlGY2OjZ7mzzjrL73FnnXUWampqPG0vLS31BMgAoLq6Gjk5OZ5l9u/fj9WrV4dtyymnnOK5LkkSioqK0NnZqel5jJe4F7J699138cgjj2Dv3r1oa2vzRE19bdq0CY888gja29uxbNkyPPXUU540vNbWVhQXF3uWLS4uRktLS7ybOSWYFy3C0NatsNSEKNLPIBkRERERERGNo4Uf7g19p95/pFPltvdDLAggIKtr/tb41Aa7/PLLoSgKXnvtNaxcuRLvvfcefvKTnwAA7rrrLmzZsgWPPvoo5s+fj9TUVFx77bWw2Wxx2XYkv/nNb3DHHXfgjTfewEsvvYTvfe972LJlCz71qU9h48aN+MIXvoDXXnsNr7/+Ou6//3784Q9/CKr7FWhoaAj/+Z//iTvuuCPovjlz5sSt7ampqRGXCRweKklSUH24ZIt7Jtnw8DCWLVsWVOTN7aWXXsKdd96J+++/Hx9++CGWLVuGtWvXTrjo4WRgrloEALDUMkhGREREREREyadLSwt9MZm0LxswZE5tmViYzWZcffXVeOGFF/Diiy9i4cKFWLFiBQBg27ZtWL9+Pa666iosXboURUVFaGpqimk7gaqqqnDgwAG/gvnbtm2DTqfDwoULPbedeuqp+M53voPt27djyZIl+P3vf++5r7KyEv/93/+NN998E1dffTV+85vfRNzuihUrcOjQIcyfPz/oYjQaPct98MEHfo/74IMPUOUavVZVVYXm5mY0Nzd77j906BD6+vpQXV0NQGSJbd26NcpX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A+T+fjhO9ia7OUREREREREREkwaDZFOIzmiEad486PPyYPcNkjGrjIiIiIiIiIgoLEOyG0DxNfeFF6BLT4PU9L7PrQySERERERERERGFwyDZFKPPSA++kZlkRERERERERERhcbjltMAgGRERERERERFROAySTTGK3Y7m/7oNR774bTiHR1w3MkhGRERERERERBQOg2RTjJSSAktdLRxdvbA2trhuZZCMiIiIiIiIiCgcBsmmIPPCRQAAS32zuIGZZEREREREREREYU2ZINmmTZtQXV2NlStXJrspSWeucgXJGpqT3BIiIiIiIiIioslhygTJNmzYgEOHDmH37t3JbkrSmRaJIJm1qc11CzPJiIiIiIiIiIjCmTJBMvIyV1UBAKyNx6E4HBxuSUREREREREQUAYNkU1BKcTF0GRlQ7A5Ym9vBTDIiIiIiIiIiovAMyW4AxZ+k0yF1xamQe7qgWG3MJCMiIiIiIiIiioBBsilqzi9+AZw8Agwyk4yIiIiIiIiIKBIOt5zSJPGHmWRERERERERERGExSDaVSRJkixWKIie7JUREREREREREExqDZFOUIsto+OLtqLvmDjg6Tya7OUREREREREREExqDZFOUpHO9tbICy+H65DaGiIiIiIiIiGiCY5BsCjMvqAAAWI4wSEZEREREREREFA6DZFOYyRUksx5uSHJLiIiIiIiIiIgmtikTJNu0aROqq6uxcuXKZDdlwjBXzgMAWI40AKN9QP+J5DaIiIiIiIiIiGiCkhRFUZLdiHgaGBhAdnY2+vv7kZWVlezmJJXj2Cc4svZzAIDKPz8BfXoaUFANpOcnuWVERERERERERBPLlMkko2CGnBwYZuYCAKyNLeJGx2gSW0RERERERERENDEZkt0ASiBJj8xVKyBbnNCZTeK2qZU4SEREREREREQUFwySTWWSDkW3Xg+k5gKjvcluDRERERERERHRhMXhllOZTi/+KnJy20FERERERERENMExSDaVSeLtVRw2WI+1QnE6AXC4JRERERERERFRIAbJpjJJgqIoOHLd7Wi4dSOsze3JbhERERERERER0YTEINlUJukhSRKMJUUAAGtDc5IbREREREREREQ0MTFINpW5hluaK0oBAJb6Zs5uSURERERERESkgkGyqcxVuN9cUQIAsDCTjIiIiIiIiIhIFYNkU5krk8xUXgxADLdUmElGRERERERERBSEQbKpTBKZZKa5swGdDs6BYTi6upLcKCIiIiIiIiKiiYdBsqnMlUmmM6bANEcU77ccbkhmi4iIiIiIiIiIJiRDshtACaTTAZIEKApy1p0L5/AojKXF6svKMtCyF6j/F3De3eKxRERERERERETTxJQJkm3atAmbNm2C0+lMdlMmFkkHKE7kXbFa/J8dIkjmtAHPXwHYh4EFa4Di08avjURERERERERESTZl0oU2bNiAQ4cOYffu3cluysQiBb7FIQr3p5hFcAwAajcntElERERERERERBPNlAmSUQg+QTJ7RzcG390BeWREfdmFnxZ/a18bh4YREREREREREU0cU2a4JYXgEyRruuthOE72Yu6cKqStWBG87IKLxYyYXTVATwOQVzGODSUiIiIiIiIiSh5mkk11kuS5aq4oBQBYamrUl03LA8rOFtc55JKIiIiIiIiIphEGyaY6n0wy0zwRJLPW1oobZBmw9AOKT50yDrkkIiIiIiIiommIQbKpzidIZq4oAQBYalxBsp56oO0joLfJu/yiy8Tf5g+A4e5xaiQRERERERERUXIxSDaNuIdbWg8fhmK3A4Pt4o7+E96FcuYARUsBRQYOv5GEVhIRERERERERjT8GyaY6n6GUKUUzoEs1QbHZYG1sDP0YDrkkIiIiIiIiommGQbJpRNLpYCoXQy49dcnUuIdc1v8LsI2MQ8uIiIiIiIiIiJLLkOwGUKIpfv/lX7sWsnEG0s78FDBSp/6QolOA7FKgvxloeNsbNCMiIiIiIiIimqKYSTbVKf5BssyzliN73WqkFBaEfowkAQtdgTEOuSQiIiIiIiKiaYBBsilPUblJCQqeBXFnjx1+A5Cd8W8WEREREREREdEEwiDZVKcSCxt+55/ofnwjHH0DoR8392zAnA2MnASadyWufUREREREREREEwCDZFNecJSs46nfovOXf8To4abQD9OnAAvWiuu1/0hM04iIiIiIiIiIJggGyaY6lWGVpopSAIC1vjn8Y91DLus2Rx6eSUREREREREQ0iTFINtXpU4JuMruCZJaGCEGy+WsAvRHoaQC6QsyESUREREREREQ0BTBINtXNqAy6yTyvBABgaTgR/rGmTKD8fHGdQy6JiIiIiIiIaApjkGyqM6YBxnS/m0zlIpPM3toJ54hF3CjL6o/3HXJJRERE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pMoz5LImhiAZwCGXRERERERERDSpMEhGgiHV79/0FdXIWr0KpvnzY1ufO0jW9D4w2je2thERERERERERJRiDZCTkVfj9m3PxKhTfcysyL7owtvXlzwNmLARkB3BkSxwaSERERERERESUOAySkWAwAhmFATcqqotqxiGXRERERERERDRJMEhGXors/6/DCWtDIxy9vbGtzx0kO7IFcFjH2DgiIiIiIiIiosRhkIx8+GeOnXjwp2i47DIM/vOfsa1u9gogowiwDQGN78WhfUREREREREREicEgGXml+BfvN82ZDWAMM1zqdMDCS8V1DrkkIiIiIiIiogmMQTLyyi71+9dcMQcAYKmtiX2d7iGXtZsBWQ6/LBERERERERFRkjBIRl46PZA+w/OvaZ4ImlnrDkNxOmNbZ/l5gDEDGGoHWvfFo5VERERERERERHHHIBmFZCzKh2QyQrFYYDt2LLaVGEzA/DXiOodcEhEREREREdEExSAZhSTpdTCXlwAALDXxGHLJIBkRERERERERTUwMklEAye8/U4VryGVtjMX7AWDBxYCkB7pqge76sTSOiIiIiIiIiCghpkyQbNOmTaiursbKlSuT3ZQpJXPVcsz4wmeQceFFsa8kNRcoO0dcr9scn4YREREREREREcWRpCiKkuxGxNPAwACys7PR39+PrKysZDdn8umsBYa7gm8vP3ds6935DPD6t4A5ZwFfemNs6yIiIiIiIiIiirMpk0lGCTbWWOrCS8Xf5p3A8Mmxt4eIiIiIiIiIKI4YJKOI7N19GPz327HPcAkAOXOAolMARQYOM5OMiIiIiIiIiCYWBsnInyQF3dT5yz/hxG23YeCfb45t3ZzlkoiIiIiIiIgmKAbJKCLvDJc1Y1vRwsvE3/p/A7aRMbaKiIiIiIiIiCh+GCSjiMzzRJDMUls3thUVLQWy5wCOUaDh33FoGRERERERERFRfDBIRgGCh1uaXZlktsZGyCNjyACTJGCRK5uMQy6JiIiIiIiIaAJhkIwiMuRmQT9jBqAosB454r1DlqNfmXvI5eE3ANkZnwYSEREREREREY0Rg2SkiXnRQgCApaZW3HDyCHBsW/S1xeauAsw5wEg30Lwzvo0kIiIiIiIiIooRg2SkiXnRIgCAxV28f7Bd/B1oiW5F+hSgcq24ziGXRERERERERDRBMEhGmmStvRizf/wj5K9fP/aVLfSpS6YoY18fEREREREREdEYGZLdAJpgpODC/QBgrqqCeemy4DtiCXLNXw3oTUBvI9BVCxRURb8OIiIiIiIiIqI4YiYZaRTHjC9TJlBxvrhe+4/4rZeIiIiIiIiIKEYMkpFmowcPoue3v8XogQNjX5lnyOXmsa+LiIiIiIiIiGiMGCQjbRQFfX/8Ezp++CMMvrV17OtbeBkACWj9EBhoHfv6iIiIiIiIiIjGgEEyCqBekwxdtTDPLwMAWA4dHPtmMguBktPF9TpmkxERERERERFRcjFIRtpYB2HOFwE0S41vkGwMtco45JKIiIiIiIiIJggGyUgzU3kxIElw9vTD0Tsw9hUu+oz42/guYInD+oiIiIiIiIiIYsQgGWmmM5tgLC4AAFgamse+wpmVQP58QLYDR7eMfX1ERERERERERDFikIz8ZRSEvdtcUQoAsMYjSAZwyCURERERERERTQgMkpE/cxZQsjLk3aZ5IkhmqY9TkMw95PLIFsBhi886iYiIiIiIiIiiZEh2A2gCSjGHvCv7gjOQvnShqE8WDyWnA+kzgeEu4Nj7wLyL4rNeIiIiIiIiIqIoMJOMopJSkI/UqgrozCZxgzKG2S0BQKcHKteJ6xxySURERERERERJwiAZJZ97yGXd5rEH3YiIiIiIiIiIYsAgGUVtaM8naH/69xj84EB8VlhxPpCSBgy0AG3747NOIiIiIiIiIqIoMEhGURs5UIfev7+NoT2fxGeFKaneWmQccklEREREREREScAgGUXNPcOltSFOM1wC/kMuiYiIiIiIiIjGGYNkpE6nD3mXuUIEySyNLVCczvhsr3ItIOmBjk+A3qb4rJOIiIiIiIiISCMGyUjd7BXAjAViKGQAY3EhJFMKFIsVttb2+GzPmAGUnC6uc8glEREREREREY0zBslIXYoZyCwCJCnoLkmvg6msBABgPdIYn+217gOKThHXOeSSiIiIiIiIiMYZg2QUE7OrLpnlaJyCZE4bUHqmuH5sGzDSE5/1EhERERERERFpwCAZxcRdl8ze3hW/lWYWAXkVgCIDh/8Zv/USEREREREREUVgSHYDaIJTFNWbsy5YicyzV8BQXB7f7ZWdA/Q0AHWvActviO+6iYiIiIiIiIhCYCYZhRciSKZPT4MhJzPk/TErO1f8PboVsI/Gd91ERERERERERCEwSEYRxDkIFsmMSiCrGLCPAA3vjO+2iYiIiIiIiGjaYpCMwguTKdb/9i4cv/sh9P7hD/Hd5sLLxN+61+K7XiIiIiIiIiKiEBgkowhCB8nsHd0Y3rUfI7v3xHeTi9xBstcB2RnfdRMRERERERERqWCQjMILk0lmrigBAFhqa+O3PUkC5p4DmLKA4S7gRJwDcEREREREREREKhgkowhCB8lM80oBALbGRsgWS5w2pwAGI7DgEvE/h1wSERERERER0ThgkIxiZsjNhj43G5BlWI8cie/K3UMuaxkkGxdOO9B/AnDYkt0SIiIiIiIioqRgkIzCCzPcUpIkmOeXAQAsNTXx3e78iwFdCtB9FOg6HN91U7DOGqCnEeiK8/tIRERERERENEkwSEYRhA6SAfAEyazxrEsGAOYsoPw8cZ1DLhPP0u/6O5DcdhARERERERElCYNkFF6YTDIAMM0vgy4zE4AU/21zyCURERERERERjRMGyWhMss4/C5W7dqLovnvjv/KFriDZiT3AYHv8109ERERERERE5MIgGY2JZNBDkhKQRQYAWbOB2SsAKEDd64nZBhERERERERERGCSjOFIiDM2MiXvIZd3m+K+biIiIiIiIiMiFQTIas94/vISja9ei68kn47/yhZ8WfxveBkb7479+8peorEAiIiIiIiKiCY5BMhojBYrshP3YcVhqauK/+oIqIHMW4LQBn/wl/uunAAySERERERER0fTEIBmNmXlRFQDAWlMb/5VLElB6prhe/1b810/+mElGRERERERE0xSDZDRmpspKQJLg6OyEo7s7/hso/ZT42/ge4LTHf/3kJXGXQERERERERNPThDwivuqqq5Cbm4trr7022U0hDfQZ6TDOmQMAsNQmIJusoAowZQHWAeDY9vivn3wwk4yIiIiIiIimpwkZJPv617+O559/PtnNoCiYqlxDLmvr4r9ynR4oOUNc5yyXicVMMiIiIiIiIpqmJuQR8QUXXIDMzMxkN4O0UBQAgHnRIgAJyiQDgDmuumS1mz3bpARgTTIiIiIiIiKapqIOkr377ru4/PLLMXv2bEiShL/+9a9By2zatAllZWUwm80488wzsWvXrni0lSYkV5BsyRKYFy+GcVY+0HssxKJjCG7NPhUwmIH+40D7x7GvhyJgkIyIiIiIiIimp6iDZMPDw1i2bBk2bdqkev9LL72EO++8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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "h.plot()\n", + "sns.despine(trim=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we test the trained model on some newly generated images. We can create a batch of data using the `.batch()` method. We also call `.torch` to convert the data to a format that deeplay expects." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-29T20:12:46.046265Z", + "iopub.status.busy": "2022-06-29T20:12:46.045765Z", + "iopub.status.idle": "2022-06-29T20:12:46.449766Z", + "shell.execute_reply": "2022-06-29T20:12:46.449766Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-29T20:12:46.046265Z", - "iopub.status.busy": "2022-06-29T20:12:46.045765Z", - "iopub.status.idle": "2022-06-29T20:12:46.449766Z", - "shell.execute_reply": "2022-06-29T20:12:46.449766Z" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "batch, true_positions = training_set.batch(4)\n", - "measured_positions = model.predict(np.array(batch).astype(np.float32)) + IMAGE_SIZE / 2\n", - "\n", - "fig, ax = plt.subplots(2, 2, figsize=(10, 10))\n", - "for ax, image, true_position, measured_position in zip(ax.ravel(), batch, true_positions, measured_positions):\n", - " ax.imshow(np.squeeze(image), cmap='gray')\n", - " ax.scatter(true_position[1] + IMAGE_SIZE / 2, true_position[0] + IMAGE_SIZE / 2, s=70, c='r', marker='x')\n", - " ax.scatter(measured_position[1], measured_position[0], s=100, marker='o', facecolor='none', edgecolors='b')\n", - "\n", - "plt.show()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.8.6 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.10" - }, - "vscode": { - "interpreter": { - "hash": "a44da721a5827f98cc9179544fef0a80b8a9b4f8cdc93722922a5386f263ab84" - } + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "batch, true_positions = training_set.batch(4)\n", + "measured_positions = model.predict(np.array(batch).astype(np.float32)) + IMAGE_SIZE / 2\n", + "\n", + "fig, ax = plt.subplots(2, 2, figsize=(10, 10))\n", + "for ax, image, true_position, measured_position in zip(ax.ravel(), batch, true_positions, measured_positions):\n", + " ax.imshow(np.squeeze(image), cmap='gray')\n", + " ax.scatter(true_position[1] + IMAGE_SIZE / 2, true_position[0] + IMAGE_SIZE / 2, s=70, c='r', marker='x')\n", + " ax.scatter(measured_position[1], measured_position[0], s=100, marker='o', facecolor='none', edgecolors='b')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.8.6 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.10" }, - "nbformat": 4, - "nbformat_minor": 2 + "vscode": { + "interpreter": { + "hash": "a44da721a5827f98cc9179544fef0a80b8a9b4f8cdc93722922a5386f263ab84" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 } diff --git a/examples/paper-examples/2-single_particle_tracking.ipynb b/examples/paper-examples/2-single_particle_tracking.ipynb index 9ee9208eb..6fc560b64 100644 --- a/examples/paper-examples/2-single_particle_tracking.ipynb +++ b/examples/paper-examples/2-single_particle_tracking.ipynb @@ -1,1616 +1,1616 @@ { - "cells": [ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:53.875636Z", + "iopub.status.busy": "2022-06-30T10:52:53.875636Z", + "iopub.status.idle": "2022-06-30T10:52:55.884639Z", + "shell.execute_reply": "2022-06-30T10:52:55.884140Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:53.875636Z", - "iopub.status.busy": "2022-06-30T10:52:53.875636Z", - "iopub.status.idle": "2022-06-30T10:52:55.884639Z", - "shell.execute_reply": "2022-06-30T10:52:55.884140Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.1)\n", - "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", - "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", - "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", - "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", - "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", - "Requirement already satisfied: pandas in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.4.3)\n", - "Requirement already satisfied: tqdm in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (4.64.0)\n", - "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", - "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", - "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", - "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", - "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", - "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", - "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", - "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", - "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", - "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", - "Requirement already satisfied: pytz>=2020.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2022.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2.8.2)\n", - "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", - "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", - "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", - "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", - "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", - "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", - "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", - "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", - "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", - "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", - "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", - "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", - "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", - "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", - "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", - "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", - "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", - "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", - "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", - "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", - "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", - "Requirement already satisfied: colorama in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tqdm->deeptrack) (0.4.5)\n", - "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", - "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", - "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", - "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", - "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", - "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", - "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", - "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", - "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", - "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", - "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", - "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", - "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", - "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", - "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", - "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "!pip install deeptrack" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: deeptrack in c:\\users\\gu\\deeptrack\\deeptrack-2.0 (1.2.1)\n", + "Requirement already satisfied: tensorflow in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (2.9.1)\n", + "Requirement already satisfied: tensorflow-probability in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.0)\n", + "Requirement already satisfied: numpy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.23.0)\n", + "Requirement already satisfied: scipy in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.8.1)\n", + "Requirement already satisfied: pint in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.2)\n", + "Requirement already satisfied: pandas in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.4.3)\n", + "Requirement already satisfied: tqdm in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (4.64.0)\n", + "Requirement already satisfied: scikit-image>=0.18.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.19.3)\n", + "Requirement already satisfied: pydeepimagej in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (1.1.0)\n", + "Requirement already satisfied: more_itertools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (8.13.0)\n", + "Requirement already satisfied: tensorflow_addons in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from deeptrack) (0.17.1)\n", + "Requirement already satisfied: imageio>=2.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.19.3)\n", + "Requirement already satisfied: PyWavelets>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (1.3.0)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (21.3)\n", + "Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (9.1.1)\n", + "Requirement already satisfied: tifffile>=2019.7.26 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2022.5.4)\n", + "Requirement already satisfied: networkx>=2.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from scikit-image>=0.18.0->deeptrack) (2.8.4)\n", + "Requirement already satisfied: pytz>=2020.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2022.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pandas->deeptrack) (2.8.2)\n", + "Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: protobuf<3.20,>=3.9.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.19.4)\n", + "Requirement already satisfied: google-pasta>=0.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.2.0)\n", + "Requirement already satisfied: six>=1.12.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.16.0)\n", + "Requirement already satisfied: keras-preprocessing>=1.1.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.2)\n", + "Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: absl-py>=1.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: opt-einsum>=2.3.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.3.0)\n", + "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.26.0)\n", + "Requirement already satisfied: libclang>=13.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (14.0.1)\n", + "Requirement already satisfied: grpcio<2.0,>=1.24.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.47.0)\n", + "Requirement already satisfied: flatbuffers<2,>=1.12 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.12)\n", + "Requirement already satisfied: gast<=0.4.0,>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (0.4.0)\n", + "Requirement already satisfied: wrapt>=1.11.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.14.1)\n", + "Requirement already satisfied: termcolor>=1.1.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.1.0)\n", + "Requirement already satisfied: astunparse>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (1.6.3)\n", + "Requirement already satisfied: setuptools in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (58.1.0)\n", + "Requirement already satisfied: h5py>=2.9.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (3.7.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (4.2.0)\n", + "Requirement already satisfied: tensorboard<2.10,>=2.9 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow->deeptrack) (2.9.1)\n", + "Requirement already satisfied: typeguard>=2.7 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow_addons->deeptrack) (2.13.3)\n", + "Requirement already satisfied: decorator in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (5.1.1)\n", + "Requirement already satisfied: cloudpickle>=1.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (2.1.0)\n", + "Requirement already satisfied: dm-tree in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorflow-probability->deeptrack) (0.1.7)\n", + "Requirement already satisfied: colorama in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tqdm->deeptrack) (0.4.5)\n", + "Requirement already satisfied: wheel<1.0,>=0.23.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from astunparse>=1.6.0->tensorflow->deeptrack) (0.37.1)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from packaging>=20.0->scikit-image>=0.18.0->deeptrack) (3.0.9)\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.6)\n", + "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.6.1)\n", + "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.8.1)\n", + "Requirement already satisfied: requests<3,>=2.21.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.28.0)\n", + "Requirement already satisfied: werkzeug>=1.0.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.1.2)\n", + "Requirement already satisfied: markdown>=2.6.8 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3.7)\n", + "Requirement already satisfied: google-auth<3,>=1.6.3 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.9.0)\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.2.8)\n", + "Requirement already satisfied: cachetools<6.0,>=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (5.2.0)\n", + "Requirement already satisfied: rsa<5,>=3.1.4 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (4.8)\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.3.1)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (1.26.9)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2.0.12)\n", + "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (2022.6.15)\n", + "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests<3,>=2.21.0->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.3)\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (0.4.8)\n", + "Requirement already satisfied: oauthlib>=3.0.0 in c:\\users\\gu\\appdata\\local\\programs\\python\\python310\\lib\\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow->deeptrack) (3.2.0)\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "!pip install deeptrack" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2. Single particle tracking\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Setup\n", + "\n", + "Imports the objects needed for this example." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:55.901639Z", + "iopub.status.busy": "2022-06-30T10:52:55.901639Z", + "iopub.status.idle": "2022-06-30T10:52:59.013433Z", + "shell.execute_reply": "2022-06-30T10:52:59.012934Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Open" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\backend\\_config.py:11: UserWarning: cupy not installed. GPU-accelerated simulations will not be possible\n", + " warnings.warn(\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\backend\\_config.py:25: UserWarning: cupy not installed, CPU acceleration not enabled\n", + " warnings.warn(\"cupy not installed, CPU acceleration not enabled\")\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Example 2. Single particle tracking\n", - "\n" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset already downloaded.\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import deeptrack as dt\n", + "import deeptrack.extras\n", + "deeptrack.extras.datasets.load(\"ParticleTracking\")\n", + "\n", + "IMAGE_SIZE = 51" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Defining the dataset\n", + "\n", + "### 2.1 Defining the training set\n", + "\n", + "The training set consists of simulated 51 by 51 pixel images, containing a single particle each. The particles are simulated as spheres with a radius between 1 micron and 2 microns, and a refractive index between 1.5 and 1.6. Its position in the camera plane is constrained to be within the image, and is sampled with a normal distribution with standard deviation of 5 pixel units in along the axis normal to the camera plane. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.015933Z", + "iopub.status.busy": "2022-06-30T10:52:59.015933Z", + "iopub.status.idle": "2022-06-30T10:52:59.019933Z", + "shell.execute_reply": "2022-06-30T10:52:59.019446Z" + } + }, + "outputs": [], + "source": [ + "particle = dt.MieSphere(\n", + " position=lambda: np.random.uniform(IMAGE_SIZE / 2 - 3, IMAGE_SIZE / 2 + 3, 2) * dt.units.img_pixel,\n", + " z=lambda: -np.random.uniform(0, 5) * dt.units.img_pixel,\n", + " radius=lambda: np.random.uniform(300, 500) * 1e-9,\n", + " refractive_index=lambda: np.random.uniform(1.37, 1.42),\n", + " position_unit=\"pixel\",\n", + " L=10\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The particle is imaged using a brightfield microscope with NA between 0.15 and 0.25 and a illuminating laser wavelength between 400 and 700 nm. To simulate the broad spectrum we define 10 individual optical devices, each imaging the particle at a single wavelength. The result is then averaged." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.021934Z", + "iopub.status.busy": "2022-06-30T10:52:59.021934Z", + "iopub.status.idle": "2022-06-30T10:52:59.027443Z", + "shell.execute_reply": "2022-06-30T10:52:59.027443Z" + } + }, + "outputs": [], + "source": [ + "\n", + "spectrum = np.linspace(500e-9, 700e-9, 5)\n", + "\n", + "imaged_particle_list = []\n", + "\n", + "\n", + "for wavelength in spectrum:\n", + " single_wavelength_optics = dt.Brightfield(\n", + " NA=0.8,\n", + " resolution=1e-6,\n", + " magnification=15,\n", + " wavelength=wavelength,\n", + " padding=(32, 32, 32, 32),\n", + " output_region=(0, 0, IMAGE_SIZE, IMAGE_SIZE),\n", + " )\n", + " \n", + " imaged_particle_list.append(\n", + " single_wavelength_optics(particle)\n", + " )\n", + "\n", + "dataset = sum(imaged_particle_list) / len(imaged_particle_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.2 Defining the training label\n", + "\n", + "The training label is extracted directly from the image as the `position` property divided by the image size, such that the posible values are contained within -0.5 and 0.5." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.029934Z", + "iopub.status.busy": "2022-06-30T10:52:59.029934Z", + "iopub.status.idle": "2022-06-30T10:52:59.032944Z", + "shell.execute_reply": "2022-06-30T10:52:59.032944Z" + } + }, + "outputs": [], + "source": [ + "def get_label(image):\n", + " px = np.array(image.get_property(\"position\")) / IMAGE_SIZE - 0.5\n", + " return px" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.3 Visualizing the dataset\n", + "\n", + "We resolve and show 16 images, with a green circle indicating the particle position." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.035434Z", + "iopub.status.busy": "2022-06-30T10:52:59.035434Z", + "iopub.status.idle": "2022-06-30T10:52:59.725934Z", + "shell.execute_reply": "2022-06-30T10:52:59.725463Z" }, + "scrolled": true + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Setup\n", - "\n", - "Imports the objects needed for this example." - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 24.0 should be at most 0.5\n", + "To fix, set magnification to 48.0, and downsample the resulting image with dt.AveragePooling((48.0, 48.0, 1))\n", + "\n", + " warnings.warn(\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:276: RuntimeWarning: invalid value encountered in sqrt\n", + " * np.sqrt(1 - (NA / refractive_index_medium) ** 2 * RHO),\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 21.81818181818182 should be at most 0.5\n", + "To fix, set magnification to 44.0, and downsample the resulting image with dt.AveragePooling((44.0, 44.0, 1))\n", + "\n", + " warnings.warn(\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 20.000000000000004 should be at most 0.5\n", + "To fix, set magnification to 41.0, and downsample the resulting image with dt.AveragePooling((41.0, 41.0, 1))\n", + "\n", + " warnings.warn(\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 18.461538461538463 should be at most 0.5\n", + "To fix, set magnification to 37.0, and downsample the resulting image with dt.AveragePooling((37.0, 37.0, 1))\n", + "\n", + " warnings.warn(\n", + "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 17.142857142857146 should be at most 0.5\n", + "To fix, set magnification to 35.0, and downsample the resulting image with dt.AveragePooling((35.0, 35.0, 1))\n", + "\n", + " warnings.warn(\n" + ] }, { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:55.901639Z", - "iopub.status.busy": "2022-06-30T10:52:55.901639Z", - "iopub.status.idle": "2022-06-30T10:52:59.013433Z", - "shell.execute_reply": "2022-06-30T10:52:59.012934Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\backend\\_config.py:11: UserWarning: cupy not installed. GPU-accelerated simulations will not be possible\n", - " warnings.warn(\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\backend\\_config.py:25: UserWarning: cupy not installed, CPU acceleration not enabled\n", - " warnings.warn(\"cupy not installed, CPU acceleration not enabled\")\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dataset already downloaded.\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import deeptrack as dt\n", - "import deeptrack.extras\n", - "deeptrack.extras.datasets.load(\"ParticleTracking\")\n", - "\n", - "IMAGE_SIZE = 51" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Defining the dataset\n", - "\n", - "### 2.1 Defining the training set\n", - "\n", - "The training set consists of simulated 51 by 51 pixel images, containing a single particle each. The particles are simulated as spheres with a radius between 1 micron and 2 microns, and a refractive index between 1.5 and 1.6. Its position in the camera plane is constrained to be within the image, and is sampled with a normal distribution with standard deviation of 5 pixel units in along the axis normal to the camera plane. " + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.015933Z", - "iopub.status.busy": "2022-06-30T10:52:59.015933Z", - "iopub.status.idle": "2022-06-30T10:52:59.019933Z", - "shell.execute_reply": "2022-06-30T10:52:59.019446Z" - } - }, - "outputs": [], - "source": [ - "particle = dt.MieSphere(\n", - " position=lambda: np.random.uniform(IMAGE_SIZE / 2 - 3, IMAGE_SIZE / 2 + 3, 2) * dt.units.pixel,\n", - " z=lambda: -np.random.uniform(0, 5) * dt.units.pixel,\n", - " radius=lambda: np.random.uniform(300, 500) * 1e-9,\n", - " refractive_index=lambda: np.random.uniform(1.37, 1.42),\n", - " position_unit=\"pixel\",\n", - " L=10\n", - ")\n" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS4AAAD6CAYAAAAfmKrOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAbNUlEQVR4nO3dfbBlVXnn8e+vm+ataWywaUAabAhMUVqDmnSIlExAHKwOYNAZCkUrwQlWp8yMA5VMKc5UJDFjjVRNqUnhhOpSCkhleBkjgTA4bUuwWkeDNIi8yIANgbKRtrm8NO8v3f3MH2dfuWefc8/e59z9svbp36fq1L37nL3XXmefc5+79rPXWlsRgZlZlyxquwJmZuNy4DKzznHgMrPOceAys85x4DKzznHgMrPOWVDgkrRW0oOStki6uKpKmZmNokn7cUlaDDwEnA5sBe4AzouIn47YpnBnkka+7n5nlopUv6sRMbpiBdauXRszMzOl1r3zzjs3RMTahexvEnstYNsTgS0R8QiApGuBs4F5AxfAXnuN3mUTX4ZJyqhiv0XvzSY7zlUc10nKqOO7utDv2a5duxa0PcDMzAx33HFHqXUXLVq0YsE7nMBCAtcRwM/nLG8Ffiu/kqR1wLoF7MfMGpb6mc1CAlcpEbEeWA/lThXNrH3THLgeB46cs7wqe25B2joVrKKMJk4FJ9lHmfdSRd3rOJ0uU2Z+nSqOUZky6vjjnuT9Vy0ipjpw3QEcJ+loegHrI8BHK6mVmbVq9+7dbVdhpIkDV0TslPQfgA3AYuCKiLi/spqZWWumucVFRNwC3FJRXcwsEVMduMxs+kx7jisJdR3gOhLtbfXjamq/4+6nqYsGk6gi4V+FtpL1Dlxm1jkOXGbWOVN7VdHMppNzXDVI+YA2kRdL5f0Pe6/j1q2tTp6TSCUf11SuLZXjPp/OBS4zq58Dl5l1jgOXmXVKRDg5v1CpRP625nwqKiOV4wPt9eNK5RhU0fcrlc83lWM6n+QDl5k1z4HLzDrHgcvMOsX9uCbQxgGrq29MKpPz1aGK/FQVfcHK7CeVPFGXcl6pfu9mJRe4zKx9vqpoZp3jFpeZdYpzXGbWSQ5cI7R1cKZpoGpTx7Cuuws1IZVOnWUUJfSruqAxbj1S4xaXmQ1IPXAtarsCZpaW2bGKZR5FJF0habuk++Z5/VRJOyTdnT0+V6aObnGZ2YAKW1xXApcBV49Y53sRcdY4hTYeuKapg2kdUm2ip3pn70m0NXB7WJnjdp4dtv7c56o65lW9/4jYJGl1JYXN4VNFMxsw2yWi6AGskLR5zmPdBLs7SdJPJH1L0tvLbOBTRTMbMEaLayYi1ixgV3cBb42IFySdAfw9cFzRRm5xmVmfKpPzJfb1XES8kP1+C7BE0oqi7aayxTXueX5dfWPcj6udvFgVg66b6vs17kDsSfJkk2jwe3UY8MuICEkn0mtMPVW03VQGLjNbmKoCl6RrgFPp5cK2ApcAS7J9XA6cA3xS0k7gZeAjUWLnDlxmNqDCq4rnFbx+Gb3uEmNx4DKzPh5k3YAy5/ddGpuY6hemqXxV0X4m6YPV1ni/SUwy+eDcbSpsKVVSTl06H7jMrHqeSNDMOsctLjPrlC7kuAo7oA4b3S3pYEkbJf0s+3lQvdU0syaNMeSnFWV6zl8JrM09dzFwa0QcB9yaLTdCUt9j0nXmKvOBTPIhlv3wU/gi1KGO91/FNsMUfWfyr6c6gLwqqX9fCwNXRGwCns49fTZwVfb7VcAHq62WmbUp9cA1aY7r0Ih4Ivt9G3DofCtmo8UnGTFuZi2YHauYsgUn57MxRvOG3ohYD6wHGLWemaUj9bTFpIHrl5IOj4gnJB0ObK+yUnO1NYB0kg8u9Q+7CybpgFrHQOUyg6ybGIg9SYfUOvabmkmntbkJOD/7/XzgxmqqY2Yp6HyOa57R3V8Erpd0AfAYcG6dlTSzZqXe4ioMXCNGd7+v4rqYWQL2iOR826q48cG05bOqqFuq/ZQmyTU19V4myXnVkZ+rQsrfb5iCwGVm1XPgMrPOceAys05p+4phGQ5cZjbAgWtMRYnGPS0Z3+X9ttVZcpJkfdE6Tc2a2taFhTxfVTSzznGLy8w6xTkuM+skB66a1XWAm8hfpFpmGVXkGuvK34yb8yqzziR1rWK/k+TnquDAZWad48BlZp3isYpm1klucY3Q1F2o6+jXVcV+q9omL5VjNsmA4XHLaEpbEwm2JfX3MulEgmY2xaqaSHDY7Q3nWe83Je2UdE6Z+jlwmdmACmdAvZLB2xv2kbQYuBT4dtn6OcdlZn2qTM5HxCZJqwtW+xTwd8Bvli03ucCVSn4mlf1OMnazjmM4yaR4VfTjqqI/VRVjFcuoY4xkB8aqrpC0ec7y+uzOXqVIOgL4EPBeuhy4zKx9YwSumYhYs4BdfQX4TETsHuefhQOXmQ1osKW3Brg2C1orgDMk7YyIvx+1kQOXmfVpcpB1RBw9+7ukK4Gbi4IWOHCZ2RBVBa55bm+4JNvH5ZOW23jgWmjiOJWOcXXdDbtoArtFixaNXC67Tl6+rvmrSkXLw56b5GJFKne52dNVeFVxvtsbDlv342XXdYvLzAak0kCYjwOXmfXxRIJm1kkOXCN0KTdRR05r2PvP56MWL17ct7xkyZK+5b32GvwI8+vkyxy233xOY+fOnX3Lr7/++sjXhz1XJi+W18TNIro0kWBbfyMOXGbWOQ5cZtYpnkjQzDrJLa4EpPIhFPXJgsGc1T777NO3vO+++/Yt77fffgNl5NfJ57yGyeenXnnllb7lV199tW/55ZdfHigjv04+L1bFwO26Bkhbv1T+ZuazRwQuMxuPA5eZdUoX+nEVjgWRdKSk2yT9VNL9ki7Mnj9Y0kZJP8t+HlR/dc2sCbt37y71aEuZFtdO4E8i4i5Jy4A7JW0EPg7cGhFflHQxcDHwmfqqOlyXJwXM99GCwZzW0qVL+5YPPPDAvuU3velNA2UsW7asbzmf8xqWA3rttdf6ll944YW+5R07dvQtP/fccwNljHtz02Ff/NT/0881zbm11D+HwhZXRDwREXdlvz8PPAAcAZwNXJWtdhXwwZrqaGYNq3DO+VqMlePK5o5+F3A7cGhEPJG9tA04tNqqmVkb2g5KZZQOXJIOoDeh/UUR8dzcZnFEhKSh71TSOmDdQitqZs2ZisAlaQm9oPW3EfHN7OlfSjo8Ip6QdDiwfdi22cT567Ny0j4aZgZMQeBSr2n1deCBiPjSnJduAs4Hvpj9vLGOCqZ+AEcp6nA6rGNovkNpPhl/yCGH9C0fdthhA2WsWLGibzmfrB+WRM53KJ2ZmelbfvLJJwvLyCfbd+3aNfL1YZ9tHZMPltFEor1M59lUTMOQn/cAvwfcK+nu7Ln/TC9gXS/pAuAx4NxaamhmjZqKHFdEfB+Y79/P+6qtjpmloPOBy8z2PA5cLajjoNfR4bRMjuugg/oHJLzlLW/pW169evVAGatWrRpZxrCOr88//3zf8i9+8Yu+5b333rtvedhEgvlB1flOrfnX8zmwqtSRr6oit1bF97Kpm4U4cJlZp3g+LjPrJLe4zKxzHLjGVMfg5oXuc1JF/bjyeSOA/fffv295+fLlfcuHHto/smpYjuvYY4/tW165cmXf8rAc1zPPPNO3nM+15fNVwwZZ55/LD9TO73dYbqbMDSZSNU2DrlM/7skFLjNrnwOXmXVKFzqgFk5rY2Z7nqomEpR0haTtku6b5/WzJd0j6W5JmyWdXKZ+bnHtQWZemeEH23/ACztf4IAlB3DSypM4bP/BsY5mFba4rgQuA66e5/VbgZuyGWZOAK4Hji8qtNXAlXpztGpFd6mGwYR9fgbUfGfSfLIeBjugvr70dT7/fz/PTVtu4vXdb3QCXazFnPFrZ/Bn/+rPOGrZUX3b5O/Ys317/+Qf+cHfMDjTav6ORWXuqD2JJjqcppxoT/mCVURsyubxm+/1uVdwlgKlduwW15TbsmMLF9x8AU++9CSLtIj3r34/Ry8/mq3Pb2XDP2/gH7b8A9/7+fe4+vSrOWHFCW1X1xLQdI5L0oeA/wasBM4ss40D1xR7bddr/NH3/4gnX3qSU448hctOv4wjDzzyVy29bS9s48LvXMgtD9/CH3znD7jt39zGsr2XFZRqe4IxAtcKSZvnLK/P5uAbZ183ADdI+m3gL4B/XbSNk/NTbMPWDWx9cSvHH3w81559LUceeGTf64cdcBh/84G/4TcO+w1mXpnhhodvaKmmlpox5pyfiYg1cx5jBa3cPjcBx0haUbSuW1w1yudFytzJOp/3yueJ8gOz83kleCMv9s1He5PVXvTuizhk+RsTEOb38emTP82Hv/FhrttyHZ9c88mh5ebvPjRsgHhRDqtoedp0OYfb1FhFSccCD2fJ+V8H9gGeKtrOgWuKbdmxBYAzjxudNjjrX5wFwEPPPERETH1AsdGqzHFJugY4ld4p5VbgEmBJtp/LgX8L/L6k14GXgQ9HiZ07cE2x2c+/KBAtUq+lFOUu6NgeoMKriucVvH4pcOm45TrHNcVWH7gagI2PbBy53oYtGwA45k3HuLVlwJTdV9HGM8mdnPOT6+Un7MtPxvfKK68MlPHiiy8C8KG3foi7nryLL/3wS5z51jPZe3Gvj9jcHNeu3bu49Pu9f3jnHnvur7bN3zwj368rX49h76fo/Xc5B1TGNA0YT41bXFPsjKPOYOV+K7n3yXv5+P/+OE+93J/zfPaVZ/nD//OH/PDxH7J8n+Wcc+w5LdXUUjI7kWAVQ37q4hbXFNtvr/346nu+yie+9wlueeQWbv3arXzg2A/8qgPqjQ/dyEs7X2LpkqWsP209y/dZ3naVLRGpt7gcuKbc2w9+O9/+8Lf5001/ysZHN/KNB7/R9/opR53CF377C6zaa9U8JdieyIFrhC7dILMK+ab1sBtO5Cfsy0/Gl5/wb9u2bQNlHHDAAX3LK1eu5NJ3XMqnjv0Um7Zt4sVdL7J0yVJOPvRkjl52NLwEjz3zWN82TzzxRN/yU0/1n2YOm0gwn2/Lv78yN4SdRFM3b02Vb5ZhU23V0lV89Nc+OnRwt9lcDlxm1iltd3Uow4HLzAb49mRm1jlucY2pqNNeHZ366rpIUNThdFgnzpdeeqlveceOHX3L+WT8sEHW+aR4fhLAYYO7i+5knV/OXySANzq+zsp3Ws13rh12jFP/gxmlSwn9Iql/DskFLjNrl3NcZtZJDlxm1jkOXC1oIg9Wpsz8OvkcT5kcVz6XlJ9YcNjVn3zn0GXL+qdjHpaLyQ+qznc4zefJZmZmBsrId5bNd6Ytk+OqQqodUqvIpTaVR/NVRTPrFOe4zKyTUg9chdPaSNpX0o8k/UTS/ZL+PHv+aEm3S9oi6TpJexeVZWbdMA0TCb4KnBYRL0haAnxf0reAPwa+HBHXSrocuAD466orOE2TsZXpx5UfqJzPV+XLHDaR4NNPP923nO/rNawfVz4fle/XlV/O9y+DwfxcHTmuunI8TeSOuvzdTU1hiyt6ZrOuS7JHAKcBs3OkXAV8sI4KmlmzujCRYKkZUCUtlnQ3sB3YCDwMPBsRs120twJHzLPtOkmbczeNNLOETcOpIhGxC3inpOXADcDxZXeQ3SByPYCktNufZgakf6o41lXFiHhW0m3AScBySXtlra5VwON1VNDMmtf5wCXpEOD1LGjtB5xO7z5otwHnANcC5wM31lnREfUbeK6JDqeT7LeoQyoMDkzOy28zLDmfT+jn7zo9rO75gdn5couWYbDuTc2A2pZpGlSdl/pnU6bFdThwlaTF9HJi10fEzZJ+Clwr6b8CPwa+XmM9zawhbeevyigMXBFxD/CuIc8/ApxYR6XMrF0e8mNmndP5Ftc0SKUTa5k7WefzQkV5sWE5sfyEfmVujpGvS9GA8GGdZ/PbVJHTKpNH6nKuKdUAkWq9ZvlO1mbWp2wfrjLBTdIVkrZLum+e1z8m6R5J90r6gaR3lKmjA5eZDaiwA+qVwNoRr/8zcEpE/EvgL8j6fBbZI04VzWw8VZ0qRsQmSatHvP6DOYv/RK9PaKFWA9ewg5NqvqJMnmzcXNqw14vyQmUGaucHUQ8bVF1Ul/x+ipaHPZfSIOpx91FFPeq44UqCEwmuyA3nW5+NlpnEBcC3yqzoFpeZ9RmzH9dMRKxZ6D4lvZde4Dq5zPoOXGY2oMmripJOAL4G/E5EPFW0PjhwmdkQTQUuSUcB3wR+LyIeKrtd44Fr7gGZ5Hw9lT5ZZcYqVnGDjbyivlLz1W1c+XpUUfe8Kj5/q0dVf1eSrgFOpZcL2wpcQm9OPyLicuBzwJuB/5F9tjvLnHq6xWVmfWYnEqyorPMKXv8E8Ilxy3XgMrMBqfecd+AyswEOXGbWOQ5cY6qiw924kwBWmIgca7/DjJsUr6sTbx2TMaZcRhPHrI4LHHWYivm4zGzP48BlZp3jiQTNrHPc4hphkoHKTeS85qtb1fsts02RYWU28aVLJX/VlLq+IylyjsvMOsmBy8w6x4HLzDrHyfmapZSfGrfMMor2m3KeqK26Fe03lX5dZdZp42YhznGZWSc5cJlZ5zhwmVnnOHCNadxxhcPO7+sYq9jWBIZ15MXq2m9bmshppfx518GBy8w6pcqJBOviwGVmA9ziMrPOceAys85x4KpZmYHadQyyTnnQbSoJ3jq00SGzrCbu3N3Ee3MHVDPrJAcuM+uc1K8qLiq7oqTFkn4s6eZs+WhJt0vaIuk6SXvXV00za9Ls6WLRoy2lAxdwIfDAnOVLgS9HxLHAM8AFVVZs1iQHqmgbSX2PYcqsU8U21i9/DOv4rMqUW+Z718QfcRvfqbJBK/nAJWkVcCbwtWxZwGnAN7JVrgI+WEP9zKwFqQeusjmurwCfBpZly28Gno2IndnyVuCIYRtKWgesW0AdzaxhqSfnC1tcks4CtkfEnZPsICLWR8SaiFgzyfZm1rzdu3eXerSlzKnie4DflfQocC29U8S/BJZLmm2xrQIer6WGOXXkvMooyr3MN9h73Mc0qeP9V7HNMEXfkZROk+pWZY5L0hWStku6b57Xj5f0Q0mvSvpPZetYGLgi4rMRsSoiVgMfAf4xIj4G3Aack612PnBj2Z2aWdoqzHFdCawd8frTwH8E/vs49RvnqmLeZ4A/lrSFXs7r6wsoy8wSUlXgiohN9ILTfK9vj4g7gNfHqd9YHVAj4rvAd7PfHwFOHGd7M+uGMU6FV0jaPGd5fUSsr6FKfdxz3swGjBG4Ztq48Nb5wFVmkHXRNlUNmK5iltRxE/RNJYmbunBQxX5Smc10EpO8/7nbVHH8whMJmlkXpRzcwYHLzIaoKnBJugY4lV4ubCtwCbAk28flkg4DNgMHArslXQS8LSKeG1WuA5eZDagqcEXEeQWvb6PXD3QsUxm4yuSwRq1flUnyDePWJeVOq12a0K+tU6MqJhKcW/cq3kcXOthOZeAys4Vx4DKzzvFVRTPrHLe4cuaeozd1cMbNebVpT+/H1YSu5LMm3WahnOMys05y4DKzznHgMrPOcXJ+hKrGCI6rqZxXVePG6t5HXZrox9ZWmXVJYZylc1xm1kkOXGbWOQ5cZtY5Dlxm1jkOXGOqYjK+cZW8W8mCy62jA2KXOlPmVTgDQSXlVC2lYzTuPn1V0cw6J9V/BrMcuMxsgAOXmXWOA9cCtZHzGqaKPFhbN+BoijuPdjOnNawOKdRjlOQDl5k1z4HLzDrHVxXNrHPc4qpYyjmfOgZEp/T+5qrqpgxdkcpgdg+y7ulc4DKz+jlwmVnnOHCZWec4OV+zuiYjrKLPVRVljruPpvbT1o1OyqgiH7Un5bSG7dMtLjPrnNQD16K2K2Bm6ZltdRU9iki6QtJ2SffN87ok/ZWkLZLukfTrZepXKnBJelTSvZLulrQ5e+5gSRsl/Sz7eVCZsswsfVUFLuBKYO2I138HOC57rAP+ukyh47S43hsR74yINdnyxcCtEXEccGu2bGZToKrAFRGbgKdHrHI2cHX0/BOwXNLhReUuJMd1NnBq9vtVwHeBzyygPKCapHAdZZT8kBZUrzJSToq3tY+2kvF1XMBIIbfU8ESCRwA/n7O8NXvuiVEblW1xBfBtSXdKWpc9d2hEzBa+DTh0jMqaWcLGaHGtkLR5zmNdUdlVKNviOjkiHpe0Etgo6f/NfTEiQtLQfxXZG2nkzZhZNcZo+c3MSR9N4nHgyDnLq7LnRirV4oqIx7Of24EbgBOBX86ei2Y/t8+z7fqIWLPAN2dmDaowOV/kJuD3s6uL7wZ2zDmTm1dhi0vSUmBRRDyf/f5+4PPZDs8Hvpj9vLFEJWd27tz5GLACmCmxfgq6Uteu1BO6U9eu1BPeqOtbKyhrQ1ZeGSOPj6Rr6OXCV0jaClwCLAGIiMuBW4AzgC3AS8C/K7NTlUgoH0OvlQW9QPc/I+ILkt4MXA8cBTwGnBsRo64ezC1zc1daYF2pa1fqCd2pa1fqCd2qaxUKW1wR8QjwjiHPPwW8r45KmZmN4p7zZtY5bQWu9S3tdxJdqWtX6gndqWtX6gndquuCFea4zMxS41NFM+scBy4z65xGA5ektZIezKawSGpQ9rDpN1KdAUPSkZJuk/RTSfdLujB7Pqn6StpX0o8k/SSr559nzx8t6fbse3CdpL3brOdckhZL+rGkm7PlJOu6p8/Y0ljgkrQY+Cq9aSzeBpwn6W1N7b+EKxmcfiPVGTB2An8SEW8D3g38++xYplbfV4HTIuIdwDuBtVnv6EuBL0fEscAzwAXtVXHAhcADc5ZTruueO2NL2a79C30AJwEb5ix/FvhsU/svWcfVwH1zlh8EDs9+Pxx4sO06zlPvG4HTU64vsD9wF/Bb9Hpb7zXse9FyHVfR+4M/DbgZUMJ1fRRYkXsu2c+/6keTp4rzTV+RsuRnwJC0GngXcDsJ1jc79bqb3ljWjcDDwLMRsTNbJaXvwVeATwOzc7q8mXTrukfP2OI550uKmH8GjLZIOgD4O+CiiHhu7vxQqdQ3InYB75S0nN7QsePbrdFwks4CtkfEnZJObbk6ZUw8Y8s0aLLFNdH0FS0rNQNGGyQtoRe0/jYivpk9nWx9I+JZ4DZ6p1vLJc3+00zle/Ae4HclPQpcS+908S9Js67EAmZsmQZNBq47gOOyqzR7Ax+hN8NEymZnwIDyM2DUTr2m1deBByLiS3NeSqq+kg7JWlpI2o9eHu4BegHsnGy11usJEBGfjYhVEbGa3nfzHyPiYyRYV0lLJS2b/Z3ejC33kdjnX6uGE4pnAA/Ry3P8l7YTfLm6XUNvutjX6eUyLqCX47gV+BnwHeDgtuuZ1fVkejmOe4C7s8cZqdUXOAH4cVbP+4DPZc8fA/yI3lQm/wvYp+1jmqv3qcDNqdY1q9NPssf9s39LqX3+dT485MfMOsc9582scxy4zKxzHLjMrHMcuMyscxy4zKxzHLjMrHMcuMysc/4/oxHtbGzfu20AAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The particle is imaged using a brightfield microscope with NA between 0.15 and 0.25 and a illuminating laser wavelength between 400 and 700 nm. To simulate the broad spectrum we define 10 individual optical devices, each imaging the particle at a single wavelength. The result is then averaged." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "NUMBER_OF_IMAGES = 4\n", + "\n", + "for _ in range(NUMBER_OF_IMAGES):\n", + "\n", + " dataset.update()\n", + " image_of_particle = dataset.resolve()\n", + " position_of_particle = get_label(image_of_particle) * IMAGE_SIZE + IMAGE_SIZE / 2\n", + " plt.imshow(image_of_particle[..., 0], cmap=\"gray\")\n", + " plt.colorbar()\n", + " plt.scatter(position_of_particle[1], position_of_particle[0], s=120, facecolors='none', edgecolors=\"g\", linewidth=2)\n", + " plt.show()\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2.4 Augmenting dataset\n", + "\n", + "Simulating mie particles is slow. To speed up training we implement augmentation techniques. Here we flip and mirror the image. Note that DeepTrack ensures that the position is still correct after the augmentation. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.728434Z", + "iopub.status.busy": "2022-06-30T10:52:59.727933Z", + "iopub.status.idle": "2022-06-30T10:52:59.731440Z", + "shell.execute_reply": "2022-06-30T10:52:59.731440Z" + } + }, + "outputs": [], + "source": [ + "augmented_dataset = dt.Reuse(dataset, 8) >> dt.FlipLR() >> dt.FlipUD() >> dt.FlipDiagonal()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We add noises after augmentation. This allows the augmented images to be more distinct." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.733933Z", + "iopub.status.busy": "2022-06-30T10:52:59.733933Z", + "iopub.status.idle": "2022-06-30T10:52:59.737932Z", + "shell.execute_reply": "2022-06-30T10:52:59.737932Z" + } + }, + "outputs": [], + "source": [ + "gradient = dt.IlluminationGradient(\n", + " gradient=lambda: np.random.randn(2) * 1e-4,\n", + ")\n", + "\n", + "noise = dt.Poisson(\n", + " min_snr=5,\n", + " max_snr=100,\n", + " snr=lambda min_snr, max_snr: min_snr + np.random.rand() * (max_snr - min_snr),\n", + " background=1\n", + ")\n", + "\n", + "normalization = dt.NormalizeMinMax(lambda: np.random.rand() * 0.2, lambda: 0.8 + np.random.rand() * 0.2)\n", + "\n", + "data_pipeline = augmented_dataset >> gradient >> noise >> normalization\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:52:59.740434Z", + "iopub.status.busy": "2022-06-30T10:52:59.740434Z", + "iopub.status.idle": "2022-06-30T10:53:00.285933Z", + "shell.execute_reply": "2022-06-30T10:53:00.285434Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.021934Z", - "iopub.status.busy": "2022-06-30T10:52:59.021934Z", - "iopub.status.idle": "2022-06-30T10:52:59.027443Z", - "shell.execute_reply": "2022-06-30T10:52:59.027443Z" - } - }, - "outputs": [], - "source": [ - "\n", - "spectrum = np.linspace(500e-9, 700e-9, 5)\n", - "\n", - "imaged_particle_list = []\n", - "\n", - "\n", - "for wavelength in spectrum:\n", - " single_wavelength_optics = dt.Brightfield(\n", - " NA=0.8,\n", - " resolution=1e-6,\n", - " magnification=15,\n", - " wavelength=wavelength,\n", - " padding=(32, 32, 32, 32),\n", - " output_region=(0, 0, IMAGE_SIZE, IMAGE_SIZE),\n", - " )\n", - " \n", - " imaged_particle_list.append(\n", - " single_wavelength_optics(particle)\n", - " )\n", - "\n", - "dataset = sum(imaged_particle_list) / len(imaged_particle_list)" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "[24.99846677 25.88724352]\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2 Defining the training label\n", - "\n", - "The training label is extracted directly from the image as the `position` property divided by the image size, such that the posible values are contained within -0.5 and 0.5." + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS0AAAD6CAYAAAD0rxHNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3zElEQVR4nO2de7RV1ZXmf5OLgM8IgkpABSM+8IWC+MIoogbxnViJmnSSGunY6YrppJJKRauqHYk1Miqp7lFJRspKhYomdpdGxcSWGBQNguKThyICiiC+34iKRpHX7D/OueSsb61777nXA5xD5m+MO7zz3L3XWXvv42Kfb39zTnN3giAIWoVeW3sCQRAE3SEWrSAIWopYtIIgaCli0QqCoKWIRSsIgpYiFq0gCFqKD7VomdlEM1tqZsvN7NJGTSoIgqAjrKc+LTNrA54ETgVeAOYCF7r7ko726devn++0006djrt27dok3mGHHZJ49erVSdy7d+8u59qrV7o263u0tbWV5prEGzZsSOI//vGP2T477rhjp3N7++23k7h0Lswsibfbbrsk/uCDD5JYj620z/r16zsdA2Djxo1JvP322yexHn/pc6Ov6T7r1q1L4j59+mRj6PHoGCV0G72eOmbfvn2zMfSc6Dmr53Om465ZsyaJ9bpAfs507jovvU6QfmbWrFnDunXrLNuoG0ycONFXrlxZ17bz58+f7u4TP8z7dZeur0THjAWWu/sKADO7HjgH6HDR2mmnnTjjjDM2xaXF4plnnkni0aNHJ/Edd9yRxLvvvns2hn6Id955507fY9ddd83GOOigg5JYF5z7778/2+eYY45J4t122y2Jb7vttiQ+4YQTsjH0f44999wziZctW5bEemylfd54440kfuqpp7J93n///SQ+9NBDk3jVqlVJrP9TQ/4/1JtvvpnEr776ahJ/9KMfzcbYZZddkljPe+l933333U7H0AV43333zcbQz8Trr7+exAMGDMj20X9g9ttvvyR+8sknk3jgwIHZGLpo6dyffvrpJNZ/tCFdLB9++OHs791l5cqVzJ07t65te/XqlR/UZubDfD0cAjxfE79QfS3BzC42s3lmNk//5QmCoDlx97p+tgabXYh398nuPsbdx+hXriAImpNmXrQ+zNfDF4G9auKh1dc6ZMOGDbzzzjub4jlz5mTbDB06NIl1mwMOOCCJ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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.029934Z", - "iopub.status.busy": "2022-06-30T10:52:59.029934Z", - "iopub.status.idle": "2022-06-30T10:52:59.032944Z", - "shell.execute_reply": "2022-06-30T10:52:59.032944Z" - } - }, - "outputs": [], - "source": [ - "def get_label(image):\n", - " px = np.array(image.get_property(\"position\")) / IMAGE_SIZE - 0.5\n", - " return px" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "[24.11275648 25.00153323]\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.3 Visualizing the dataset\n", - "\n", - "We resolve and show 16 images, with a green circle indicating the particle position." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.035434Z", - "iopub.status.busy": "2022-06-30T10:52:59.035434Z", - "iopub.status.idle": "2022-06-30T10:52:59.725934Z", - "shell.execute_reply": "2022-06-30T10:52:59.725463Z" - }, - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 24.0 should be at most 0.5\n", - "To fix, set magnification to 48.0, and downsample the resulting image with dt.AveragePooling((48.0, 48.0, 1))\n", - "\n", - " warnings.warn(\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:276: RuntimeWarning: invalid value encountered in sqrt\n", - " * np.sqrt(1 - (NA / refractive_index_medium) ** 2 * RHO),\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 21.81818181818182 should be at most 0.5\n", - "To fix, set magnification to 44.0, and downsample the resulting image with dt.AveragePooling((44.0, 44.0, 1))\n", - "\n", - " warnings.warn(\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 20.000000000000004 should be at most 0.5\n", - "To fix, set magnification to 41.0, and downsample the resulting image with dt.AveragePooling((41.0, 41.0, 1))\n", - "\n", - " warnings.warn(\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 18.461538461538463 should be at most 0.5\n", - "To fix, set magnification to 37.0, and downsample the resulting image with dt.AveragePooling((37.0, 37.0, 1))\n", - "\n", - " warnings.warn(\n", - "c:\\users\\gu\\deeptrack\\deeptrack-2.0\\deeptrack\\optics.py:207: UserWarning: Likely bad optical parameters. NA / wavelength * resolution * magnification = 17.142857142857146 should be at most 0.5\n", - "To fix, set magnification to 35.0, and downsample the resulting image with dt.AveragePooling((35.0, 35.0, 1))\n", - "\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "NUMBER_OF_IMAGES = 4\n", - "\n", - "for _ in range(NUMBER_OF_IMAGES):\n", - "\n", - " dataset.update()\n", - " image_of_particle = dataset.resolve()\n", - " position_of_particle = get_label(image_of_particle) * IMAGE_SIZE + IMAGE_SIZE / 2\n", - " plt.imshow(image_of_particle[..., 0], cmap=\"gray\")\n", - " plt.colorbar()\n", - " plt.scatter(position_of_particle[1], position_of_particle[0], s=120, facecolors='none', edgecolors=\"g\", linewidth=2)\n", - " plt.show()\n", - " " - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "[25.00153323 24.11275648]\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.4 Augmenting dataset\n", - "\n", - "Simulating mie particles is slow. To speed up training we implement augmentation techniques. Here we flip and mirror the image. Note that DeepTrack ensures that the position is still correct after the augmentation. " + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.728434Z", - "iopub.status.busy": "2022-06-30T10:52:59.727933Z", - "iopub.status.idle": "2022-06-30T10:52:59.731440Z", - "shell.execute_reply": "2022-06-30T10:52:59.731440Z" - } - }, - "outputs": [], - "source": [ - "augmented_dataset = dt.Reuse(dataset, 8) >> dt.FlipLR() >> dt.FlipUD() >> dt.FlipDiagonal()" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "[25.88724352 24.99846677]\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We add noises after augmentation. This allows the augmented images to be more distinct." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.733933Z", - "iopub.status.busy": "2022-06-30T10:52:59.733933Z", - "iopub.status.idle": "2022-06-30T10:52:59.737932Z", - "shell.execute_reply": "2022-06-30T10:52:59.737932Z" - } - }, - "outputs": [], - "source": [ - "gradient = dt.IlluminationGradient(\n", - " gradient=lambda: np.random.randn(2) * 1e-4,\n", - ")\n", - "\n", - "noise = dt.Poisson(\n", - " min_snr=5,\n", - " max_snr=100,\n", - " snr=lambda min_snr, max_snr: min_snr + np.random.rand() * (max_snr - min_snr),\n", - " background=1\n", - ")\n", - "\n", - "normalization = dt.NormalizeMinMax(lambda: np.random.rand() * 0.2, lambda: 0.8 + np.random.rand() * 0.2)\n", - "\n", - "data_pipeline = augmented_dataset >> gradient >> noise >> normalization\n", - "\n" - ] - }, + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "NUMBER_OF_IMAGES = 4\n", + "\n", + "for _ in range(NUMBER_OF_IMAGES):\n", + "\n", + " data_pipeline.update()\n", + " image_of_particle = data_pipeline()\n", + " position_of_particle = get_label(image_of_particle) * IMAGE_SIZE + IMAGE_SIZE / 2\n", + " print(position_of_particle)\n", + " plt.imshow(image_of_particle[..., 0], cmap=\"gray\")\n", + " plt.colorbar()\n", + " plt.scatter(position_of_particle[1], position_of_particle[0], s=120, facecolors='none', edgecolors=\"g\", linewidth=2)\n", + " plt.show()\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Defining the network\n", + "\n", + "The network used is a Convolutional network, with mse as loss." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:53:00.288433Z", + "iopub.status.busy": "2022-06-30T10:53:00.288433Z", + "iopub.status.idle": "2022-06-30T10:53:00.793932Z", + "shell.execute_reply": "2022-06-30T10:53:00.793932Z" + } + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:52:59.740434Z", - "iopub.status.busy": "2022-06-30T10:52:59.740434Z", - "iopub.status.idle": "2022-06-30T10:53:00.285933Z", - "shell.execute_reply": "2022-06-30T10:53:00.285434Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[24.99846677 25.88724352]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS0AAAD6CAYAAAD0rxHNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3zElEQVR4nO2de7RV1ZXmf5OLgM8IgkpABSM+8IWC+MIoogbxnViJmnSSGunY6YrppJJKRauqHYk1Miqp7lFJRspKhYomdpdGxcSWGBQNguKThyICiiC+34iKRpHX7D/OueSsb61777nXA5xD5m+MO7zz3L3XWXvv42Kfb39zTnN3giAIWoVeW3sCQRAE3SEWrSAIWopYtIIgaCli0QqCoKWIRSsIgpYiFq0gCFqKD7VomdlEM1tqZsvN7NJGTSoIgqAjrKc+LTNrA54ETgVeAOYCF7r7ko726devn++0006djrt27dok3mGHHZJ49erVSdy7d+8u59qrV7o263u0tbWV5prEGzZsSOI//vGP2T477rhjp3N7++23k7h0Lswsibfbbrsk/uCDD5JYj620z/r16zsdA2Djxo1JvP322yexHn/pc6Ov6T7r1q1L4j59+mRj6PHoGCV0G72eOmbfvn2zMfSc6Dmr53Om465ZsyaJ9bpAfs507jovvU6QfmbWrFnDunXrLNuoG0ycONFXrlxZ17bz58+f7u4TP8z7dZeur0THjAWWu/sKADO7HjgH6HDR2mmnnTjjjDM2xaXF4plnnkni0aNHJ/Edd9yRxLvvvns2hn6Id955507fY9ddd83GOOigg5JYF5z7778/2+eYY45J4t122y2Jb7vttiQ+4YQTsjH0f44999wziZctW5bEemylfd54440kfuqpp7J93n///SQ+9NBDk3jVqlVJrP9TQ/4/1JtvvpnEr776ahJ/9KMfzcbYZZddkljPe+l933333U7H0AV43333zcbQz8Trr7+exAMGDMj20X9g9ttvvyR+8sknk3jgwIHZGLpo6dyffvrpJNZ/tCFdLB9++OHs791l5cqVzJ07t65te/XqlR/UZubDfD0cAjxfE79QfS3BzC42s3lmNk//5QmCoDlx97p+tgabXYh398nuPsbdx+hXriAImpNmXrQ+zNfDF4G9auKh1dc6ZMOGDbzzzjub4jlz5mTbDB06NIl1mwMOOCCJ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[24.11275648 25.00153323]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[25.00153323 24.11275648]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[25.88724352 24.99846677]\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "NUMBER_OF_IMAGES = 4\n", - "\n", - "for _ in range(NUMBER_OF_IMAGES):\n", - "\n", - " data_pipeline.update()\n", - " image_of_particle = data_pipeline()\n", - " position_of_particle = get_label(image_of_particle) * IMAGE_SIZE + IMAGE_SIZE / 2\n", - " print(position_of_particle)\n", - " plt.imshow(image_of_particle[..., 0], cmap=\"gray\")\n", - " plt.colorbar()\n", - " plt.scatter(position_of_particle[1], position_of_particle[0], s=120, facecolors='none', edgecolors=\"g\", linewidth=2)\n", - " plt.show()\n", - " " - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"model\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_1 (InputLayer) [(None, 51, 51, 1)] 0 \n", + " \n", + " conv2d (Conv2D) (None, 51, 51, 16) 160 \n", + " \n", + " activation (Activation) (None, 51, 51, 16) 0 \n", + " \n", + " max_pooling2d (MaxPooling2D (None, 25, 25, 16) 0 \n", + " ) \n", + " \n", + " conv2d_1 (Conv2D) (None, 25, 25, 32) 4640 \n", + " \n", + " activation_1 (Activation) (None, 25, 25, 32) 0 \n", + " \n", + " max_pooling2d_1 (MaxPooling (None, 12, 12, 32) 0 \n", + " 2D) \n", + " \n", + " conv2d_2 (Conv2D) (None, 12, 12, 64) 18496 \n", + " \n", + " activation_2 (Activation) (None, 12, 12, 64) 0 \n", + " \n", + " max_pooling2d_2 (MaxPooling (None, 6, 6, 64) 0 \n", + " 2D) \n", + " \n", + " flatten (Flatten) (None, 2304) 0 \n", + " \n", + " dense (Dense) (None, 32) 73760 \n", + " \n", + " activation_3 (Activation) (None, 32) 0 \n", + " \n", + " dense_1 (Dense) (None, 32) 1056 \n", + " \n", + " activation_4 (Activation) (None, 32) 0 \n", + " \n", + " dense_2 (Dense) (None, 2) 66 \n", + " \n", + "=================================================================\n", + "Total params: 98,178\n", + "Trainable params: 98,178\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "import tensorflow.keras.backend as K\n", + "import tensorflow.keras.optimizers as optimizers\n", + "def pixel_error(T, P):\n", + " return K.mean(K.sqrt(K.sum(K.square(T - P), axis=-1))) * IMAGE_SIZE\n", + "\n", + "model = dt.models.Convolutional(\n", + " input_shape=(IMAGE_SIZE, IMAGE_SIZE, 1),\n", + " conv_layers_dimensions=(16, 32, 64),\n", + " dense_layers_dimensions=(32, 32),\n", + " steps_per_pooling=1,\n", + " number_of_outputs=2,\n", + " loss=\"mse\",\n", + " metrics=[pixel_error],\n", + " optimizer=\"adam\",\n", + " dense_block=dt.layers.DenseBlock(activation=\"relu\"),\n", + " pooling_block=dt.layers.PoolingBlock(padding=\"valid\")\n", + ")\n", + "\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Training the network" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use the `ContinuousGenerator` to generate the images. It creates a new thread and generates images while the model is training. \n", + "\n", + "Set TRAIN_MODEL to True to train the model, otherwise a pretrained model is downloaded." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:53:00.803934Z", + "iopub.status.busy": "2022-06-30T10:53:00.803934Z", + "iopub.status.idle": "2022-06-30T10:57:48.493534Z", + "shell.execute_reply": "2022-06-30T10:57:48.493534Z" }, + "scrolled": true + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Defining the network\n", - "\n", - "The network used is a Convolutional network, with mse as loss." - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating 1004 / 1000 samples before starting training\n", + "Epoch 1/250\n", + "15/15 [==============================] - 4s 52ms/step - loss: 9.9321e-04 - pixel_error: 2.0605 - val_loss: 5.2224e-04 - val_pixel_error: 1.4501\n", + "Epoch 2/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 2.1147e-04 - pixel_error: 0.8914 - val_loss: 1.4976e-04 - val_pixel_error: 0.6850\n", + "Epoch 3/250\n", + "15/15 [==============================] - 0s 27ms/step - loss: 1.0225e-04 - pixel_error: 0.5713 - val_loss: 1.0218e-04 - val_pixel_error: 0.5500\n", + "Epoch 4/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 8.0869e-05 - pixel_error: 0.4968 - val_loss: 9.7096e-05 - val_pixel_error: 0.5578\n", + "Epoch 5/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 6.7782e-05 - pixel_error: 0.4686 - val_loss: 8.4642e-05 - val_pixel_error: 0.4954\n", + "Epoch 6/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 5.8364e-05 - pixel_error: 0.4254 - val_loss: 1.0386e-04 - val_pixel_error: 0.5468\n", + "Epoch 7/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 4.6099e-05 - pixel_error: 0.3836 - val_loss: 6.7298e-05 - val_pixel_error: 0.4317\n", + "Epoch 8/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 3.5949e-05 - pixel_error: 0.3327 - val_loss: 5.1120e-05 - val_pixel_error: 0.3599\n", + "Epoch 9/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 2.9882e-05 - pixel_error: 0.3113 - val_loss: 4.5586e-05 - val_pixel_error: 0.3360\n", + "Epoch 10/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 2.4438e-05 - pixel_error: 0.2772 - val_loss: 4.0967e-05 - val_pixel_error: 0.3275\n", + "Epoch 11/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 2.1663e-05 - pixel_error: 0.2607 - val_loss: 3.3650e-05 - val_pixel_error: 0.2898\n", + "Epoch 12/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 1.8973e-05 - pixel_error: 0.2500 - val_loss: 2.9210e-05 - val_pixel_error: 0.2713\n", + "Epoch 13/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 1.6594e-05 - pixel_error: 0.2371 - val_loss: 2.7724e-05 - val_pixel_error: 0.2801\n", + "Epoch 14/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 1.7209e-05 - pixel_error: 0.2438 - val_loss: 2.7063e-05 - val_pixel_error: 0.2672\n", + "Epoch 15/250\n", + "15/15 [==============================] - 1s 33ms/step - loss: 1.3916e-05 - pixel_error: 0.2223 - val_loss: 2.4086e-05 - val_pixel_error: 0.2721\n", + "Epoch 16/250\n", + "15/15 [==============================] - 0s 27ms/step - loss: 1.3216e-05 - pixel_error: 0.2135 - val_loss: 2.4207e-05 - val_pixel_error: 0.2569\n", + "Epoch 17/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 1.4663e-05 - pixel_error: 0.2284 - val_loss: 2.2422e-05 - val_pixel_error: 0.2585\n", + "Epoch 18/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 1.3717e-05 - pixel_error: 0.2220 - val_loss: 1.8356e-05 - val_pixel_error: 0.2219\n", + "Epoch 19/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 1.4686e-05 - pixel_error: 0.2347 - val_loss: 1.9984e-05 - val_pixel_error: 0.2454\n", + "Epoch 20/250\n", + "15/15 [==============================] - 0s 32ms/step - loss: 1.2575e-05 - pixel_error: 0.2080 - val_loss: 2.0585e-05 - val_pixel_error: 0.2440\n", + "Epoch 21/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 9.8453e-06 - pixel_error: 0.1909 - val_loss: 1.6860e-05 - val_pixel_error: 0.2153\n", + "Epoch 22/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 9.6152e-06 - pixel_error: 0.1895 - val_loss: 1.7617e-05 - val_pixel_error: 0.2258\n", + "Epoch 23/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 1.1149e-05 - pixel_error: 0.2027 - val_loss: 1.4444e-05 - val_pixel_error: 0.2077\n", + "Epoch 24/250\n", + "15/15 [==============================] - 0s 13ms/step - loss: 1.3460e-05 - pixel_error: 0.2241 - val_loss: 3.1241e-05 - val_pixel_error: 0.3220\n", + "Epoch 25/250\n", + "15/15 [==============================] - 0s 14ms/step - loss: 1.1958e-05 - pixel_error: 0.2085 - val_loss: 2.0172e-05 - val_pixel_error: 0.2599\n", + "Epoch 26/250\n", + "15/15 [==============================] - 0s 11ms/step - loss: 1.0358e-05 - pixel_error: 0.2030 - val_loss: 1.6911e-05 - val_pixel_error: 0.2151\n", + "Epoch 27/250\n", + "15/15 [==============================] - 0s 12ms/step - loss: 7.6586e-06 - pixel_error: 0.1700 - val_loss: 1.1703e-05 - val_pixel_error: 0.1787\n", + "Epoch 28/250\n", + "15/15 [==============================] - 0s 6ms/step - loss: 6.4272e-06 - pixel_error: 0.1540 - val_loss: 1.1690e-05 - val_pixel_error: 0.1773\n", + "Epoch 29/250\n", + "15/15 [==============================] - 0s 10ms/step - loss: 6.9168e-06 - pixel_error: 0.1584 - val_loss: 1.4760e-05 - val_pixel_error: 0.2275\n", + "Epoch 30/250\n", + "15/15 [==============================] - 0s 10ms/step - loss: 7.9072e-06 - pixel_error: 0.1722 - val_loss: 1.2663e-05 - val_pixel_error: 0.2021\n", + "Epoch 31/250\n", + "15/15 [==============================] - 0s 13ms/step - loss: 7.0377e-06 - pixel_error: 0.1642 - val_loss: 1.6243e-05 - val_pixel_error: 0.2161\n", + "Epoch 32/250\n", + "15/15 [==============================] - 0s 12ms/step - loss: 8.1500e-06 - pixel_error: 0.1744 - val_loss: 9.8313e-06 - val_pixel_error: 0.1720\n", + "Epoch 33/250\n", + "15/15 [==============================] - 0s 12ms/step - loss: 6.3107e-06 - pixel_error: 0.1516 - val_loss: 1.1049e-05 - val_pixel_error: 0.1820\n", + "Epoch 34/250\n", + "15/15 [==============================] - 0s 10ms/step - loss: 6.2303e-06 - pixel_error: 0.1510 - val_loss: 9.4747e-06 - val_pixel_error: 0.1654\n", + "Epoch 35/250\n", + "15/15 [==============================] - 0s 10ms/step - loss: 5.6642e-06 - pixel_error: 0.1435 - val_loss: 1.1590e-05 - val_pixel_error: 0.1916\n", + "Epoch 36/250\n", + "15/15 [==============================] - 0s 12ms/step - loss: 6.1854e-06 - pixel_error: 0.1539 - val_loss: 1.0942e-05 - val_pixel_error: 0.1821\n", + "Epoch 37/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 6.9994e-06 - pixel_error: 0.1488 - val_loss: 1.0294e-05 - val_pixel_error: 0.1627\n", + "Epoch 38/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 7.2665e-06 - pixel_error: 0.1524 - val_loss: 1.1686e-05 - val_pixel_error: 0.1827\n", + "Epoch 39/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 8.0428e-06 - pixel_error: 0.1588 - val_loss: 9.8822e-06 - val_pixel_error: 0.1656\n", + "Epoch 40/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 8.1281e-06 - pixel_error: 0.1623 - val_loss: 9.5136e-06 - val_pixel_error: 0.1604\n", + "Epoch 41/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 7.8137e-06 - pixel_error: 0.1585 - val_loss: 1.1221e-05 - val_pixel_error: 0.1789\n", + "Epoch 42/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 6.6661e-06 - pixel_error: 0.1460 - val_loss: 1.0974e-05 - val_pixel_error: 0.1828\n", + "Epoch 43/250\n", + "15/15 [==============================] - 0s 32ms/step - loss: 6.3068e-06 - pixel_error: 0.1495 - val_loss: 1.0646e-05 - val_pixel_error: 0.1619\n", + "Epoch 44/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 5.5909e-06 - pixel_error: 0.1390 - val_loss: 1.1994e-05 - val_pixel_error: 0.1940\n", + "Epoch 45/250\n", + "15/15 [==============================] - 0s 32ms/step - loss: 6.3072e-06 - pixel_error: 0.1465 - val_loss: 8.9497e-06 - val_pixel_error: 0.1548\n", + "Epoch 46/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 5.3678e-06 - pixel_error: 0.1318 - val_loss: 1.0245e-05 - val_pixel_error: 0.1625\n", + "Epoch 47/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 5.1252e-06 - pixel_error: 0.1325 - val_loss: 1.0634e-05 - val_pixel_error: 0.1833\n", + "Epoch 48/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 4.4402e-06 - pixel_error: 0.1222 - val_loss: 8.8573e-06 - val_pixel_error: 0.1535\n", + "Epoch 49/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 4.5398e-06 - pixel_error: 0.1242 - val_loss: 1.1685e-05 - val_pixel_error: 0.1773\n", + "Epoch 50/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 5.3407e-06 - pixel_error: 0.1397 - val_loss: 9.8983e-06 - val_pixel_error: 0.1769\n", + "Epoch 51/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 5.3055e-06 - pixel_error: 0.1383 - val_loss: 1.2179e-05 - val_pixel_error: 0.1962\n", + "Epoch 52/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 5.8199e-06 - pixel_error: 0.1449 - val_loss: 1.1396e-05 - val_pixel_error: 0.1674\n", + "Epoch 53/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 4.4586e-06 - pixel_error: 0.1261 - val_loss: 8.5692e-06 - val_pixel_error: 0.1542\n", + "Epoch 54/250\n", + "15/15 [==============================] - 0s 35ms/step - loss: 3.8699e-06 - pixel_error: 0.1154 - val_loss: 9.6211e-06 - val_pixel_error: 0.1635\n", + "Epoch 55/250\n", + "15/15 [==============================] - 0s 18ms/step - loss: 3.6359e-06 - pixel_error: 0.1122 - val_loss: 8.9243e-06 - val_pixel_error: 0.1515\n", + "Epoch 56/250\n", + "15/15 [==============================] - 0s 16ms/step - loss: 3.3199e-06 - pixel_error: 0.1099 - val_loss: 1.1330e-05 - val_pixel_error: 0.1789\n", + "Epoch 57/250\n", + "15/15 [==============================] - 0s 9ms/step - loss: 3.7543e-06 - pixel_error: 0.1178 - val_loss: 8.8810e-06 - val_pixel_error: 0.1565\n", + "Epoch 58/250\n", + "15/15 [==============================] - 0s 11ms/step - loss: 4.0713e-06 - pixel_error: 0.1203 - val_loss: 1.0081e-05 - val_pixel_error: 0.1755\n", + "Epoch 59/250\n", + "15/15 [==============================] - 0s 8ms/step - loss: 4.7006e-06 - pixel_error: 0.1322 - val_loss: 7.4592e-06 - val_pixel_error: 0.1420\n", + "Epoch 60/250\n", + "15/15 [==============================] - 0s 18ms/step - loss: 3.5971e-06 - pixel_error: 0.1140 - val_loss: 1.1743e-05 - val_pixel_error: 0.1871\n", + "Epoch 61/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 4.5321e-06 - pixel_error: 0.1309 - val_loss: 1.0220e-05 - val_pixel_error: 0.1826\n", + "Epoch 62/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 4.4545e-06 - pixel_error: 0.1268 - val_loss: 7.9111e-06 - val_pixel_error: 0.1388\n", + "Epoch 63/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 3.3516e-06 - pixel_error: 0.1086 - val_loss: 1.0877e-05 - val_pixel_error: 0.1557\n", + "Epoch 64/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 3.7513e-06 - pixel_error: 0.1136 - val_loss: 8.7817e-06 - val_pixel_error: 0.1476\n", + "Epoch 65/250\n", + "15/15 [==============================] - 1s 46ms/step - loss: 4.4302e-06 - pixel_error: 0.1266 - val_loss: 1.1125e-05 - val_pixel_error: 0.1921\n", + "Epoch 66/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 7.2704e-06 - pixel_error: 0.1511 - val_loss: 1.4376e-05 - val_pixel_error: 0.2007\n", + "Epoch 67/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 7.1026e-06 - pixel_error: 0.1538 - val_loss: 1.1193e-05 - val_pixel_error: 0.1639\n", + "Epoch 68/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 6.8167e-06 - pixel_error: 0.1494 - val_loss: 1.5848e-05 - val_pixel_error: 0.1902\n", + "Epoch 69/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 6.5882e-06 - pixel_error: 0.1520 - val_loss: 1.8902e-05 - val_pixel_error: 0.1815\n", + "Epoch 70/250\n", + "15/15 [==============================] - 0s 33ms/step - loss: 6.3544e-06 - pixel_error: 0.1428 - val_loss: 1.0272e-05 - val_pixel_error: 0.1480\n", + "Epoch 71/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 5.6043e-06 - pixel_error: 0.1428 - val_loss: 1.2553e-05 - val_pixel_error: 0.1750\n", + "Epoch 72/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 5.4434e-06 - pixel_error: 0.1408 - val_loss: 1.0125e-05 - val_pixel_error: 0.1582\n", + "Epoch 73/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 5.0608e-06 - pixel_error: 0.1339 - val_loss: 1.2165e-05 - val_pixel_error: 0.1857\n", + "Epoch 74/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 6.7990e-06 - pixel_error: 0.1590 - val_loss: 1.0973e-05 - val_pixel_error: 0.1511\n", + "Epoch 75/250\n", + "15/15 [==============================] - 0s 32ms/step - loss: 3.8669e-06 - pixel_error: 0.1175 - val_loss: 1.0188e-05 - val_pixel_error: 0.1619\n", + "Epoch 76/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 4.1854e-06 - pixel_error: 0.1248 - val_loss: 9.8436e-06 - val_pixel_error: 0.1572\n", + "Epoch 77/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 3.5623e-06 - pixel_error: 0.1135 - val_loss: 1.0369e-05 - val_pixel_error: 0.1746\n", + "Epoch 78/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 3.6182e-06 - pixel_error: 0.1158 - val_loss: 8.6271e-06 - val_pixel_error: 0.1324\n", + "Epoch 79/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.1375e-06 - pixel_error: 0.1064 - val_loss: 1.0520e-05 - val_pixel_error: 0.1442\n", + "Epoch 80/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.5666e-06 - pixel_error: 0.1152 - val_loss: 1.0114e-05 - val_pixel_error: 0.1533\n", + "Epoch 81/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 3.6339e-06 - pixel_error: 0.1153 - val_loss: 1.0926e-05 - val_pixel_error: 0.1490\n", + "Epoch 82/250\n", + "15/15 [==============================] - 1s 28ms/step - loss: 3.6545e-06 - pixel_error: 0.1178 - val_loss: 9.2072e-06 - val_pixel_error: 0.1379\n", + "Epoch 83/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.6701e-06 - pixel_error: 0.1187 - val_loss: 1.1505e-05 - val_pixel_error: 0.1672\n", + "Epoch 84/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 3.0225e-06 - pixel_error: 0.1054 - val_loss: 9.7525e-06 - val_pixel_error: 0.1309\n", + "Epoch 85/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 2.3899e-06 - pixel_error: 0.0941 - val_loss: 1.0036e-05 - val_pixel_error: 0.1523\n", + "Epoch 86/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.2676e-06 - pixel_error: 0.0910 - val_loss: 1.0086e-05 - val_pixel_error: 0.1346\n", + "Epoch 87/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 2.0701e-06 - pixel_error: 0.0872 - val_loss: 9.3856e-06 - val_pixel_error: 0.1314\n", + "Epoch 88/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 2.1661e-06 - pixel_error: 0.0896 - val_loss: 1.0162e-05 - val_pixel_error: 0.1396\n", + "Epoch 89/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 1.9752e-06 - pixel_error: 0.0858 - val_loss: 9.0896e-06 - val_pixel_error: 0.1337\n", + "Epoch 90/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 2.2199e-06 - pixel_error: 0.0922 - val_loss: 9.6267e-06 - val_pixel_error: 0.1400\n", + "Epoch 91/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.4130e-06 - pixel_error: 0.0934 - val_loss: 1.0864e-05 - val_pixel_error: 0.1414\n", + "Epoch 92/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.7422e-06 - pixel_error: 0.0970 - val_loss: 1.0303e-05 - val_pixel_error: 0.1358\n", + "Epoch 93/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 3.4587e-06 - pixel_error: 0.1084 - val_loss: 1.0109e-05 - val_pixel_error: 0.1436\n", + "Epoch 94/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 4.5100e-06 - pixel_error: 0.1262 - val_loss: 1.3133e-05 - val_pixel_error: 0.1722\n", + "Epoch 95/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 4.5408e-06 - pixel_error: 0.1285 - val_loss: 1.3575e-05 - val_pixel_error: 0.1831\n", + "Epoch 96/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 4.2682e-06 - pixel_error: 0.1210 - val_loss: 1.2351e-05 - val_pixel_error: 0.1471\n", + "Epoch 97/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 4.2937e-06 - pixel_error: 0.1164 - val_loss: 1.0659e-05 - val_pixel_error: 0.1379\n", + "Epoch 98/250\n", + "15/15 [==============================] - 1s 34ms/step - loss: 4.0562e-06 - pixel_error: 0.1139 - val_loss: 1.1458e-05 - val_pixel_error: 0.1562\n", + "Epoch 99/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 3.8462e-06 - pixel_error: 0.1172 - val_loss: 9.8971e-06 - val_pixel_error: 0.1426\n", + "Epoch 100/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 3.2203e-06 - pixel_error: 0.1070 - val_loss: 1.1237e-05 - val_pixel_error: 0.1729\n", + "Epoch 101/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 3.3677e-06 - pixel_error: 0.1086 - val_loss: 1.1017e-05 - val_pixel_error: 0.1682\n", + "Epoch 102/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.2241e-06 - pixel_error: 0.1077 - val_loss: 1.2114e-05 - val_pixel_error: 0.1505\n", + "Epoch 103/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 3.0551e-06 - pixel_error: 0.1025 - val_loss: 9.8671e-06 - val_pixel_error: 0.1556\n", + "Epoch 104/250\n", + "15/15 [==============================] - 0s 27ms/step - loss: 3.1907e-06 - pixel_error: 0.1069 - val_loss: 1.1201e-05 - val_pixel_error: 0.1577\n", + "Epoch 105/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 4.1720e-06 - pixel_error: 0.1241 - val_loss: 9.3723e-06 - val_pixel_error: 0.1650\n", + "Epoch 106/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 4.4014e-06 - pixel_error: 0.1277 - val_loss: 1.3894e-05 - val_pixel_error: 0.1933\n", + "Epoch 107/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 4.7520e-06 - pixel_error: 0.1331 - val_loss: 1.0801e-05 - val_pixel_error: 0.1810\n", + "Epoch 108/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 3.7241e-06 - pixel_error: 0.1152 - val_loss: 1.0713e-05 - val_pixel_error: 0.1558\n", + "Epoch 109/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 3.3055e-06 - pixel_error: 0.1099 - val_loss: 8.5083e-06 - val_pixel_error: 0.1397\n", + "Epoch 110/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.4471e-06 - pixel_error: 0.0933 - val_loss: 7.8698e-06 - val_pixel_error: 0.1331\n", + "Epoch 111/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 2.4328e-06 - pixel_error: 0.0944 - val_loss: 7.7248e-06 - val_pixel_error: 0.1317\n", + "Epoch 112/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 2.8907e-06 - pixel_error: 0.1046 - val_loss: 9.4337e-06 - val_pixel_error: 0.1299\n", + "Epoch 113/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 3.0501e-06 - pixel_error: 0.1074 - val_loss: 8.4650e-06 - val_pixel_error: 0.1324\n", + "Epoch 114/250\n", + "15/15 [==============================] - 1s 33ms/step - loss: 2.2703e-06 - pixel_error: 0.0918 - val_loss: 9.1721e-06 - val_pixel_error: 0.1298\n", + "Epoch 115/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 2.2686e-06 - pixel_error: 0.0920 - val_loss: 9.3033e-06 - val_pixel_error: 0.1427\n", + "Epoch 116/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 2.1954e-06 - pixel_error: 0.0895 - val_loss: 7.6707e-06 - val_pixel_error: 0.1270\n", + "Epoch 117/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.3452e-06 - pixel_error: 0.0915 - val_loss: 7.4559e-06 - val_pixel_error: 0.1266\n", + "Epoch 118/250\n", + "15/15 [==============================] - 1s 42ms/step - loss: 2.5111e-06 - pixel_error: 0.0874 - val_loss: 6.3885e-06 - val_pixel_error: 0.1207\n", + "Epoch 119/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.4896e-06 - pixel_error: 0.0906 - val_loss: 6.4136e-06 - val_pixel_error: 0.1196\n", + "Epoch 120/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.8837e-06 - pixel_error: 0.0989 - val_loss: 5.7658e-06 - val_pixel_error: 0.1216\n", + "Epoch 121/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.5629e-06 - pixel_error: 0.0919 - val_loss: 5.2348e-06 - val_pixel_error: 0.1306\n", + "Epoch 122/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 3.1230e-06 - pixel_error: 0.1059 - val_loss: 6.3768e-06 - val_pixel_error: 0.1487\n", + "Epoch 123/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 3.9540e-06 - pixel_error: 0.1228 - val_loss: 4.4599e-06 - val_pixel_error: 0.1108\n", + "Epoch 124/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 2.5788e-06 - pixel_error: 0.0957 - val_loss: 5.0195e-06 - val_pixel_error: 0.1271\n", + "Epoch 125/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 8.1490e-06 - pixel_error: 0.1475 - val_loss: 9.8304e-06 - val_pixel_error: 0.1822\n", + "Epoch 126/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 8.9633e-06 - pixel_error: 0.1772 - val_loss: 1.0622e-05 - val_pixel_error: 0.1603\n", + "Epoch 127/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 6.1088e-06 - pixel_error: 0.1504 - val_loss: 7.5003e-06 - val_pixel_error: 0.1368\n", + "Epoch 128/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 4.7418e-06 - pixel_error: 0.1310 - val_loss: 7.1705e-06 - val_pixel_error: 0.1552\n", + "Epoch 129/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 3.9840e-06 - pixel_error: 0.1175 - val_loss: 1.1678e-05 - val_pixel_error: 0.1460\n", + "Epoch 130/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 5.3478e-06 - pixel_error: 0.1246 - val_loss: 8.8417e-06 - val_pixel_error: 0.1565\n", + "Epoch 131/250\n", + "15/15 [==============================] - 1s 34ms/step - loss: 4.9904e-06 - pixel_error: 0.1285 - val_loss: 8.4111e-06 - val_pixel_error: 0.1685\n", + "Epoch 132/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 4.7955e-06 - pixel_error: 0.1343 - val_loss: 6.7845e-06 - val_pixel_error: 0.1487\n", + "Epoch 133/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 3.3907e-06 - pixel_error: 0.1089 - val_loss: 5.9403e-06 - val_pixel_error: 0.1270\n", + "Epoch 134/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.1255e-06 - pixel_error: 0.1043 - val_loss: 7.0542e-06 - val_pixel_error: 0.1549\n", + "Epoch 135/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 3.4219e-06 - pixel_error: 0.1118 - val_loss: 6.9392e-06 - val_pixel_error: 0.1451\n", + "Epoch 136/250\n", + "15/15 [==============================] - 0s 26ms/step - loss: 2.9780e-06 - pixel_error: 0.1046 - val_loss: 5.7588e-06 - val_pixel_error: 0.1285\n", + "Epoch 137/250\n", + "15/15 [==============================] - 0s 27ms/step - loss: 2.6487e-06 - pixel_error: 0.0963 - val_loss: 5.6203e-06 - val_pixel_error: 0.1160\n", + "Epoch 138/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.1706e-06 - pixel_error: 0.0862 - val_loss: 5.0523e-06 - val_pixel_error: 0.1242\n", + "Epoch 139/250\n", + "15/15 [==============================] - 0s 17ms/step - loss: 2.2500e-06 - pixel_error: 0.0911 - val_loss: 5.0690e-06 - val_pixel_error: 0.1149\n", + "Epoch 140/250\n", + "15/15 [==============================] - 0s 6ms/step - loss: 1.7891e-06 - pixel_error: 0.0812 - val_loss: 4.4571e-06 - val_pixel_error: 0.1064\n", + "Epoch 141/250\n", + "15/15 [==============================] - 0s 11ms/step - loss: 1.8296e-06 - pixel_error: 0.0826 - val_loss: 4.0510e-06 - val_pixel_error: 0.1009\n", + "Epoch 142/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.5766e-06 - pixel_error: 0.0757 - val_loss: 4.9803e-06 - val_pixel_error: 0.1110\n", + "Epoch 143/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 2.9056e-06 - pixel_error: 0.0992 - val_loss: 5.0983e-06 - val_pixel_error: 0.1259\n", + "Epoch 144/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 3.3747e-06 - pixel_error: 0.1067 - val_loss: 4.1659e-06 - val_pixel_error: 0.1097\n", + "Epoch 145/250\n", + "15/15 [==============================] - 0s 6ms/step - loss: 2.8323e-06 - pixel_error: 0.0943 - val_loss: 6.1719e-06 - val_pixel_error: 0.1312\n", + "Epoch 146/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 2.7529e-06 - pixel_error: 0.0967 - val_loss: 5.8310e-06 - val_pixel_error: 0.1374\n", + "Epoch 147/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 3.4087e-06 - pixel_error: 0.1103 - val_loss: 5.2910e-06 - val_pixel_error: 0.1214\n", + "Epoch 148/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.9004e-06 - pixel_error: 0.0980 - val_loss: 4.5106e-06 - val_pixel_error: 0.1131\n", + "Epoch 149/250\n", + "15/15 [==============================] - 1s 40ms/step - loss: 3.2610e-06 - pixel_error: 0.1077 - val_loss: 4.8397e-06 - val_pixel_error: 0.1268\n", + "Epoch 150/250\n", + "15/15 [==============================] - 0s 32ms/step - loss: 3.4867e-06 - pixel_error: 0.1160 - val_loss: 5.1927e-06 - val_pixel_error: 0.1344\n", + "Epoch 151/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 3.0300e-06 - pixel_error: 0.1061 - val_loss: 3.5412e-06 - val_pixel_error: 0.0991\n", + "Epoch 152/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 2.6018e-06 - pixel_error: 0.0988 - val_loss: 4.9222e-06 - val_pixel_error: 0.1260\n", + "Epoch 153/250\n", + "15/15 [==============================] - 0s 33ms/step - loss: 2.8628e-06 - pixel_error: 0.1019 - val_loss: 3.2590e-06 - val_pixel_error: 0.0953\n", + "Epoch 154/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.4041e-06 - pixel_error: 0.0933 - val_loss: 3.9361e-06 - val_pixel_error: 0.1039\n", + "Epoch 155/250\n", + "15/15 [==============================] - 0s 26ms/step - loss: 1.8998e-06 - pixel_error: 0.0826 - val_loss: 3.5383e-06 - val_pixel_error: 0.0999\n", + "Epoch 156/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.1767e-06 - pixel_error: 0.0898 - val_loss: 3.9542e-06 - val_pixel_error: 0.1111\n", + "Epoch 157/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 2.3564e-06 - pixel_error: 0.0958 - val_loss: 3.7837e-06 - val_pixel_error: 0.0986\n", + "Epoch 158/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.6538e-06 - pixel_error: 0.0786 - val_loss: 3.5803e-06 - val_pixel_error: 0.0987\n", + "Epoch 159/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.7865e-06 - pixel_error: 0.0820 - val_loss: 3.5408e-06 - val_pixel_error: 0.1002\n", + "Epoch 160/250\n", + "15/15 [==============================] - 1s 31ms/step - loss: 1.6430e-06 - pixel_error: 0.0776 - val_loss: 3.6171e-06 - val_pixel_error: 0.0989\n", + "Epoch 161/250\n", + "15/15 [==============================] - 0s 26ms/step - loss: 1.9331e-06 - pixel_error: 0.0863 - val_loss: 3.5091e-06 - val_pixel_error: 0.1052\n", + "Epoch 162/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.9944e-06 - pixel_error: 0.0873 - val_loss: 3.2378e-06 - val_pixel_error: 0.0942\n", + "Epoch 163/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 1.8029e-06 - pixel_error: 0.0836 - val_loss: 3.6552e-06 - val_pixel_error: 0.1036\n", + "Epoch 164/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 1.5712e-06 - pixel_error: 0.0774 - val_loss: 3.5098e-06 - val_pixel_error: 0.0971\n", + "Epoch 165/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.6388e-06 - pixel_error: 0.0792 - val_loss: 3.5814e-06 - val_pixel_error: 0.0967\n", + "Epoch 166/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 1.6081e-06 - pixel_error: 0.0784 - val_loss: 4.2741e-06 - val_pixel_error: 0.1163\n", + "Epoch 167/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 1.9462e-06 - pixel_error: 0.0851 - val_loss: 4.0566e-06 - val_pixel_error: 0.1124\n", + "Epoch 168/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.8384e-06 - pixel_error: 0.0835 - val_loss: 3.6357e-06 - val_pixel_error: 0.1086\n", + "Epoch 169/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.9604e-06 - pixel_error: 0.0861 - val_loss: 4.3981e-06 - val_pixel_error: 0.1199\n", + "Epoch 170/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 2.1545e-06 - pixel_error: 0.0915 - val_loss: 3.9779e-06 - val_pixel_error: 0.1064\n", + "Epoch 171/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.4991e-06 - pixel_error: 0.0973 - val_loss: 4.0265e-06 - val_pixel_error: 0.1136\n", + "Epoch 172/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 2.9934e-06 - pixel_error: 0.0982 - val_loss: 5.8044e-06 - val_pixel_error: 0.1472\n", + "Epoch 173/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 3.2872e-06 - pixel_error: 0.1097 - val_loss: 4.9825e-06 - val_pixel_error: 0.1191\n", + "Epoch 174/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 3.0545e-06 - pixel_error: 0.1066 - val_loss: 4.4304e-06 - val_pixel_error: 0.1237\n", + "Epoch 175/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 3.3778e-06 - pixel_error: 0.1067 - val_loss: 2.9174e-06 - val_pixel_error: 0.0899\n", + "Epoch 176/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 3.3128e-06 - pixel_error: 0.1095 - val_loss: 3.5187e-06 - val_pixel_error: 0.1051\n", + "Epoch 177/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 3.3645e-06 - pixel_error: 0.1101 - val_loss: 4.0165e-06 - val_pixel_error: 0.1126\n", + "Epoch 178/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.8522e-06 - pixel_error: 0.1016 - val_loss: 3.9981e-06 - val_pixel_error: 0.1038\n", + "Epoch 179/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.8667e-06 - pixel_error: 0.1036 - val_loss: 5.4430e-06 - val_pixel_error: 0.1403\n", + "Epoch 180/250\n", + "15/15 [==============================] - 0s 26ms/step - loss: 3.7177e-06 - pixel_error: 0.1170 - val_loss: 4.6635e-06 - val_pixel_error: 0.1289\n", + "Epoch 181/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.3595e-06 - pixel_error: 0.1096 - val_loss: 4.9066e-06 - val_pixel_error: 0.1337\n", + "Epoch 182/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.7074e-06 - pixel_error: 0.0974 - val_loss: 4.3886e-06 - val_pixel_error: 0.1086\n", + "Epoch 183/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 2.6258e-06 - pixel_error: 0.0983 - val_loss: 4.2692e-06 - val_pixel_error: 0.1214\n", + "Epoch 184/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 2.0227e-06 - pixel_error: 0.0867 - val_loss: 3.2884e-06 - val_pixel_error: 0.0991\n", + "Epoch 185/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.0090e-06 - pixel_error: 0.0860 - val_loss: 3.5283e-06 - val_pixel_error: 0.1061\n", + "Epoch 186/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 2.0063e-06 - pixel_error: 0.0863 - val_loss: 3.4584e-06 - val_pixel_error: 0.1050\n", + "Epoch 187/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.4740e-06 - pixel_error: 0.0956 - val_loss: 4.0184e-06 - val_pixel_error: 0.1192\n", + "Epoch 188/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.1507e-06 - pixel_error: 0.0891 - val_loss: 3.1599e-06 - val_pixel_error: 0.0970\n", + "Epoch 189/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 2.1487e-06 - pixel_error: 0.0870 - val_loss: 3.9209e-06 - val_pixel_error: 0.1052\n", + "Epoch 190/250\n", + "15/15 [==============================] - 0s 26ms/step - loss: 2.4952e-06 - pixel_error: 0.0956 - val_loss: 4.6875e-06 - val_pixel_error: 0.1331\n", + "Epoch 191/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.6430e-06 - pixel_error: 0.1153 - val_loss: 4.0159e-06 - val_pixel_error: 0.1078\n", + "Epoch 192/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 3.0871e-06 - pixel_error: 0.1023 - val_loss: 4.1708e-06 - val_pixel_error: 0.1148\n", + "Epoch 193/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 4.9780e-06 - pixel_error: 0.1378 - val_loss: 4.8898e-06 - val_pixel_error: 0.1316\n", + "Epoch 194/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 2.2225e-06 - pixel_error: 0.0906 - val_loss: 3.9304e-06 - val_pixel_error: 0.1057\n", + "Epoch 195/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.8668e-06 - pixel_error: 0.0961 - val_loss: 5.7526e-06 - val_pixel_error: 0.1542\n", + "Epoch 196/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 4.2370e-06 - pixel_error: 0.1203 - val_loss: 6.1577e-06 - val_pixel_error: 0.1522\n", + "Epoch 197/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 5.1794e-06 - pixel_error: 0.1409 - val_loss: 6.5238e-06 - val_pixel_error: 0.1474\n", + "Epoch 198/250\n", + "15/15 [==============================] - 1s 42ms/step - loss: 5.3248e-06 - pixel_error: 0.1437 - val_loss: 6.0847e-06 - val_pixel_error: 0.1434\n", + "Epoch 199/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 4.3674e-06 - pixel_error: 0.1312 - val_loss: 7.3619e-06 - val_pixel_error: 0.1620\n", + "Epoch 200/250\n", + "15/15 [==============================] - 1s 40ms/step - loss: 3.9579e-06 - pixel_error: 0.1234 - val_loss: 4.6213e-06 - val_pixel_error: 0.1218\n", + "Epoch 201/250\n", + "15/15 [==============================] - 1s 39ms/step - loss: 3.0311e-06 - pixel_error: 0.1060 - val_loss: 3.8859e-06 - val_pixel_error: 0.1044\n", + "Epoch 202/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.8213e-06 - pixel_error: 0.1013 - val_loss: 4.6032e-06 - val_pixel_error: 0.1169\n", + "Epoch 203/250\n", + "15/15 [==============================] - 0s 28ms/step - loss: 2.9346e-06 - pixel_error: 0.1008 - val_loss: 3.9858e-06 - val_pixel_error: 0.1085\n", + "Epoch 204/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 3.4698e-06 - pixel_error: 0.1105 - val_loss: 6.1462e-06 - val_pixel_error: 0.1355\n", + "Epoch 205/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 3.3648e-06 - pixel_error: 0.1073 - val_loss: 4.0396e-06 - val_pixel_error: 0.1143\n", + "Epoch 206/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 3.0023e-06 - pixel_error: 0.1049 - val_loss: 3.5946e-06 - val_pixel_error: 0.1091\n", + "Epoch 207/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 3.3773e-06 - pixel_error: 0.1090 - val_loss: 4.8135e-06 - val_pixel_error: 0.1135\n", + "Epoch 208/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 3.8650e-06 - pixel_error: 0.1201 - val_loss: 4.8167e-06 - val_pixel_error: 0.1247\n", + "Epoch 209/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 3.6807e-06 - pixel_error: 0.1188 - val_loss: 4.6940e-06 - val_pixel_error: 0.1251\n", + "Epoch 210/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 3.4131e-06 - pixel_error: 0.1147 - val_loss: 4.8330e-06 - val_pixel_error: 0.1252\n", + "Epoch 211/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 2.9450e-06 - pixel_error: 0.1080 - val_loss: 3.2747e-06 - val_pixel_error: 0.0924\n", + "Epoch 212/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 1.9086e-06 - pixel_error: 0.0842 - val_loss: 4.3691e-06 - val_pixel_error: 0.1259\n", + "Epoch 213/250\n", + "15/15 [==============================] - 0s 23ms/step - loss: 2.1262e-06 - pixel_error: 0.0906 - val_loss: 3.1346e-06 - val_pixel_error: 0.0947\n", + "Epoch 214/250\n", + "15/15 [==============================] - 1s 38ms/step - loss: 2.0843e-06 - pixel_error: 0.0886 - val_loss: 3.3668e-06 - val_pixel_error: 0.0996\n", + "Epoch 215/250\n", + "15/15 [==============================] - 0s 30ms/step - loss: 1.8478e-06 - pixel_error: 0.0825 - val_loss: 2.9667e-06 - val_pixel_error: 0.0871\n", + "Epoch 216/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.6879e-06 - pixel_error: 0.0790 - val_loss: 3.3386e-06 - val_pixel_error: 0.0992\n", + "Epoch 217/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.7894e-06 - pixel_error: 0.0833 - val_loss: 3.0499e-06 - val_pixel_error: 0.0909\n", + "Epoch 218/250\n", + "15/15 [==============================] - 0s 31ms/step - loss: 2.0485e-06 - pixel_error: 0.0876 - val_loss: 2.9759e-06 - val_pixel_error: 0.0920\n", + "Epoch 219/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.9134e-06 - pixel_error: 0.0864 - val_loss: 3.6668e-06 - val_pixel_error: 0.1085\n", + "Epoch 220/250\n", + "15/15 [==============================] - 0s 24ms/step - loss: 1.8068e-06 - pixel_error: 0.0833 - val_loss: 3.2944e-06 - val_pixel_error: 0.0972\n", + "Epoch 221/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 2.0132e-06 - pixel_error: 0.0892 - val_loss: 3.2424e-06 - val_pixel_error: 0.1032\n", + "Epoch 222/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.3676e-06 - pixel_error: 0.0719 - val_loss: 2.7122e-06 - val_pixel_error: 0.0861\n", + "Epoch 223/250\n", + "15/15 [==============================] - 1s 35ms/step - loss: 1.4266e-06 - pixel_error: 0.0726 - val_loss: 2.9089e-06 - val_pixel_error: 0.0944\n", + "Epoch 224/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.5277e-06 - pixel_error: 0.0749 - val_loss: 3.3312e-06 - val_pixel_error: 0.1038\n", + "Epoch 225/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.7447e-06 - pixel_error: 0.0819 - val_loss: 3.2504e-06 - val_pixel_error: 0.1009\n", + "Epoch 226/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 1.7818e-06 - pixel_error: 0.0811 - val_loss: 3.0442e-06 - val_pixel_error: 0.0918\n", + "Epoch 227/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 1.6679e-06 - pixel_error: 0.0774 - val_loss: 2.9479e-06 - val_pixel_error: 0.0968\n", + "Epoch 228/250\n", + "15/15 [==============================] - 0s 29ms/step - loss: 1.8140e-06 - pixel_error: 0.0784 - val_loss: 3.5870e-06 - val_pixel_error: 0.1063\n", + "Epoch 229/250\n", + "15/15 [==============================] - 1s 37ms/step - loss: 2.9484e-06 - pixel_error: 0.0988 - val_loss: 4.6449e-06 - val_pixel_error: 0.1086\n", + "Epoch 230/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 2.8687e-06 - pixel_error: 0.1028 - val_loss: 3.6940e-06 - val_pixel_error: 0.1067\n", + "Epoch 231/250\n", + "15/15 [==============================] - 1s 34ms/step - loss: 2.2262e-06 - pixel_error: 0.0889 - val_loss: 3.1824e-06 - val_pixel_error: 0.0983\n", + "Epoch 232/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 2.2042e-06 - pixel_error: 0.0886 - val_loss: 3.2113e-06 - val_pixel_error: 0.1000\n", + "Epoch 233/250\n", + "15/15 [==============================] - 1s 41ms/step - loss: 1.7296e-06 - pixel_error: 0.0784 - val_loss: 2.8556e-06 - val_pixel_error: 0.0927\n", + "Epoch 234/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.6004e-06 - pixel_error: 0.0751 - val_loss: 3.1331e-06 - val_pixel_error: 0.0986\n", + "Epoch 235/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.6648e-06 - pixel_error: 0.0785 - val_loss: 2.6895e-06 - val_pixel_error: 0.0905\n", + "Epoch 236/250\n", + "15/15 [==============================] - 0s 19ms/step - loss: 1.9118e-06 - pixel_error: 0.0793 - val_loss: 4.4535e-06 - val_pixel_error: 0.1156\n", + "Epoch 237/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 2.4843e-06 - pixel_error: 0.0962 - val_loss: 3.8513e-06 - val_pixel_error: 0.1178\n", + "Epoch 238/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 2.6221e-06 - pixel_error: 0.1002 - val_loss: 4.0366e-06 - val_pixel_error: 0.1135\n", + "Epoch 239/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 2.7419e-06 - pixel_error: 0.1040 - val_loss: 3.3747e-06 - val_pixel_error: 0.1074\n", + "Epoch 240/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.7873e-06 - pixel_error: 0.0818 - val_loss: 3.2266e-06 - val_pixel_error: 0.0989\n", + "Epoch 241/250\n", + "15/15 [==============================] - 1s 36ms/step - loss: 1.3829e-06 - pixel_error: 0.0716 - val_loss: 2.7855e-06 - val_pixel_error: 0.0889\n", + "Epoch 242/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.2346e-06 - pixel_error: 0.0677 - val_loss: 3.1284e-06 - val_pixel_error: 0.0901\n", + "Epoch 243/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.3413e-06 - pixel_error: 0.0689 - val_loss: 3.5255e-06 - val_pixel_error: 0.0967\n", + "Epoch 244/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.7344e-06 - pixel_error: 0.0782 - val_loss: 3.3234e-06 - val_pixel_error: 0.1018\n", + "Epoch 245/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.5913e-06 - pixel_error: 0.0789 - val_loss: 3.7795e-06 - val_pixel_error: 0.1102\n", + "Epoch 246/250\n", + "15/15 [==============================] - 0s 20ms/step - loss: 1.7800e-06 - pixel_error: 0.0820 - val_loss: 3.8597e-06 - val_pixel_error: 0.1137\n", + "Epoch 247/250\n", + "15/15 [==============================] - 0s 21ms/step - loss: 1.5677e-06 - pixel_error: 0.0777 - val_loss: 3.3133e-06 - val_pixel_error: 0.0982\n", + "Epoch 248/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.4396e-06 - pixel_error: 0.0733 - val_loss: 3.1527e-06 - val_pixel_error: 0.0955\n", + "Epoch 249/250\n", + "15/15 [==============================] - 0s 25ms/step - loss: 1.5241e-06 - pixel_error: 0.0770 - val_loss: 3.4084e-06 - val_pixel_error: 0.0992\n", + "Epoch 250/250\n", + "15/15 [==============================] - 0s 22ms/step - loss: 1.2053e-06 - pixel_error: 0.0664 - val_loss: 3.1460e-06 - val_pixel_error: 0.0928\n", + " \r" + ] }, { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:53:00.288433Z", - "iopub.status.busy": "2022-06-30T10:53:00.288433Z", - "iopub.status.idle": "2022-06-30T10:53:00.793932Z", - "shell.execute_reply": "2022-06-30T10:53:00.793932Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model\"\n", - "_________________________________________________________________\n", - " Layer (type) Output Shape Param # \n", - "=================================================================\n", - " input_1 (InputLayer) [(None, 51, 51, 1)] 0 \n", - " \n", - " conv2d (Conv2D) (None, 51, 51, 16) 160 \n", - " \n", - " activation (Activation) (None, 51, 51, 16) 0 \n", - " \n", - " max_pooling2d (MaxPooling2D (None, 25, 25, 16) 0 \n", - " ) \n", - " \n", - " conv2d_1 (Conv2D) (None, 25, 25, 32) 4640 \n", - " \n", - " activation_1 (Activation) (None, 25, 25, 32) 0 \n", - " \n", - " max_pooling2d_1 (MaxPooling (None, 12, 12, 32) 0 \n", - " 2D) \n", - " \n", - " conv2d_2 (Conv2D) (None, 12, 12, 64) 18496 \n", - " \n", - " activation_2 (Activation) (None, 12, 12, 64) 0 \n", - " \n", - " max_pooling2d_2 (MaxPooling (None, 6, 6, 64) 0 \n", - " 2D) \n", - " \n", - " flatten (Flatten) (None, 2304) 0 \n", - " \n", - " dense (Dense) (None, 32) 73760 \n", - " \n", - " activation_3 (Activation) (None, 32) 0 \n", - " \n", - " dense_1 (Dense) (None, 32) 1056 \n", - " \n", - " activation_4 (Activation) (None, 32) 0 \n", - " \n", - " dense_2 (Dense) (None, 2) 66 \n", - " \n", - "=================================================================\n", - "Total params: 98,178\n", - "Trainable params: 98,178\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "import tensorflow.keras.backend as K\n", - "import tensorflow.keras.optimizers as optimizers\n", - "def pixel_error(T, P):\n", - " return K.mean(K.sqrt(K.sum(K.square(T - P), axis=-1))) * IMAGE_SIZE\n", - "\n", - "model = dt.models.Convolutional(\n", - " input_shape=(IMAGE_SIZE, IMAGE_SIZE, 1),\n", - " conv_layers_dimensions=(16, 32, 64),\n", - " dense_layers_dimensions=(32, 32),\n", - " steps_per_pooling=1,\n", - " number_of_outputs=2,\n", - " loss=\"mse\",\n", - " metrics=[pixel_error],\n", - " optimizer=\"adam\",\n", - " dense_block=dt.layers.DenseBlock(activation=\"relu\"),\n", - " pooling_block=dt.layers.PoolingBlock(padding=\"valid\")\n", - ")\n", - "\n", - "model.summary()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "TRAIN_MODEL = True\n", + "\n", + "from tensorflow.keras.callbacks import EarlyStopping\n", + "\n", + "validation_set_size = 200\n", + "validation_set = [data_pipeline.update().resolve() for _ in range(validation_set_size)]\n", + "validation_labels = [get_label(image) for image in validation_set]\n", + "\n", + "if TRAIN_MODEL:\n", + " generator = dt.generators.ContinuousGenerator(\n", + " data_pipeline & (data_pipeline >> get_label),\n", + " min_data_size=int(1e3),\n", + " max_data_size=int(2e3),\n", + " batch_size=64,\n", + " max_epochs_per_sample=25\n", + " )\n", + "\n", + " histories = []\n", + "\n", + " with generator:\n", + " h = model.fit(\n", + " generator,\n", + " validation_data=(\n", + " np.array(validation_set), \n", + " np.array(validation_labels)\n", + " ),\n", + " epochs=250\n", + " )\n", + "\n", + " plt.plot(h.history[\"loss\"], 'g')\n", + " plt.plot(h.history[\"val_loss\"], 'r')\n", + " plt.legend([\"loss\", \"val_loss\"])\n", + " plt.yscale('log')\n", + " plt.show()\n", + " \n", + "else:\n", + " model_path = datasets.load_model(\"ParticleTracking\")\n", + " model.load_weights(model_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Evaluating the network" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.1 Prediction vs actual\n", + "\n", + "We show the prediction of each output versus the ground truth" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:57:48.497035Z", + "iopub.status.busy": "2022-06-30T10:57:48.496534Z", + "iopub.status.idle": "2022-06-30T10:57:48.776035Z", + "shell.execute_reply": "2022-06-30T10:57:48.776035Z" + } + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Training the network" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 3ms/step\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We use the `ContinuousGenerator` to generate the images. It creates a new thread and generates images while the model is training. \n", - "\n", - "Set TRAIN_MODEL to True to train the model, otherwise a pretrained model is downloaded." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:53:00.803934Z", - "iopub.status.busy": "2022-06-30T10:53:00.803934Z", - "iopub.status.idle": "2022-06-30T10:57:48.493534Z", - "shell.execute_reply": "2022-06-30T10:57:48.493534Z" - }, - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Generating 1004 / 1000 samples before starting training\n", - "Epoch 1/250\n", - "15/15 [==============================] - 4s 52ms/step - loss: 9.9321e-04 - pixel_error: 2.0605 - val_loss: 5.2224e-04 - val_pixel_error: 1.4501\n", - "Epoch 2/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 2.1147e-04 - pixel_error: 0.8914 - val_loss: 1.4976e-04 - val_pixel_error: 0.6850\n", - "Epoch 3/250\n", - "15/15 [==============================] - 0s 27ms/step - loss: 1.0225e-04 - pixel_error: 0.5713 - val_loss: 1.0218e-04 - val_pixel_error: 0.5500\n", - "Epoch 4/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 8.0869e-05 - pixel_error: 0.4968 - val_loss: 9.7096e-05 - val_pixel_error: 0.5578\n", - "Epoch 5/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 6.7782e-05 - pixel_error: 0.4686 - val_loss: 8.4642e-05 - val_pixel_error: 0.4954\n", - "Epoch 6/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 5.8364e-05 - pixel_error: 0.4254 - val_loss: 1.0386e-04 - val_pixel_error: 0.5468\n", - "Epoch 7/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 4.6099e-05 - pixel_error: 0.3836 - val_loss: 6.7298e-05 - val_pixel_error: 0.4317\n", - "Epoch 8/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 3.5949e-05 - pixel_error: 0.3327 - val_loss: 5.1120e-05 - val_pixel_error: 0.3599\n", - "Epoch 9/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 2.9882e-05 - pixel_error: 0.3113 - val_loss: 4.5586e-05 - val_pixel_error: 0.3360\n", - "Epoch 10/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 2.4438e-05 - pixel_error: 0.2772 - val_loss: 4.0967e-05 - val_pixel_error: 0.3275\n", - "Epoch 11/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 2.1663e-05 - pixel_error: 0.2607 - val_loss: 3.3650e-05 - val_pixel_error: 0.2898\n", - "Epoch 12/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 1.8973e-05 - pixel_error: 0.2500 - val_loss: 2.9210e-05 - val_pixel_error: 0.2713\n", - "Epoch 13/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 1.6594e-05 - pixel_error: 0.2371 - val_loss: 2.7724e-05 - val_pixel_error: 0.2801\n", - "Epoch 14/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 1.7209e-05 - pixel_error: 0.2438 - val_loss: 2.7063e-05 - val_pixel_error: 0.2672\n", - "Epoch 15/250\n", - "15/15 [==============================] - 1s 33ms/step - loss: 1.3916e-05 - pixel_error: 0.2223 - val_loss: 2.4086e-05 - val_pixel_error: 0.2721\n", - "Epoch 16/250\n", - "15/15 [==============================] - 0s 27ms/step - loss: 1.3216e-05 - pixel_error: 0.2135 - val_loss: 2.4207e-05 - val_pixel_error: 0.2569\n", - "Epoch 17/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 1.4663e-05 - pixel_error: 0.2284 - val_loss: 2.2422e-05 - val_pixel_error: 0.2585\n", - "Epoch 18/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 1.3717e-05 - pixel_error: 0.2220 - val_loss: 1.8356e-05 - val_pixel_error: 0.2219\n", - "Epoch 19/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 1.4686e-05 - pixel_error: 0.2347 - val_loss: 1.9984e-05 - val_pixel_error: 0.2454\n", - "Epoch 20/250\n", - "15/15 [==============================] - 0s 32ms/step - loss: 1.2575e-05 - pixel_error: 0.2080 - val_loss: 2.0585e-05 - val_pixel_error: 0.2440\n", - "Epoch 21/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 9.8453e-06 - pixel_error: 0.1909 - val_loss: 1.6860e-05 - val_pixel_error: 0.2153\n", - "Epoch 22/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 9.6152e-06 - pixel_error: 0.1895 - val_loss: 1.7617e-05 - val_pixel_error: 0.2258\n", - "Epoch 23/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 1.1149e-05 - pixel_error: 0.2027 - val_loss: 1.4444e-05 - val_pixel_error: 0.2077\n", - "Epoch 24/250\n", - "15/15 [==============================] - 0s 13ms/step - loss: 1.3460e-05 - pixel_error: 0.2241 - val_loss: 3.1241e-05 - val_pixel_error: 0.3220\n", - "Epoch 25/250\n", - "15/15 [==============================] - 0s 14ms/step - loss: 1.1958e-05 - pixel_error: 0.2085 - val_loss: 2.0172e-05 - val_pixel_error: 0.2599\n", - "Epoch 26/250\n", - "15/15 [==============================] - 0s 11ms/step - loss: 1.0358e-05 - pixel_error: 0.2030 - val_loss: 1.6911e-05 - val_pixel_error: 0.2151\n", - "Epoch 27/250\n", - "15/15 [==============================] - 0s 12ms/step - loss: 7.6586e-06 - pixel_error: 0.1700 - val_loss: 1.1703e-05 - val_pixel_error: 0.1787\n", - "Epoch 28/250\n", - "15/15 [==============================] - 0s 6ms/step - loss: 6.4272e-06 - pixel_error: 0.1540 - val_loss: 1.1690e-05 - val_pixel_error: 0.1773\n", - "Epoch 29/250\n", - "15/15 [==============================] - 0s 10ms/step - loss: 6.9168e-06 - pixel_error: 0.1584 - val_loss: 1.4760e-05 - val_pixel_error: 0.2275\n", - "Epoch 30/250\n", - "15/15 [==============================] - 0s 10ms/step - loss: 7.9072e-06 - pixel_error: 0.1722 - val_loss: 1.2663e-05 - val_pixel_error: 0.2021\n", - "Epoch 31/250\n", - "15/15 [==============================] - 0s 13ms/step - loss: 7.0377e-06 - pixel_error: 0.1642 - val_loss: 1.6243e-05 - val_pixel_error: 0.2161\n", - "Epoch 32/250\n", - "15/15 [==============================] - 0s 12ms/step - loss: 8.1500e-06 - pixel_error: 0.1744 - val_loss: 9.8313e-06 - val_pixel_error: 0.1720\n", - "Epoch 33/250\n", - "15/15 [==============================] - 0s 12ms/step - loss: 6.3107e-06 - pixel_error: 0.1516 - val_loss: 1.1049e-05 - val_pixel_error: 0.1820\n", - "Epoch 34/250\n", - "15/15 [==============================] - 0s 10ms/step - loss: 6.2303e-06 - pixel_error: 0.1510 - val_loss: 9.4747e-06 - val_pixel_error: 0.1654\n", - "Epoch 35/250\n", - "15/15 [==============================] - 0s 10ms/step - loss: 5.6642e-06 - pixel_error: 0.1435 - val_loss: 1.1590e-05 - val_pixel_error: 0.1916\n", - "Epoch 36/250\n", - "15/15 [==============================] - 0s 12ms/step - loss: 6.1854e-06 - pixel_error: 0.1539 - val_loss: 1.0942e-05 - val_pixel_error: 0.1821\n", - "Epoch 37/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 6.9994e-06 - pixel_error: 0.1488 - val_loss: 1.0294e-05 - val_pixel_error: 0.1627\n", - "Epoch 38/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 7.2665e-06 - pixel_error: 0.1524 - val_loss: 1.1686e-05 - val_pixel_error: 0.1827\n", - "Epoch 39/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 8.0428e-06 - pixel_error: 0.1588 - val_loss: 9.8822e-06 - val_pixel_error: 0.1656\n", - "Epoch 40/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 8.1281e-06 - pixel_error: 0.1623 - val_loss: 9.5136e-06 - val_pixel_error: 0.1604\n", - "Epoch 41/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 7.8137e-06 - pixel_error: 0.1585 - val_loss: 1.1221e-05 - val_pixel_error: 0.1789\n", - "Epoch 42/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 6.6661e-06 - pixel_error: 0.1460 - val_loss: 1.0974e-05 - val_pixel_error: 0.1828\n", - "Epoch 43/250\n", - "15/15 [==============================] - 0s 32ms/step - loss: 6.3068e-06 - pixel_error: 0.1495 - val_loss: 1.0646e-05 - val_pixel_error: 0.1619\n", - "Epoch 44/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 5.5909e-06 - pixel_error: 0.1390 - val_loss: 1.1994e-05 - val_pixel_error: 0.1940\n", - "Epoch 45/250\n", - "15/15 [==============================] - 0s 32ms/step - loss: 6.3072e-06 - pixel_error: 0.1465 - val_loss: 8.9497e-06 - val_pixel_error: 0.1548\n", - "Epoch 46/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 5.3678e-06 - pixel_error: 0.1318 - val_loss: 1.0245e-05 - val_pixel_error: 0.1625\n", - "Epoch 47/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 5.1252e-06 - pixel_error: 0.1325 - val_loss: 1.0634e-05 - val_pixel_error: 0.1833\n", - "Epoch 48/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 4.4402e-06 - pixel_error: 0.1222 - val_loss: 8.8573e-06 - val_pixel_error: 0.1535\n", - "Epoch 49/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 4.5398e-06 - pixel_error: 0.1242 - val_loss: 1.1685e-05 - val_pixel_error: 0.1773\n", - "Epoch 50/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 5.3407e-06 - pixel_error: 0.1397 - val_loss: 9.8983e-06 - val_pixel_error: 0.1769\n", - "Epoch 51/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 5.3055e-06 - pixel_error: 0.1383 - val_loss: 1.2179e-05 - val_pixel_error: 0.1962\n", - "Epoch 52/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 5.8199e-06 - pixel_error: 0.1449 - val_loss: 1.1396e-05 - val_pixel_error: 0.1674\n", - "Epoch 53/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 4.4586e-06 - pixel_error: 0.1261 - val_loss: 8.5692e-06 - val_pixel_error: 0.1542\n", - "Epoch 54/250\n", - "15/15 [==============================] - 0s 35ms/step - loss: 3.8699e-06 - pixel_error: 0.1154 - val_loss: 9.6211e-06 - val_pixel_error: 0.1635\n", - "Epoch 55/250\n", - "15/15 [==============================] - 0s 18ms/step - loss: 3.6359e-06 - pixel_error: 0.1122 - val_loss: 8.9243e-06 - val_pixel_error: 0.1515\n", - "Epoch 56/250\n", - "15/15 [==============================] - 0s 16ms/step - loss: 3.3199e-06 - pixel_error: 0.1099 - val_loss: 1.1330e-05 - val_pixel_error: 0.1789\n", - "Epoch 57/250\n", - "15/15 [==============================] - 0s 9ms/step - loss: 3.7543e-06 - pixel_error: 0.1178 - val_loss: 8.8810e-06 - val_pixel_error: 0.1565\n", - "Epoch 58/250\n", - "15/15 [==============================] - 0s 11ms/step - loss: 4.0713e-06 - pixel_error: 0.1203 - val_loss: 1.0081e-05 - val_pixel_error: 0.1755\n", - "Epoch 59/250\n", - "15/15 [==============================] - 0s 8ms/step - loss: 4.7006e-06 - pixel_error: 0.1322 - val_loss: 7.4592e-06 - val_pixel_error: 0.1420\n", - "Epoch 60/250\n", - "15/15 [==============================] - 0s 18ms/step - loss: 3.5971e-06 - pixel_error: 0.1140 - val_loss: 1.1743e-05 - val_pixel_error: 0.1871\n", - "Epoch 61/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 4.5321e-06 - pixel_error: 0.1309 - val_loss: 1.0220e-05 - val_pixel_error: 0.1826\n", - "Epoch 62/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 4.4545e-06 - pixel_error: 0.1268 - val_loss: 7.9111e-06 - val_pixel_error: 0.1388\n", - "Epoch 63/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 3.3516e-06 - pixel_error: 0.1086 - val_loss: 1.0877e-05 - val_pixel_error: 0.1557\n", - "Epoch 64/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 3.7513e-06 - pixel_error: 0.1136 - val_loss: 8.7817e-06 - val_pixel_error: 0.1476\n", - "Epoch 65/250\n", - "15/15 [==============================] - 1s 46ms/step - loss: 4.4302e-06 - pixel_error: 0.1266 - val_loss: 1.1125e-05 - val_pixel_error: 0.1921\n", - "Epoch 66/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 7.2704e-06 - pixel_error: 0.1511 - val_loss: 1.4376e-05 - val_pixel_error: 0.2007\n", - "Epoch 67/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 7.1026e-06 - pixel_error: 0.1538 - val_loss: 1.1193e-05 - val_pixel_error: 0.1639\n", - "Epoch 68/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 6.8167e-06 - pixel_error: 0.1494 - val_loss: 1.5848e-05 - val_pixel_error: 0.1902\n", - "Epoch 69/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 6.5882e-06 - pixel_error: 0.1520 - val_loss: 1.8902e-05 - val_pixel_error: 0.1815\n", - "Epoch 70/250\n", - "15/15 [==============================] - 0s 33ms/step - loss: 6.3544e-06 - pixel_error: 0.1428 - val_loss: 1.0272e-05 - val_pixel_error: 0.1480\n", - "Epoch 71/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 5.6043e-06 - pixel_error: 0.1428 - val_loss: 1.2553e-05 - val_pixel_error: 0.1750\n", - "Epoch 72/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 5.4434e-06 - pixel_error: 0.1408 - val_loss: 1.0125e-05 - val_pixel_error: 0.1582\n", - "Epoch 73/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 5.0608e-06 - pixel_error: 0.1339 - val_loss: 1.2165e-05 - val_pixel_error: 0.1857\n", - "Epoch 74/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 6.7990e-06 - pixel_error: 0.1590 - val_loss: 1.0973e-05 - val_pixel_error: 0.1511\n", - "Epoch 75/250\n", - "15/15 [==============================] - 0s 32ms/step - loss: 3.8669e-06 - pixel_error: 0.1175 - val_loss: 1.0188e-05 - val_pixel_error: 0.1619\n", - "Epoch 76/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 4.1854e-06 - pixel_error: 0.1248 - val_loss: 9.8436e-06 - val_pixel_error: 0.1572\n", - "Epoch 77/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 3.5623e-06 - pixel_error: 0.1135 - val_loss: 1.0369e-05 - val_pixel_error: 0.1746\n", - "Epoch 78/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 3.6182e-06 - pixel_error: 0.1158 - val_loss: 8.6271e-06 - val_pixel_error: 0.1324\n", - "Epoch 79/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.1375e-06 - pixel_error: 0.1064 - val_loss: 1.0520e-05 - val_pixel_error: 0.1442\n", - "Epoch 80/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.5666e-06 - pixel_error: 0.1152 - val_loss: 1.0114e-05 - val_pixel_error: 0.1533\n", - "Epoch 81/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 3.6339e-06 - pixel_error: 0.1153 - val_loss: 1.0926e-05 - val_pixel_error: 0.1490\n", - "Epoch 82/250\n", - "15/15 [==============================] - 1s 28ms/step - loss: 3.6545e-06 - pixel_error: 0.1178 - val_loss: 9.2072e-06 - val_pixel_error: 0.1379\n", - "Epoch 83/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.6701e-06 - pixel_error: 0.1187 - val_loss: 1.1505e-05 - val_pixel_error: 0.1672\n", - "Epoch 84/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 3.0225e-06 - pixel_error: 0.1054 - val_loss: 9.7525e-06 - val_pixel_error: 0.1309\n", - "Epoch 85/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 2.3899e-06 - pixel_error: 0.0941 - val_loss: 1.0036e-05 - val_pixel_error: 0.1523\n", - "Epoch 86/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.2676e-06 - pixel_error: 0.0910 - val_loss: 1.0086e-05 - val_pixel_error: 0.1346\n", - "Epoch 87/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 2.0701e-06 - pixel_error: 0.0872 - val_loss: 9.3856e-06 - val_pixel_error: 0.1314\n", - "Epoch 88/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 2.1661e-06 - pixel_error: 0.0896 - val_loss: 1.0162e-05 - val_pixel_error: 0.1396\n", - "Epoch 89/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 1.9752e-06 - pixel_error: 0.0858 - val_loss: 9.0896e-06 - val_pixel_error: 0.1337\n", - "Epoch 90/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 2.2199e-06 - pixel_error: 0.0922 - val_loss: 9.6267e-06 - val_pixel_error: 0.1400\n", - "Epoch 91/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.4130e-06 - pixel_error: 0.0934 - val_loss: 1.0864e-05 - val_pixel_error: 0.1414\n", - "Epoch 92/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.7422e-06 - pixel_error: 0.0970 - val_loss: 1.0303e-05 - val_pixel_error: 0.1358\n", - "Epoch 93/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 3.4587e-06 - pixel_error: 0.1084 - val_loss: 1.0109e-05 - val_pixel_error: 0.1436\n", - "Epoch 94/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 4.5100e-06 - pixel_error: 0.1262 - val_loss: 1.3133e-05 - val_pixel_error: 0.1722\n", - "Epoch 95/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 4.5408e-06 - pixel_error: 0.1285 - val_loss: 1.3575e-05 - val_pixel_error: 0.1831\n", - "Epoch 96/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 4.2682e-06 - pixel_error: 0.1210 - val_loss: 1.2351e-05 - val_pixel_error: 0.1471\n", - "Epoch 97/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 4.2937e-06 - pixel_error: 0.1164 - val_loss: 1.0659e-05 - val_pixel_error: 0.1379\n", - "Epoch 98/250\n", - "15/15 [==============================] - 1s 34ms/step - loss: 4.0562e-06 - pixel_error: 0.1139 - val_loss: 1.1458e-05 - val_pixel_error: 0.1562\n", - "Epoch 99/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 3.8462e-06 - pixel_error: 0.1172 - val_loss: 9.8971e-06 - val_pixel_error: 0.1426\n", - "Epoch 100/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 3.2203e-06 - pixel_error: 0.1070 - val_loss: 1.1237e-05 - val_pixel_error: 0.1729\n", - "Epoch 101/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 3.3677e-06 - pixel_error: 0.1086 - val_loss: 1.1017e-05 - val_pixel_error: 0.1682\n", - "Epoch 102/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.2241e-06 - pixel_error: 0.1077 - val_loss: 1.2114e-05 - val_pixel_error: 0.1505\n", - "Epoch 103/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 3.0551e-06 - pixel_error: 0.1025 - val_loss: 9.8671e-06 - val_pixel_error: 0.1556\n", - "Epoch 104/250\n", - "15/15 [==============================] - 0s 27ms/step - loss: 3.1907e-06 - pixel_error: 0.1069 - val_loss: 1.1201e-05 - val_pixel_error: 0.1577\n", - "Epoch 105/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 4.1720e-06 - pixel_error: 0.1241 - val_loss: 9.3723e-06 - val_pixel_error: 0.1650\n", - "Epoch 106/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 4.4014e-06 - pixel_error: 0.1277 - val_loss: 1.3894e-05 - val_pixel_error: 0.1933\n", - "Epoch 107/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 4.7520e-06 - pixel_error: 0.1331 - val_loss: 1.0801e-05 - val_pixel_error: 0.1810\n", - "Epoch 108/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 3.7241e-06 - pixel_error: 0.1152 - val_loss: 1.0713e-05 - val_pixel_error: 0.1558\n", - "Epoch 109/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 3.3055e-06 - pixel_error: 0.1099 - val_loss: 8.5083e-06 - val_pixel_error: 0.1397\n", - "Epoch 110/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.4471e-06 - pixel_error: 0.0933 - val_loss: 7.8698e-06 - val_pixel_error: 0.1331\n", - "Epoch 111/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 2.4328e-06 - pixel_error: 0.0944 - val_loss: 7.7248e-06 - val_pixel_error: 0.1317\n", - "Epoch 112/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 2.8907e-06 - pixel_error: 0.1046 - val_loss: 9.4337e-06 - val_pixel_error: 0.1299\n", - "Epoch 113/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 3.0501e-06 - pixel_error: 0.1074 - val_loss: 8.4650e-06 - val_pixel_error: 0.1324\n", - "Epoch 114/250\n", - "15/15 [==============================] - 1s 33ms/step - loss: 2.2703e-06 - pixel_error: 0.0918 - val_loss: 9.1721e-06 - val_pixel_error: 0.1298\n", - "Epoch 115/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 2.2686e-06 - pixel_error: 0.0920 - val_loss: 9.3033e-06 - val_pixel_error: 0.1427\n", - "Epoch 116/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 2.1954e-06 - pixel_error: 0.0895 - val_loss: 7.6707e-06 - val_pixel_error: 0.1270\n", - "Epoch 117/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.3452e-06 - pixel_error: 0.0915 - val_loss: 7.4559e-06 - val_pixel_error: 0.1266\n", - "Epoch 118/250\n", - "15/15 [==============================] - 1s 42ms/step - loss: 2.5111e-06 - pixel_error: 0.0874 - val_loss: 6.3885e-06 - val_pixel_error: 0.1207\n", - "Epoch 119/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.4896e-06 - pixel_error: 0.0906 - val_loss: 6.4136e-06 - val_pixel_error: 0.1196\n", - "Epoch 120/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.8837e-06 - pixel_error: 0.0989 - val_loss: 5.7658e-06 - val_pixel_error: 0.1216\n", - "Epoch 121/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.5629e-06 - pixel_error: 0.0919 - val_loss: 5.2348e-06 - val_pixel_error: 0.1306\n", - "Epoch 122/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 3.1230e-06 - pixel_error: 0.1059 - val_loss: 6.3768e-06 - val_pixel_error: 0.1487\n", - "Epoch 123/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 3.9540e-06 - pixel_error: 0.1228 - val_loss: 4.4599e-06 - val_pixel_error: 0.1108\n", - "Epoch 124/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 2.5788e-06 - pixel_error: 0.0957 - val_loss: 5.0195e-06 - val_pixel_error: 0.1271\n", - "Epoch 125/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 8.1490e-06 - pixel_error: 0.1475 - val_loss: 9.8304e-06 - val_pixel_error: 0.1822\n", - "Epoch 126/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 8.9633e-06 - pixel_error: 0.1772 - val_loss: 1.0622e-05 - val_pixel_error: 0.1603\n", - "Epoch 127/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 6.1088e-06 - pixel_error: 0.1504 - val_loss: 7.5003e-06 - val_pixel_error: 0.1368\n", - "Epoch 128/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 4.7418e-06 - pixel_error: 0.1310 - val_loss: 7.1705e-06 - val_pixel_error: 0.1552\n", - "Epoch 129/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 3.9840e-06 - pixel_error: 0.1175 - val_loss: 1.1678e-05 - val_pixel_error: 0.1460\n", - "Epoch 130/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 5.3478e-06 - pixel_error: 0.1246 - val_loss: 8.8417e-06 - val_pixel_error: 0.1565\n", - "Epoch 131/250\n", - "15/15 [==============================] - 1s 34ms/step - loss: 4.9904e-06 - pixel_error: 0.1285 - val_loss: 8.4111e-06 - val_pixel_error: 0.1685\n", - "Epoch 132/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 4.7955e-06 - pixel_error: 0.1343 - val_loss: 6.7845e-06 - val_pixel_error: 0.1487\n", - "Epoch 133/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 3.3907e-06 - pixel_error: 0.1089 - val_loss: 5.9403e-06 - val_pixel_error: 0.1270\n", - "Epoch 134/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.1255e-06 - pixel_error: 0.1043 - val_loss: 7.0542e-06 - val_pixel_error: 0.1549\n", - "Epoch 135/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 3.4219e-06 - pixel_error: 0.1118 - val_loss: 6.9392e-06 - val_pixel_error: 0.1451\n", - "Epoch 136/250\n", - "15/15 [==============================] - 0s 26ms/step - loss: 2.9780e-06 - pixel_error: 0.1046 - val_loss: 5.7588e-06 - val_pixel_error: 0.1285\n", - "Epoch 137/250\n", - "15/15 [==============================] - 0s 27ms/step - loss: 2.6487e-06 - pixel_error: 0.0963 - val_loss: 5.6203e-06 - val_pixel_error: 0.1160\n", - "Epoch 138/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.1706e-06 - pixel_error: 0.0862 - val_loss: 5.0523e-06 - val_pixel_error: 0.1242\n", - "Epoch 139/250\n", - "15/15 [==============================] - 0s 17ms/step - loss: 2.2500e-06 - pixel_error: 0.0911 - val_loss: 5.0690e-06 - val_pixel_error: 0.1149\n", - "Epoch 140/250\n", - "15/15 [==============================] - 0s 6ms/step - loss: 1.7891e-06 - pixel_error: 0.0812 - val_loss: 4.4571e-06 - val_pixel_error: 0.1064\n", - "Epoch 141/250\n", - "15/15 [==============================] - 0s 11ms/step - loss: 1.8296e-06 - pixel_error: 0.0826 - val_loss: 4.0510e-06 - val_pixel_error: 0.1009\n", - "Epoch 142/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.5766e-06 - pixel_error: 0.0757 - val_loss: 4.9803e-06 - val_pixel_error: 0.1110\n", - "Epoch 143/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 2.9056e-06 - pixel_error: 0.0992 - val_loss: 5.0983e-06 - val_pixel_error: 0.1259\n", - "Epoch 144/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 3.3747e-06 - pixel_error: 0.1067 - val_loss: 4.1659e-06 - val_pixel_error: 0.1097\n", - "Epoch 145/250\n", - "15/15 [==============================] - 0s 6ms/step - loss: 2.8323e-06 - pixel_error: 0.0943 - val_loss: 6.1719e-06 - val_pixel_error: 0.1312\n", - "Epoch 146/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 2.7529e-06 - pixel_error: 0.0967 - val_loss: 5.8310e-06 - val_pixel_error: 0.1374\n", - "Epoch 147/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 3.4087e-06 - pixel_error: 0.1103 - val_loss: 5.2910e-06 - val_pixel_error: 0.1214\n", - "Epoch 148/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.9004e-06 - pixel_error: 0.0980 - val_loss: 4.5106e-06 - val_pixel_error: 0.1131\n", - "Epoch 149/250\n", - "15/15 [==============================] - 1s 40ms/step - loss: 3.2610e-06 - pixel_error: 0.1077 - val_loss: 4.8397e-06 - val_pixel_error: 0.1268\n", - "Epoch 150/250\n", - "15/15 [==============================] - 0s 32ms/step - loss: 3.4867e-06 - pixel_error: 0.1160 - val_loss: 5.1927e-06 - val_pixel_error: 0.1344\n", - "Epoch 151/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 3.0300e-06 - pixel_error: 0.1061 - val_loss: 3.5412e-06 - val_pixel_error: 0.0991\n", - "Epoch 152/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 2.6018e-06 - pixel_error: 0.0988 - val_loss: 4.9222e-06 - val_pixel_error: 0.1260\n", - "Epoch 153/250\n", - "15/15 [==============================] - 0s 33ms/step - loss: 2.8628e-06 - pixel_error: 0.1019 - val_loss: 3.2590e-06 - val_pixel_error: 0.0953\n", - "Epoch 154/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.4041e-06 - pixel_error: 0.0933 - val_loss: 3.9361e-06 - val_pixel_error: 0.1039\n", - "Epoch 155/250\n", - "15/15 [==============================] - 0s 26ms/step - loss: 1.8998e-06 - pixel_error: 0.0826 - val_loss: 3.5383e-06 - val_pixel_error: 0.0999\n", - "Epoch 156/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.1767e-06 - pixel_error: 0.0898 - val_loss: 3.9542e-06 - val_pixel_error: 0.1111\n", - "Epoch 157/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 2.3564e-06 - pixel_error: 0.0958 - val_loss: 3.7837e-06 - val_pixel_error: 0.0986\n", - "Epoch 158/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.6538e-06 - pixel_error: 0.0786 - val_loss: 3.5803e-06 - val_pixel_error: 0.0987\n", - "Epoch 159/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.7865e-06 - pixel_error: 0.0820 - val_loss: 3.5408e-06 - val_pixel_error: 0.1002\n", - "Epoch 160/250\n", - "15/15 [==============================] - 1s 31ms/step - loss: 1.6430e-06 - pixel_error: 0.0776 - val_loss: 3.6171e-06 - val_pixel_error: 0.0989\n", - "Epoch 161/250\n", - "15/15 [==============================] - 0s 26ms/step - loss: 1.9331e-06 - pixel_error: 0.0863 - val_loss: 3.5091e-06 - val_pixel_error: 0.1052\n", - "Epoch 162/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.9944e-06 - pixel_error: 0.0873 - val_loss: 3.2378e-06 - val_pixel_error: 0.0942\n", - "Epoch 163/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 1.8029e-06 - pixel_error: 0.0836 - val_loss: 3.6552e-06 - val_pixel_error: 0.1036\n", - "Epoch 164/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 1.5712e-06 - pixel_error: 0.0774 - val_loss: 3.5098e-06 - val_pixel_error: 0.0971\n", - "Epoch 165/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.6388e-06 - pixel_error: 0.0792 - val_loss: 3.5814e-06 - val_pixel_error: 0.0967\n", - "Epoch 166/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 1.6081e-06 - pixel_error: 0.0784 - val_loss: 4.2741e-06 - val_pixel_error: 0.1163\n", - "Epoch 167/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 1.9462e-06 - pixel_error: 0.0851 - val_loss: 4.0566e-06 - val_pixel_error: 0.1124\n", - "Epoch 168/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.8384e-06 - pixel_error: 0.0835 - val_loss: 3.6357e-06 - val_pixel_error: 0.1086\n", - "Epoch 169/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.9604e-06 - pixel_error: 0.0861 - val_loss: 4.3981e-06 - val_pixel_error: 0.1199\n", - "Epoch 170/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 2.1545e-06 - pixel_error: 0.0915 - val_loss: 3.9779e-06 - val_pixel_error: 0.1064\n", - "Epoch 171/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.4991e-06 - pixel_error: 0.0973 - val_loss: 4.0265e-06 - val_pixel_error: 0.1136\n", - "Epoch 172/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 2.9934e-06 - pixel_error: 0.0982 - val_loss: 5.8044e-06 - val_pixel_error: 0.1472\n", - "Epoch 173/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 3.2872e-06 - pixel_error: 0.1097 - val_loss: 4.9825e-06 - val_pixel_error: 0.1191\n", - "Epoch 174/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 3.0545e-06 - pixel_error: 0.1066 - val_loss: 4.4304e-06 - val_pixel_error: 0.1237\n", - "Epoch 175/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 3.3778e-06 - pixel_error: 0.1067 - val_loss: 2.9174e-06 - val_pixel_error: 0.0899\n", - "Epoch 176/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 3.3128e-06 - pixel_error: 0.1095 - val_loss: 3.5187e-06 - val_pixel_error: 0.1051\n", - "Epoch 177/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 3.3645e-06 - pixel_error: 0.1101 - val_loss: 4.0165e-06 - val_pixel_error: 0.1126\n", - "Epoch 178/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.8522e-06 - pixel_error: 0.1016 - val_loss: 3.9981e-06 - val_pixel_error: 0.1038\n", - "Epoch 179/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.8667e-06 - pixel_error: 0.1036 - val_loss: 5.4430e-06 - val_pixel_error: 0.1403\n", - "Epoch 180/250\n", - "15/15 [==============================] - 0s 26ms/step - loss: 3.7177e-06 - pixel_error: 0.1170 - val_loss: 4.6635e-06 - val_pixel_error: 0.1289\n", - "Epoch 181/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.3595e-06 - pixel_error: 0.1096 - val_loss: 4.9066e-06 - val_pixel_error: 0.1337\n", - "Epoch 182/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.7074e-06 - pixel_error: 0.0974 - val_loss: 4.3886e-06 - val_pixel_error: 0.1086\n", - "Epoch 183/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 2.6258e-06 - pixel_error: 0.0983 - val_loss: 4.2692e-06 - val_pixel_error: 0.1214\n", - "Epoch 184/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 2.0227e-06 - pixel_error: 0.0867 - val_loss: 3.2884e-06 - val_pixel_error: 0.0991\n", - "Epoch 185/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.0090e-06 - pixel_error: 0.0860 - val_loss: 3.5283e-06 - val_pixel_error: 0.1061\n", - "Epoch 186/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 2.0063e-06 - pixel_error: 0.0863 - val_loss: 3.4584e-06 - val_pixel_error: 0.1050\n", - "Epoch 187/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.4740e-06 - pixel_error: 0.0956 - val_loss: 4.0184e-06 - val_pixel_error: 0.1192\n", - "Epoch 188/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.1507e-06 - pixel_error: 0.0891 - val_loss: 3.1599e-06 - val_pixel_error: 0.0970\n", - "Epoch 189/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 2.1487e-06 - pixel_error: 0.0870 - val_loss: 3.9209e-06 - val_pixel_error: 0.1052\n", - "Epoch 190/250\n", - "15/15 [==============================] - 0s 26ms/step - loss: 2.4952e-06 - pixel_error: 0.0956 - val_loss: 4.6875e-06 - val_pixel_error: 0.1331\n", - "Epoch 191/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.6430e-06 - pixel_error: 0.1153 - val_loss: 4.0159e-06 - val_pixel_error: 0.1078\n", - "Epoch 192/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 3.0871e-06 - pixel_error: 0.1023 - val_loss: 4.1708e-06 - val_pixel_error: 0.1148\n", - "Epoch 193/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 4.9780e-06 - pixel_error: 0.1378 - val_loss: 4.8898e-06 - val_pixel_error: 0.1316\n", - "Epoch 194/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 2.2225e-06 - pixel_error: 0.0906 - val_loss: 3.9304e-06 - val_pixel_error: 0.1057\n", - "Epoch 195/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.8668e-06 - pixel_error: 0.0961 - val_loss: 5.7526e-06 - val_pixel_error: 0.1542\n", - "Epoch 196/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 4.2370e-06 - pixel_error: 0.1203 - val_loss: 6.1577e-06 - val_pixel_error: 0.1522\n", - "Epoch 197/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 5.1794e-06 - pixel_error: 0.1409 - val_loss: 6.5238e-06 - val_pixel_error: 0.1474\n", - "Epoch 198/250\n", - "15/15 [==============================] - 1s 42ms/step - loss: 5.3248e-06 - pixel_error: 0.1437 - val_loss: 6.0847e-06 - val_pixel_error: 0.1434\n", - "Epoch 199/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 4.3674e-06 - pixel_error: 0.1312 - val_loss: 7.3619e-06 - val_pixel_error: 0.1620\n", - "Epoch 200/250\n", - "15/15 [==============================] - 1s 40ms/step - loss: 3.9579e-06 - pixel_error: 0.1234 - val_loss: 4.6213e-06 - val_pixel_error: 0.1218\n", - "Epoch 201/250\n", - "15/15 [==============================] - 1s 39ms/step - loss: 3.0311e-06 - pixel_error: 0.1060 - val_loss: 3.8859e-06 - val_pixel_error: 0.1044\n", - "Epoch 202/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.8213e-06 - pixel_error: 0.1013 - val_loss: 4.6032e-06 - val_pixel_error: 0.1169\n", - "Epoch 203/250\n", - "15/15 [==============================] - 0s 28ms/step - loss: 2.9346e-06 - pixel_error: 0.1008 - val_loss: 3.9858e-06 - val_pixel_error: 0.1085\n", - "Epoch 204/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 3.4698e-06 - pixel_error: 0.1105 - val_loss: 6.1462e-06 - val_pixel_error: 0.1355\n", - "Epoch 205/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 3.3648e-06 - pixel_error: 0.1073 - val_loss: 4.0396e-06 - val_pixel_error: 0.1143\n", - "Epoch 206/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 3.0023e-06 - pixel_error: 0.1049 - val_loss: 3.5946e-06 - val_pixel_error: 0.1091\n", - "Epoch 207/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 3.3773e-06 - pixel_error: 0.1090 - val_loss: 4.8135e-06 - val_pixel_error: 0.1135\n", - "Epoch 208/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 3.8650e-06 - pixel_error: 0.1201 - val_loss: 4.8167e-06 - val_pixel_error: 0.1247\n", - "Epoch 209/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 3.6807e-06 - pixel_error: 0.1188 - val_loss: 4.6940e-06 - val_pixel_error: 0.1251\n", - "Epoch 210/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 3.4131e-06 - pixel_error: 0.1147 - val_loss: 4.8330e-06 - val_pixel_error: 0.1252\n", - "Epoch 211/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 2.9450e-06 - pixel_error: 0.1080 - val_loss: 3.2747e-06 - val_pixel_error: 0.0924\n", - "Epoch 212/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 1.9086e-06 - pixel_error: 0.0842 - val_loss: 4.3691e-06 - val_pixel_error: 0.1259\n", - "Epoch 213/250\n", - "15/15 [==============================] - 0s 23ms/step - loss: 2.1262e-06 - pixel_error: 0.0906 - val_loss: 3.1346e-06 - val_pixel_error: 0.0947\n", - "Epoch 214/250\n", - "15/15 [==============================] - 1s 38ms/step - loss: 2.0843e-06 - pixel_error: 0.0886 - val_loss: 3.3668e-06 - val_pixel_error: 0.0996\n", - "Epoch 215/250\n", - "15/15 [==============================] - 0s 30ms/step - loss: 1.8478e-06 - pixel_error: 0.0825 - val_loss: 2.9667e-06 - val_pixel_error: 0.0871\n", - "Epoch 216/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.6879e-06 - pixel_error: 0.0790 - val_loss: 3.3386e-06 - val_pixel_error: 0.0992\n", - "Epoch 217/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.7894e-06 - pixel_error: 0.0833 - val_loss: 3.0499e-06 - val_pixel_error: 0.0909\n", - "Epoch 218/250\n", - "15/15 [==============================] - 0s 31ms/step - loss: 2.0485e-06 - pixel_error: 0.0876 - val_loss: 2.9759e-06 - val_pixel_error: 0.0920\n", - "Epoch 219/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.9134e-06 - pixel_error: 0.0864 - val_loss: 3.6668e-06 - val_pixel_error: 0.1085\n", - "Epoch 220/250\n", - "15/15 [==============================] - 0s 24ms/step - loss: 1.8068e-06 - pixel_error: 0.0833 - val_loss: 3.2944e-06 - val_pixel_error: 0.0972\n", - "Epoch 221/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 2.0132e-06 - pixel_error: 0.0892 - val_loss: 3.2424e-06 - val_pixel_error: 0.1032\n", - "Epoch 222/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.3676e-06 - pixel_error: 0.0719 - val_loss: 2.7122e-06 - val_pixel_error: 0.0861\n", - "Epoch 223/250\n", - "15/15 [==============================] - 1s 35ms/step - loss: 1.4266e-06 - pixel_error: 0.0726 - val_loss: 2.9089e-06 - val_pixel_error: 0.0944\n", - "Epoch 224/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.5277e-06 - pixel_error: 0.0749 - val_loss: 3.3312e-06 - val_pixel_error: 0.1038\n", - "Epoch 225/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.7447e-06 - pixel_error: 0.0819 - val_loss: 3.2504e-06 - val_pixel_error: 0.1009\n", - "Epoch 226/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 1.7818e-06 - pixel_error: 0.0811 - val_loss: 3.0442e-06 - val_pixel_error: 0.0918\n", - "Epoch 227/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 1.6679e-06 - pixel_error: 0.0774 - val_loss: 2.9479e-06 - val_pixel_error: 0.0968\n", - "Epoch 228/250\n", - "15/15 [==============================] - 0s 29ms/step - loss: 1.8140e-06 - pixel_error: 0.0784 - val_loss: 3.5870e-06 - val_pixel_error: 0.1063\n", - "Epoch 229/250\n", - "15/15 [==============================] - 1s 37ms/step - loss: 2.9484e-06 - pixel_error: 0.0988 - val_loss: 4.6449e-06 - val_pixel_error: 0.1086\n", - "Epoch 230/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 2.8687e-06 - pixel_error: 0.1028 - val_loss: 3.6940e-06 - val_pixel_error: 0.1067\n", - "Epoch 231/250\n", - "15/15 [==============================] - 1s 34ms/step - loss: 2.2262e-06 - pixel_error: 0.0889 - val_loss: 3.1824e-06 - val_pixel_error: 0.0983\n", - "Epoch 232/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 2.2042e-06 - pixel_error: 0.0886 - val_loss: 3.2113e-06 - val_pixel_error: 0.1000\n", - "Epoch 233/250\n", - "15/15 [==============================] - 1s 41ms/step - loss: 1.7296e-06 - pixel_error: 0.0784 - val_loss: 2.8556e-06 - val_pixel_error: 0.0927\n", - "Epoch 234/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.6004e-06 - pixel_error: 0.0751 - val_loss: 3.1331e-06 - val_pixel_error: 0.0986\n", - "Epoch 235/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.6648e-06 - pixel_error: 0.0785 - val_loss: 2.6895e-06 - val_pixel_error: 0.0905\n", - "Epoch 236/250\n", - "15/15 [==============================] - 0s 19ms/step - loss: 1.9118e-06 - pixel_error: 0.0793 - val_loss: 4.4535e-06 - val_pixel_error: 0.1156\n", - "Epoch 237/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 2.4843e-06 - pixel_error: 0.0962 - val_loss: 3.8513e-06 - val_pixel_error: 0.1178\n", - "Epoch 238/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 2.6221e-06 - pixel_error: 0.1002 - val_loss: 4.0366e-06 - val_pixel_error: 0.1135\n", - "Epoch 239/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 2.7419e-06 - pixel_error: 0.1040 - val_loss: 3.3747e-06 - val_pixel_error: 0.1074\n", - "Epoch 240/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.7873e-06 - pixel_error: 0.0818 - val_loss: 3.2266e-06 - val_pixel_error: 0.0989\n", - "Epoch 241/250\n", - "15/15 [==============================] - 1s 36ms/step - loss: 1.3829e-06 - pixel_error: 0.0716 - val_loss: 2.7855e-06 - val_pixel_error: 0.0889\n", - "Epoch 242/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.2346e-06 - pixel_error: 0.0677 - val_loss: 3.1284e-06 - val_pixel_error: 0.0901\n", - "Epoch 243/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.3413e-06 - pixel_error: 0.0689 - val_loss: 3.5255e-06 - val_pixel_error: 0.0967\n", - "Epoch 244/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.7344e-06 - pixel_error: 0.0782 - val_loss: 3.3234e-06 - val_pixel_error: 0.1018\n", - "Epoch 245/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.5913e-06 - pixel_error: 0.0789 - val_loss: 3.7795e-06 - val_pixel_error: 0.1102\n", - "Epoch 246/250\n", - "15/15 [==============================] - 0s 20ms/step - loss: 1.7800e-06 - pixel_error: 0.0820 - val_loss: 3.8597e-06 - val_pixel_error: 0.1137\n", - "Epoch 247/250\n", - "15/15 [==============================] - 0s 21ms/step - loss: 1.5677e-06 - pixel_error: 0.0777 - val_loss: 3.3133e-06 - val_pixel_error: 0.0982\n", - "Epoch 248/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.4396e-06 - pixel_error: 0.0733 - val_loss: 3.1527e-06 - val_pixel_error: 0.0955\n", - "Epoch 249/250\n", - "15/15 [==============================] - 0s 25ms/step - loss: 1.5241e-06 - pixel_error: 0.0770 - val_loss: 3.4084e-06 - val_pixel_error: 0.0992\n", - "Epoch 250/250\n", - "15/15 [==============================] - 0s 22ms/step - loss: 1.2053e-06 - pixel_error: 0.0664 - val_loss: 3.1460e-06 - val_pixel_error: 0.0928\n", - " \r" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "TRAIN_MODEL = True\n", - "\n", - "from tensorflow.keras.callbacks import EarlyStopping\n", - "\n", - "validation_set_size = 200\n", - "validation_set = [data_pipeline.update().resolve() for _ in range(validation_set_size)]\n", - "validation_labels = [get_label(image) for image in validation_set]\n", - "\n", - "if TRAIN_MODEL:\n", - " generator = dt.generators.ContinuousGenerator(\n", - " data_pipeline & (data_pipeline >> get_label),\n", - " min_data_size=int(1e3),\n", - " max_data_size=int(2e3),\n", - " batch_size=64,\n", - " max_epochs_per_sample=25\n", - " )\n", - "\n", - " histories = []\n", - "\n", - " with generator:\n", - " h = model.fit(\n", - " generator,\n", - " validation_data=(\n", - " np.array(validation_set), \n", - " np.array(validation_labels)\n", - " ),\n", - " epochs=250\n", - " )\n", - "\n", - " plt.plot(h.history[\"loss\"], 'g')\n", - " plt.plot(h.history[\"val_loss\"], 'r')\n", - " plt.legend([\"loss\", \"val_loss\"])\n", - " plt.yscale('log')\n", - " plt.show()\n", - " \n", - "else:\n", - " model_path = datasets.load_model(\"ParticleTracking\")\n", - " model.load_weights(model_path)" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "validation_prediction = model.predict(np.array(validation_set))\n", + "labels = np.array(validation_labels)\n", + "for col in range(validation_prediction.shape[-1]):\n", + " label_col = labels[:, col]\n", + " prediction_col = validation_prediction[:, col]\n", + " plt.scatter(label_col, prediction_col, alpha=0.1)\n", + " \n", + " plt.plot([np.min(label_col), np.max(label_col)], \n", + " [np.min(label_col), np.max(label_col)], c='k')\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.3 Prediction vs property value\n", + "\n", + "We show the the pixel error as a function of some properties." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:57:48.779035Z", + "iopub.status.busy": "2022-06-30T10:57:48.779035Z", + "iopub.status.idle": "2022-06-30T10:57:50.211034Z", + "shell.execute_reply": "2022-06-30T10:57:50.210534Z" }, + "scrolled": true + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5. Evaluating the network" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 0s 2ms/step\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5.1 Prediction vs actual\n", - "\n", - "We show the prediction of each output versus the ground truth" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:57:48.497035Z", - "iopub.status.busy": "2022-06-30T10:57:48.496534Z", - "iopub.status.idle": "2022-06-30T10:57:48.776035Z", - "shell.execute_reply": "2022-06-30T10:57:48.776035Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7/7 [==============================] - 0s 3ms/step\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "validation_prediction = model.predict(np.array(validation_set))\n", - "labels = np.array(validation_labels)\n", - "for col in range(validation_prediction.shape[-1]):\n", - " label_col = labels[:, col]\n", - " prediction_col = validation_prediction[:, col]\n", - " plt.scatter(label_col, prediction_col, alpha=0.1)\n", - " \n", - " plt.plot([np.min(label_col), np.max(label_col)], \n", - " [np.min(label_col), np.max(label_col)], c='k')\n", - " plt.show()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5.3 Prediction vs property value\n", - "\n", - "We show the the pixel error as a function of some properties." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:57:48.779035Z", - "iopub.status.busy": "2022-06-30T10:57:48.779035Z", - "iopub.status.idle": "2022-06-30T10:57:50.211034Z", - "shell.execute_reply": "2022-06-30T10:57:50.210534Z" - }, - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7/7 [==============================] - 0s 2ms/step\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABYBklEQVR4nO29eZRk2VnY+fveGmvutS9d6m4kkJCQUEuGAYxszCAMEjYGLHkOhrEsWdiGwcCZA+NZ4AAjY4MtY+Mjy5Ys7LGNgeNFArEYY6QZGRlaSEjqbiR1N91dVdlVlZVLZMb21jt/vPeiIiNjz4iMyMj7O6e6MyMjbtz33nfvd++3XVFKodFoNBpNL4xZd0Cj0Wg0841WFBqNRqPpi1YUGo1Go+mLVhQajUaj6YtWFBqNRqPpizXrDkyDjY0NdePGjVl340zhhTGGAEjbq4pYgWst1nrkE5/4xH2l1LmT/t619Q117fpDba8s5v3VzI5esr2QiuLGjRs8/vjjs+7GTGgGEdtVDy+McS2D9ZJLzjan/r23d+vECpy2SctPlceV1cLUv/8kEZHnZ/G9V69d5zc/8rHW7/Nyf2clc5rJ00u29VIkpRlE3N6t8+xWldu7dZpBNOsujUx2DbGCgmMSK07sWtZLLn4Y4YcxSin8MMYPI9ZL7tS/+6ygYO7u70nJ3CKMz9OMVhTMdoKdJNtVD8cycSwDEcGxDBzLZLvqTf27c7bJldUChkDdj1orXb2ynByOaczd/T0JmVuU8XmaWUjT06i0CzuAY0nr9Vlv60fBC2MKzuGJwzaFun8yAypTFprpIHNgZurkJGRuUcbnaWahFIWIvAl406OPPjrS52Y9wU4K1zI4aIbUvBA/inFMg6JrHbk2zeliXLk+CU5C5hZlfJ5mFsr0pJT6kFLqHcvLyyN9zrUMguhwzasgUqcumqToWtzaqeGHMTnLwA9jbu3UKLoLtR44c4wr1yfBScjcoozP04y+0yyOI7bmhVxbK+LaBs0wxrUNrq0VqXnhrLumWVBOQuYWZXyeZvRSkwe29e2qR92PcC1jLhyFo+KFMaWcRTlvt15TSuktumZqnITMLcr4PM1oRZGyCI7YbIueOftAb9E10+WkZG4RxudpRiuKEZnn5KL1ksvt3TqQOPuCSOGHkR5gmqkxrzI3z+P0NKKXmiMw7/HcOpdBc9LMo8zN+zg9jegdxQichnjuaW3R9QpNc1o4DeP0tKF3FCPghTG2KYdes03BC+MZ9ehk0Cs0TS/mUTbO6jidJnpHMQJn1VmsV2iHd1SYtj34E2eDeZSNszpOh2Fcy4BWFCMwr467aXPWM2ObQcSz9w6oBRFxrBDTcmbdp3lhHmXjrI7TQXTKsWEIlbrPw+fLA5WFVrEjMI+Ou5PgrGfGbu7W2akHWIZBwbEgKeSqYT5l46yO00F0yrFlGOzUAzZTpdqPhdpRnERNnLMYz33WV2j3DjwKjoltppOfUieqKOa51tO8ysZZHKeD6JRj2xQKjsm9A4+Hz5f7fnahloTTrolzVmvin/UVmlJqpnuIk671NIqcn3XZOE10lWM13LpnoXYU0yQbPI5lUnBMgkhxe7d+ZgbFWV6hXVjOs7lXR0SwTAERGfyp08k4cn6WZeM00SnHYaSoByGXVwY/u4VUFF4Yc3u33ioaNon4/3mM7tCcDJdX8jSCiLoX4if2+IVVFGddzhc5X6hTjg0RCmmV32e3qolfqcciaKFMTxmGQKzgma0qz947mEiMt47NPrvkbJNHzpW4vJLnXDmHikJ/1n2aFmdZzucxJ2SSdMrxetHBtRKfRXa9YtpdI/oWckcByZGMdS8EgfXy8VdHOjb7bHPIvBIFwWx7Mz3Ospyfhd1Uuxzf3q1jd1yv6uGwWFBFkRB3cd6MG+M9ieiORd7WTgJ9f2bPvEYxTVM2srafvnfAUs5mra3tWeeETJNuOTDQXVEs9DLBEMEwDm+jx10dHTe6Y9G3tcdF35/5YB6jmKYpG+1tL+dtgkhxp9Jotb3Iu6luOTDJyexHWdAdRXIKVsG1kPRErEmsjo4T3XEWtrXHYd7uz1ne3cxbFNM0ZaO97dWiy51KE0HYqXpslHNzsZs6Dv3kuNvuUc6SMztWiUP7kXMlHj5fnovV0Vl2Eg7DPN0fvbuZL6YpG+1t52yTi8s5HEvYbwZzsZs6DoPkuNvuUUVB10CNhdxRZEclZszDiuAsOwmHYZ7uz7ztbs4605SNzrZztsl6Kce5cu7UP+th5PjI7vEsOrPniXGdhGfFBDJPTlQvjDEEXtzz8KMYxzRYKdgEC1jh6TTI1zRlY57kbtIMU7Cx8/n3yqM4k4piFoNjnAPiT1s2+HHua7KSc3lm64BqM6SUs3jk3OCqltPi1m6domOTt03CSHFrtz5UButp4rTI1zhjZ5S250nuJkmvnRgqec77zZC7ew0s28A2ksAfsZxct7bOnKKY5eAY1Uk4zyaQTqVQdK1Wf8e5r1l758t5rqwkK7vtqkfONk9+0CoFyIP8a0n/c7K1AI8QRHErg3YSi5t5lq9Opn1y41zI3YTptls6aPgoEWzLZL/usVP3sS2DS8s5TMMAw+yqE86cgbx9cIgkiXmOZbJd9WbdtSPMk4O3nW5Osic3KyjF2Pe1/bl4YcxOzeNupckTm3sn70QW4epqHkOgESROvqur+V6RgyeGF8ZU6j51P5qIc31e5eskOU3zwah0c1bnHIulnI1jGWzXApbyya55vxEmVWWV6ipUZ25HMY8HrfRikBNvVvblbitRBVS9gHL+weFvo9zXzC/w/Had27tNCq7JWsGmGcQnbg5xLYNYwcXlfOu1/UbAftPn2S1mdsKdKQIIOzWPtaJ77JX/PAUQDGJSst7Zzn4zZLVw+HHO63wwDp07sade3KdS9wlixU7NY7XgUHQtmgMWBwurKHoJ1iQHx7SEN2unn6Ntlia0bsq2YJvs1gNEGg/MUY5F/kjmZw+U4tZek7of4VhCpR5wc7vO5eUc58u5EzWHdN73g2bIrZ0a19aK2XXPZGvhhzFP3zvAMIVKw+faWokrPd47jGzOsyP30NGzQNMPKeedY8l6tzGzV/OwDGGpbYEzj8pyEnNNM4jYq3mYhkHeMVnNO2zu1Tm3lGcpZxOEMYjRtdH5uhsTQqXxwt3ih9dLLn4Y4YcxKk3G88OoVWl2WCYVa9+vnX5ZsrPcMnfL6LQtg+1qEy+IyVkGXhBzc6dG0R1yLSICKKrNgEotII4VriXEwHa1yX4znPh19KLzvu83fa6tFSnn7TQoZDbOikgpoljR9EL26gF7Na+rvA0rm/OYhQ1H+79d9dipB8RKHUvWu42Zc+UcWwfNY88H02RSc8121UuKWgJhrLiwkmMpb7NT87BNIYxjiMOuA20hdxRhHPd10k0igmJSjsBB7fRy4k3ChDbuKiWJEqlS90JilZQrrnkhX3xpmTBS7DdDGkGIJcIzWwe84vLKUO1eXS1we7eBH8WUHZu1kpMmTxrU/ZOtw9d+35/doktNnNng2ga1ZowXRpzrsdMaRTan7SQeZwXc2X9Fcv/36n7LHDiOeajbmCnlLILIaSnLSUZUTYJmEKV+upiiY7FadFp9G3Wu8cKYUs7Ctgz26j6BgsvLee7te8k4NkCFpzThTkQeBv42sKyU+rZhPhMrujrpMsGaxOCYlK9jUDuTMqFNOkpJlEoMMGmAkB/GlFwLEcELI4pODtOAajMcqt3ML3BltcBBI8C2jOT0LRSxUpRn4xZo9a3zXk+CUWVbBGp+DAJXlguUclZXectkqhlE7NV9vDDGMQXXMrmyOtFL6MpxzaKdY8IxDeJYHXKyj2Me6jVmlvL2XJjbOsnuo+fHlNNn/Zlbe6wUbEquNfLzzK4/yUDP0wwibu7UuH6uyLXVQlLCw7ROPupJRN4vIvdE5LMdr79RRD4nIk+LyA/3a0Mp9axS6m2jfK8hTP3A90kdKt+vnX5bzlFMaJOOUtquepTzDtfXitzYKHF9rchqyWHrwGO35uOYJrZlECko5qyh2s2ux7UNVoo2cQwHXsBK0Waj5B6yIZ80nfcaRGYh24YIl1dyPHq+zFrJ7SlvrmVQbYbcqTSJFeRtEz9U7Nb9E4kgO65ZtHNMrBYd6kGICMcyD03K7HxSZPexmLOoBxG79QDLSMy64zzPzuu/t98EhPPlXOs59SozPm0fxQeAN7a/ICIm8HPANwIvB94qIi8XkVeKyK90/Ds/zpdahjF1gZiU0PVrp9+Ay3ZFQRjx3P0at3ZqPU/o7NZOFqXUzrChkd3CKs+VXGpeSM0PMY0k5t8PY1YKzlDtZtezXnDwgpjVos1rrq9yebmACDMfzEKipP94q5oVTvsAJyzbliGUHAtQFF2rp7ytl1y2DppI+pkwUihUy1Q1bY4bdts5JgwRVosu6wXnWL6USVWAHuYs8UmQ3ceVgsP9Ax+RxPTYCKKxnmfn9UexSsK+gTuVBs9v15AeeRRTNT0ppT4qIjc6Xn498LRS6lkAEfkF4FuUUu8Cvnnc7xKRdwDvALh+/frUMjkzJpUt2q+dYcxbikTYs6iVblv8XlFKde+woA/aEWXmq7uVBpZlsJyzqfsRfhQjwIWlHPUgpNoMKeYsLi7nyNkmflYeYIh78fD5MpfT++GFMfaMHaztZpQbG8XWSvekZLtdri9duYZpQtlxKThmT7t/zjZZKbo0/ZBGEOGYBheX87iWcSJhn8eNLOw2Jh45VzpyreP4QcY1O88iyrDdVLRSsPDCmHozxHW6P89h7kf79buWQcOP2K55OJZB3jbnqoTHFeBm2++3gD/R680isg78JPAaEfmRdNAdQSn1XuC9AI899pg6iVLJk/qOXu0MGnDDOi27tVPK2TSDaOgS7O0D5dJKnme2qnz+zj5LbhIJFMaKh9bzPHKu3OqXbUprhzTKfZqnMtddc0Z6bM+Zgmx3yvVrH1ofqt9LOYuSa7X6DQytsI/LJMJuB8nASU/cs8hib7+PJdfCMRUl1+Licv7IAmzU+9EMIrww5g9v7pKzLS4su6AMTu15FEqpbeCds+7HLBg04IZ1qHdrxxD4ksvL1LxwqB3R4YFi4JoGjSAmjAKuruUpuhY1P2an6i1U7ZxRTgEblWnK9ixzJKZZmynjpCfuWSTqtt9H1zKp+z7nyjlcyziyABvlfrQrlZWCw939Brd2a1xdK0AczU147G3gWtvvV9PXjo2IvAl406OPPjqJ5mbOoAE37Ba/Xzsrha5nqR+hc6BUmiEXl3LsNwOCSFH3IvKOwc2dOgrGqp0zT5VMO81s58u5tr70rOUxFdnO5PrhRx5Jirk1AupBSMGxWcpZfU0M05ys+zHpXeGRjOpGwGrxsOxOc+KeVRZ7dh+vrD64B92e5yiKLFMqsVI0g4i1Yo5zZVBK5qrW0+8DXyQiLxERB3gL8MFJNKyU+pBS6h3Ly8uTaG4uyATl4XOlIwN9FId6v3aGoTMSxQ9itvabmIaQswxipdja97g/ZsTLPB0W1N6XSyt5vCDi5k6dhh/ih3HPU8CYkmxncl0oLdHwIyqNgCiCSt3rW/fpuM98XugmG7t1n2pHEuY0J+55iJjq9zxHicLMnOS7NZ/1kksax0ekYmZyZraI/Fvgd4GXicgtEXmbUioE/ibwG8BTwC8qpZ6YZj8WlZPIrM0G6X4j4Jl7Bzx994Dn7lfZq/tJbSc3CVsV0sxOZKyIl3kqztbel7xjcX4px37T5xPP7XDvoIGKwnAWsi1AzQ9xbZOCa+FaFjUvXJgidr2Yh4zqrKTOvYMGn7uzz72DRmsnd9LRUN1YL7kcNHxe2Knx3P0qL+zUOGj4Xe9HplT8KKboWpxfcomUIlbM5uAipdRbe7z+YeDD0/zuRaOXWWaajt92W2beSbaqWwdN1ksupZyFZQpxHNMIkhj/9ZILirG26JO2AR/HjNXel2YQsVvzuVjOExRjzpfziGlZceCduGyLJH3Lp9dhmUKl7qOUYr+ZhDrP48FDx6WbbJRzFmHsnlhGda9y5PBAkc36TA8lkoRBQpKs2mPjm/mvBKg2A/a9kLoXcWU1Bype/Oqxo/oo5skm3o+TjvDI7ssL27WWfb7SCFgtuqwWXERgKW+z3whohhHLeQfHTLK9TUPww0TWRnGiTrpY43HuV3tfdms+sYKtqkcYK1zr5IsCZnL90EsexrUMwlhhm0nZlEojwLFMlvN2y1x3ms1M3eiZUZ2zTiw6brvqESvY3Ktzv+qDgpWCzd2DJtdWi32dyCcxz2xXPZZySXJqhh/Gfcu2+FHMJ5/fZTnvcHU1h1KCmE7XLdlCFQUcxUcxTzbxQRzXLDPK1rj9vhiGYIpwp9LkoBliGYJlCn6UrGr36j6Vuo9tCEXXwhC4vJIfyxw2ytZ5EMe9X+326O2qxx+9WOHmTh1DkvuD0b3MwbTI5Lq8tEzRsfCCiLoXcv+gSTlvo4DVortQZym0y6wXxhw0/ImYmYYdC53v2zrweHGvzr19Ly2HYnC/2uSZuwdE8WGzarup9aTmmVGTHHO2yVLO5nUvWWej7HDvwGfrwCM1QB1hoXYU7QzS4p3hZLGK2an73Ntvcn29eMj+OOtdR3vtnt2ajx/F2IaQc6yeZaYzRl1dt98X1zLTMh/CQTNIKsEmdkx26z5Fx6buhzxzLzl17XUPr7faHGelN+zWeRDHNWNlK67NdKJwTJMr6zkMEXbrQeKQmQGOmZSHXs7b1IMQ17FYylmsFh/I5CKcpdAMIp69d0AtiIhjhWEIUazYawYEaWG7QSHX3cYtMNRY6DZmbm7XCOKkLpRtJnOGG1uIhGxVPa6vPZhKx8l1Oi7D7MgPlW5XKln8GFBpRGyUHYqOdbYOLsrKjPcTiE479J1KE9sUYkNaWr+9jMYs7Y+uZXDQDNmpeTimSd42afgRzbTMdL++jCqo7fdltehwp9LANgxcKzF1gMI2DYJQsdcIeGijRNGxaPgRz25VWSk4XfszjOIedus8zP06rhkrZ5u4tsmj50s0ghjTMDAlKc8shjkTu46ku7OsEFy2Um1PqpvHsxRGZXO3zk49WZhYllDzQ17YrnF5tcDLLi4NDLnutThKdpfJWMgWXTU/ZK/hH6pw3G3MlHM2T28dsJS3UUoRKYiV4tJKnloz7Jm4elL5F4PyZtrviSFwa6/Jbt3HMJJ7slsLWgqwG6dbojoQkTeJyHvv3t9hp+b3rF/fDCJ26x7P3qtyp9Lgzn4jMVOQVNjM3v/M1sFcROI8qN2TmH7CWKFgqFovo25J28PssiqTkVLYpsnl5RyXV5JDkxpByOXVHKU0MzvvJCVHntjc46nNCp94fpunXtzn9m6dvbo/cPs9yWM5JxXK6KW1qtaKDiLQzPoYxyd6Vmgm15VK5dDr8xCyOY2In3sHHgXHxDaTcVf3IsquTaUeDDUOM3/CdtXjhZ166/e7lQa2KenCsIFSUHYtPD8+1PdusrhStFkpOERK0QxjRGCt6LCUs7m+Xuxpap1U8dBBDIqAbFd+dw+a1LyQGHjqzj5b+03uHzT5/J39s3Fw0QNb7lJqW29Qafi8uNdgc6/OC9u11qS1lHMwDPCCmNs7DZp+iB9FrSQe2xSqzXAuzhTO2SarBQfHktYZzheXc5Ry1sC+jCqo3QqyrRUdXn19lYfPl3n4XIlHz5cpOlayVU2peiG1ZsB+IzwS5z9MpdpJDqhJhQ27lkEpZyOS1MZyTOGgHsAJ7ygyuV5aWj40KQMzPXhoWvZ3pdQDEyTgRzHWCONwvxmyXW2i0sq5SiWHX/mRIojUwArH3WSx5Ca73aJjcb7sspKzCeOYgmu1/HLHzXU6Lv3yLDLlV2n4PHGrwr39Jk0/Igpi7teS8yiC7u4JYEFNT4YIYggqgi/cOeDySgHbNIgMxVObFTbKyclOCsXz2zW2a03qfsjr22zsQaTSQ01GO7MamKhPI/uOvbqPZRlcWHqQITxM7Z5RSzkMk9G7XnJ5YbtGw4/IOyZhpNipeiwXnOS6bTM1T8XUvHCo87SnWXLCCyI29xoAXZ8TSrWSrdv/7qUToSKZXESSHZ0K/eaxOzUGfhS3JuV2M2j7PWqdYTCC/I3rhxvGrDlO2xeW82zu1Vv3W4CDZsiVtQdnmPdbRNT9AEOM5EwTwLaEIDKwrWSSrvkhZddqVTi+uJw7JI/dZFEEXn19lRd36zyzVcNLZfPKSr7v9XSOJ0hC5jb3GiPd62Yqw3crDUSE82WXyyMsChLnu8cnn99NIvmAmh8gSthId28Xl/Oguu+WF1JRJCGaMZVGYn5CIAgVF5dz3N6pU20GOJbBbs1no5hjJW/z/P069/abOKaBmZYpf+Rcmc3dOrUgoulHHHghlsCjF5bYq/tH/BfPbFURpY59tm9GZyG+W7t1bu7Uubqab/Vx0ETab+IfNzcjZ5t8yeVlntyssN+MKdjmIVOBZSQThmUmO6BhKtUOW3JimImnmz0WFFdXC8SKQ89p0N9vbBR5cnOfKIbrG3kuLuVRPY6LnDYCAyflUcOCO+/Vc/erfPyZbTZKDtfWi1zuMxEOc+hWr/5kfe/2HC+v5GmkkV1+umBDKdYLLkqpgYuIgm1RCQOCKE7KrMfJ4VereYcrqwX2Gn7fCse9ZBHAsU2+7PpqS4EMU54ma6/9fvSr9tztGT2zVWW35lGwLRDYrDRpBhEPnx+ujlrRtfjI5+7x4l6DhhdQC2KaYcTDG0WqXkgcC9fXjdkk3M0KEeHico67ew1MQ1qmmpxtUnBNdms+92seXhBTcCwKrsnFlRz7zZBPPLfDjXNFrqwU2Kn53Nxr0PAimmFEybUwbJMX9+p88vldLiznuLZWQMTAsYS6F4LAenkyEQ6dhfjOL+V4+t4Bn3iuwY1zxaGL7XWb+I+ba7BScPjyh9Zagz1GsZxzqPnJmRR1L6LhRTi2waWV3FCVaidVMbT9vt2peK1orb16wKWV/KHnNOjvYLBRdrm4nEvKlcwwP6EzCKxzV9Z+3f2cte201/25uV1jrxFScE2aQczmXp1GEHUt8Q3jVzfe3E3qgfV6jjnb5JFzpSMnMmYFLKH/qty1DOpBxBfuHRBEivNLLi9ZL7KUt8nZJq+4vHJowj5oBGwdNFkpupAGsXSTxewz40YwjRsBtV312Kt51PyIqhfhWAYFx6SWLpqG+e6dmp9W51DYjsW6I2w3fA68iLJrcX29wBddKKPmqCjg1MgSk2685GEMEc4tuS0zU4ZtGmxXfSxDWCrY+GHMvYMmGyWHi0s5gihmOefw1GYlKRVQdNnCwzSFtZLD9oFHpExsS6g1Q+5UGq2yv3GHbTX5vsERDr1WyYMyhIcttteNSYTttQ+mZpDn9m4dyxCe26rhhTFRHLFScIl3Yr7s+ipRrI6s0EYxkwzb5/b71p7J3Eht5+3PadDfoftRnCdJe8JdO527svYw6hfuV6mHMVEUcz9W5C2z6+oz+8ydikc9TGzuZuq4Lzo2dS/sKRPjVje+vZu01+85dpuoVwrOwFV5M4jYawbcP2iyUXSxTOGgGXJrp36k7e1qciLjbj2pylrOWRw0Q55/fofVgsNS3j4kk8eNYBr38/vNkLv7TZbyDpYpRAp2qj7lnNlVJrvNJ3crDdZKLl6s8PwY2zZYypvcqTRZXitQzpl965gtpDO7tLTcKqNtpOc5Z46k/UbAF19eopS3afgxjmVQciyimFbUU80PKbo2lUaIbRkoBTnL4PZug7xtoVSylQtjhWMmOxRIfCOGcfg+D3MYUC+HYLtTLXPASbqqPW4E1iSjjOBBLZxntqrc3W9Q8wKWCk4a4mhQ98JDjjbgyHU/tbnHx5+5z39+8g6//tlNPvXCzsBolG59br9vWSZzGCmcNPyv/TkN+jscPYqzT/XYqZDJtZMv8Ynndvj8nUrXhMTsuu9WGuw1QizDwDYN8rbFTj1gM53U22mv+xPHqhUC7JhGUqJF9VaQg4IGegUoKKXGlr32xYIXxuzUPO5WmjyxudeaIKNYcX29iGubibPatSjlbWpe2Bpv7T6ra2vJbiNrzzIMvDA64pw/bsDFuJ+v+0n2vSAt065hCAdedOSzveYTP1IsF2wcw6CYMxES53UhZ3FjNY9tJqZHFQV+tz4s1I4io33FmrPNQ7bGlaLLasGmnLO5U2m2tul+GOFHEReX89zdb5KzDZRKJxArWVHW/YjVQrLCLDgmDd9H8UAB1ZoBfpSsRs+V3aH8CF0T/2pJluT5sksjjFnK2Xhh1MpfuLicA44Xj93PbDCOAzL7DHGioE0x8KOIjbKLkIQ8Pny+3HrvE5t7eH5MMWexUnDwgogv3KthG4kdPlbCM/dq2GbSnyurhSN9bgYR9w6ahB39LLoWT6WRVqYJtXS7fnW1gJ+umiVdOCznbW7tNsh8FNnf/SDkhZ1aK+Gr4FrkTYPn7tcQ0x6uNvuEEYEYxdaBx4Vlg4JzePiul1yevXfAE5v7iWwEITnL4upa/sgzaP9MVvcnCwFWCs4vOYRREvXWbyLrZy7steO4sJznoBlS80L8KG6Vf2nfPfeSv/ZdUzZ+SzmLAy9MJsQwUXhFx6KUFqxUSlH3w6TkTBC1/DGbew2evnfASzaKXFopsFvzUQqqfsBBJUREKDpWa6dz3ICLUT+f3Yedqk+t4XOn0sBNd1KWYbR2PO20hwa331vbEqIYrq3neeF+HQNhKWfzyiurXF8vPFDwMzoze+Z0howtpZFMScipzXbV4/ZuPa1llCSLJZNlzLmlHH6UOGN3a0m5ij/eqlL3QoJQ8dILpSSu2o+4f9Dk6lqRl14sg8Bz92sEUTzQ5t++Ss7iu00RRMC2TEQpgnS1FynV8rXA8eKxe4XtFV1rrJDHTOGZloGRRqughGe3qmzuNtjaT5xv2YqnGSQZtrGCO5Umn793QDln0QgUOdtmKW9TzFm8WGm2dk7tfW74ITd36nhBxKWVfKufe3Wf23sNYmCn5nGn4hGGMeslNylLIvDIuRIPny9jCMSKVn5I9vcrK3kc2zqUJS5I69hZFfkzqZFhGgY31ku8ZCMJT17K2Ud2lEoEUSozR4OkF6F6zgFJroIfslfz2K8HrBQsRCVRMQXXGjuUs9eOY63ocGunhh/G5KzkEJ5bOzWKrjUw5DZbLOzVfRwr2TFFMRSdJMS1HoQYqQM7I1N49SBs+WPu7jexDIO1osN2NeBOpcFO3Wen5qd1pJLaWferHvuNoHU96yWXm7s1PvaFLT71wg5+NPwOfJSw7fb7sJS3UUYyziOlCMLEOX9+OUkIbs9h6RUaXHAs1go2ecfioY0C55cSmX+oXUn0YSF3FP3ItLoXROzUfJZyNi+7WCaIVSvqqehY7FRrXF0rEquYp17c5+ZOjbJrk7cNkGTlb4iwVnBYL7rYptHaFVxfs/DDGEMY+AA6C9A5pgkCOTPZZWSROa95aI3bu3UMkaEiP9rptULrFtkxbGmTTrKV3kbZ4W7FwzYVO3WPIIxxi8J6OddauTqWSTE192UhjPf2Pa6t5FFKkSWIuqZQSXNZ6n50qM+3K01cK3Hwt/fnjzYrhEpRdGyWNmzCSLFb96jUA84vPXjfYf9KW2kDaMlFe5b4C9s1wvhBoMIsyPZ+WTRZdqYAJH6e3brHcs7h5VdXuFtpUHBsYhWzfeBTcA0ur/QOaHjZxSUurxS4vVMjCBWoiMsrhb5RT8PQbcexXfW4tlak5oc0wxjXNlgrFql5Yatsei//RTZ+a+npiUEYtywBtikUHBsVx+zUg2SHoqAehKwWXQxJSuDfqXgoBbsNHy/NI1jKW9ytNFoJpDkniYqsNHz2Gj4vOVcCEkd8HJP8nq7cm0HMcs6CdPfVbwc+bLXnw/XKEt9qwU4WVueWXVSs2Kv6rBdzhwICduseVpfQ4CiOefjiytih+wulKIapHps9qCc294hUsrO4sJwIwb2DJi/uNbi+XuQ1D62xU/O5vZ2saL/y0Q1ylsWBF5CzDIJYUWkm0SSbe42uNtdhzELt29F+5qVhw0c76VY3p1L3W47NTqEdprRJt+/NFN7FpXySxLhXJwgiHMdkpehydbWAIcLt3To3Noqt8iAApgGGggMvYL3sEsVgmeBFyRnBQaRAqUOO7+WCw2rBPnQWvG0Km5UmN9aLqYnGp+qF7FSblHIWNzaKXZ2fz6S7xDhNMNyp+7zsQpn2DXe3QIWTIpPrqw+9BKDlT6k2Q+5WGkl4o1LcqTSpFkIuLeeT7Hk/IopjgkhxZa3M5ZX8oXY7FwVLeZvchaXWSndaeGm9pva8msQ8lIyXfg7fbFX/hXsHbFbqLBccHlovtkJcWyf+7da5d+ChlGopvO2qRxCppLR2MznXI++YnDdyVOoBDT+JACo4Jns1H0MMHDOpeZaVAKkFya47K3fhRTHP369yZa3AtdVC10i8zoVIlrfTb7JuH4d+qLBECM3kwDAhKafjWsYRhRoEMYYtR0KDy7Y9tJLqxkIpCqXUh4APPfbYY2/v977E7ORScMxDE8211QJ1/8EqveaFPHK+zIuVBnk7eW+ZJFP3+nKuNYEfp7ZQuwKIY0Vk9DYvjfOgO+vmhLFipx6Q261zOf3e9hWGayUTUM0PubXbwDYNlnJWK6qr1+4iU3iOZXJ9rcBu3cc1Da6uFVtJgkqp1m4oKw+yW/M58EJunC/SDJLBcdDwif0kF+aLL5U5aPgoEey2cMq9mpdErrVNNtku69O3drlf8ym5FgXHwhSDSiPEC+NDJQ2urBbY3GuwW/MoOnZSHiVSNLyQ23sNHm2z5xsiJ1xc/AGZXH/JK1/99kShxayXctzaqRMBlpE4nhN/nE/OMXlovdiK6DHCCEOkZb7rFcXTDCJ2qskphXf2G32PWu1kFL/WoPEyTJLro+fK3K96iWKveghyyJTz8PlyT3/MvhckpkSlCOPkFMMoUliW8Mi5Ms9tV1ExODmDgmOTt00cy+TWTg3DEKy2vtW9EEsknfvlyA7oSE7Pbh0Qrq7mh1p4OVZScsR1zFaVgPNLOZ72QupeyIt7jZYvYqVg41gGGyWXmh/SSANiNkou+SPnvo/GwvsoejFMBEIS4hlTqQc8t13j3n6TSMX4UXzovcdN088UwGseWmOt4LTMS5NI9++sm2OnjvibO/WutmDTEG7u1PCCGEERRTGbew1MI/ElmGlEUKftuN3+Giu4uprnlVdXW6u97P5eWM637lU2oVxcyvEVD2/wFQ+vU3RNHDtxvj1yvpgUGUzt8YNOOLt/0KDqRTy7VacZhOzXA57arFAPQs4v5VrRabYp7DcT5+cnn9+h1oyISeqC2Wn2+53dxqG2C65FMV21zgrTEEwTlrNFjpHYoXdTv4wC4jjZBbqWQclNEtUeOVdmtWD3tPfDA/9Y1Qvxgnioo1YzRi3l0W+8DBpL2S6onLe5tJJHieLugccfbVYG6vFMRouOTSMIiWM4V3YwEGIVc3EpjyFQcCyurRdYLTgIwkrBwTaTiKNO/0cjiLBt49C80R7B1b5r26sHFB2bomul54j0jlwsuha3dmo8c/eAg2ZAtRlQ9wOW8om5LY6TMOB2X8St3ToraV2ytaLL9bUCa8Xk/JjjlgxZqB3FKGSri2YQJQ8hiBDg5ZcPn2Vxa7eenKZVS9L9N3frrJdzh/wD45qFOnkQYnpANbXBDptU1wuVHqC+Vw9aK4+cbbDfDLragm/v1bm6VkwrxSYD4/Jqnrv7XusEO7ftc71i37O8il5Jdt3uVc42ee1D60eu4dmt6hHTXlJexTl0wtl+M6ScMym7FmIoohiCOGa3HvLaG7mW4/GgmThuS266U0Jxb9/j/JKLayVVY88t5Q6fnraSZycNfOh1uMu06bw/T9+rsnXQpOQ65KzEqYsIYRhT9yMqTZ+raegn9Lb3A61V+X4zYGPJpeBarRIsWRXlXrvZfvkt2WcH+cfa3yciBGFEEMmRsXQkF0FJavKJsVMTUb+xl7OTisDrJYcXKw1u7dYpuhaXlvOsFhzWSy57DZ/7NZ8oUuSdJJCl6CY1nppBdMj/EUYxBScpGJjRvog8ZEKKjubsdDNRZ7umjXKOajPAECGMI1YLOWIFlgGrpRzSCB7sciX5j2saLUvBJE/+O7OKIpuUszDKomtScu3DSWxJzHw6cbjs1AK8UGFyNFrhOPa/jF7HLY6bVAewUnT4zM1dlvIurm0kzruDBqvFXFe/SrUZcmWlwFLebvkR4ljxwnaNph+BwEsvlFtmil5HcA5SnoMysNsnF+hujljK24fa+fgz91kruPgrcOegQaxi1goOXpisHm0zMWdtHTQ5X86lOxOXu/setiVU6gGrxWTgnis9GPheGFOp11slPXrFmp80tiXEsZDUEk7+H8ZQcJJ75gcxdrG376z9Ge03A5bzNst5p1Xssd1p3s/f1iuRbLf+IBy1WwmP9s9n9zd7nx9GXesotZtkssinfouXdjK52jrwePrePheXClwo52gGMVv7Ta6m8vnIuTKffH6H5bxNzk4iIHdrNV7z0FoyFtv8Hy+7tISKVc8gk/b+OqZBGCUlhdrlutNE3a54l/I2ayWXmzv1NOej0Ir6evnFMs0wbpmYMnPWqHPRoTpSTqHU7T0LqSiy8ygG2UtrXsjVtQfHGELHGQiS2BIrjaQ2SlIKxB0p32oU2+00DjlxTYONco4gTnYWhiFslHPk0gHZOfm2F0JMfDkOT2zut0JeV4oOd/abCMng7HcE5zjKs1uZjqYf0pAk7rtf/LlrmdSCECWKgm3i5m28IKTSSOy5F1YS08JqIclwTey7ioYfsl2L8IKIa+tF1go2sUjLlHJzJ5GlYs5GxCBdQcyc1bxDGKrWZBHFidN/ybUpOCaWZXBrt861tQfmv2ozpNL0eXbrQQHE7D7GCkS81lGrmdM8M0/1GlO9fA51P6BUzg8s4XFzp56YV/xkF+taxqH8hXbad0HNIMI2DII4Tgra0TuIpD1o4W6lQRzD5+/uU8rZrBUdLi3nqHkhKwWHmhf2jMpaKThH/B/ZGO+2IGrv70rBPuSjyMxq/QJKIBlHV1fz3Kk0W99xfa2AbZmsFA/PXfaIfrQjdaRQXW2rC+mjaK+y2c9eOijT17WSAoGJjTIZHEXHxjRkqNyCUW23k86WBkCEh8+VuLiUa/kDHj5XYjXvsN8MeGE7PXp0u8Z+M+CRc+VDNuJKM+Bc2eF/+KINVosOrmlS90L2G+FUjuA8HBYorRDhvGUMjD9/5FyRu3seBrBRcggixUEz5ovOl7m+UeRLLi0liXu2ya3depJxbxsY6aR4vpzjXMmlESQmuqwPiuT57dXnYiPRYilvc3klz4UlNw1EMLm6WmS15KQVRnOAcG+/iVKKg0bAzZ0aSznniDxmvoH2o1a9MKToWuw3A5p+2FOOe/kVCrbVVZ7vHRx+xl4QJebAekjeNo/kL7TT7gtTijS36MHOo1cQSRa0YBkGcXqmhCFCOXXWHzTD1vdlUVkXl/M8tF7k4nK+b0n/zlytboulVs7OSoHLy7kHOTt9HNmQzCEv7jW4vdfAtqRV0vzyamEi5cu3qx51L6To2Dh9Eu4WakeRhRFeuf4StqteK4EOuq/KB0VfZKuBnbqfCLyitXrJokhGyboetEMYJ3pq0I7FtQxiRWvFBVl58mSHgZAmZoGk4cLtJqMwjLm6WiDvWLhWYq9tBCGOaR6KzprUqV1emn/y4p53KJoDkYG7k5ecL/PMVpV9L6ARxKwUbV56vsQjF8qHTwJW2QVDpRZQcmxcy+TCksv19SLP3D2g2gwe2PbnpNbTjZc8zLNb1dZzzuRzrehim8IzURVTpGUv71yJDvJZZM89O2q17CROczNIkj/7+SD8MGav4bcipbK2uslzZwmPRhgl9zg9aMw2hSCMqQfdi/RmMppd/zC5RXcrjURxWQZeKlemDTu1gGtrxUPfd5woxn79HZZ2/+l2tYkhBqYIyznn0M59En5RL4yJlSJSMbv7PmLaXTXNQimKLIzwFa96zduVolWwz7WMrpPYoJT67GHc228SG0kdqGz10vBDbu01+pqUhinD3Fkh8/Ze41BMf8G1eORcV7PhUGWc91PH7blyrmVW8sMoCfXNO4cSyNrNbu021mySzdlJufMgKYx16HoneWrXrd06lpE8s4YX8dz9Ki+7uNT1nrXf95xt8vIrSVKRIpngV4tJFNmhLXmbSfHAC5PkurzTus6Ca1Jrk5fVosPNnRpuGuI7i1pPwIde9eovf3u3syiyySJnGyznDh9FaxqJXfvKaoFntwbnKCRtHv7+p17cp9JoEqQ1oFaLDq5lHPJBrBYdSpHdWtVmPsBeJTzaJ+K8bbHtNckbdqtsTqxiyj1iBtplQIAgigki+k6W0hbenLMsDsIAIgCVRBGl39cMIrww5oXtGsWcxbnS4FI8457n0e/zV1YLfOr5He5Wk13QubKDnVY9yMboJPyiWa2ze/tNCo59ts6jUDzI+N2t+a38gE6G0co52+T6evHQ2cTNIOLWbh3X7l9nf7fuEcfOocSi9npKRyb5vQZ+EB5Z5feiZxnnvQZKqWQAF2yiOObJzQp5x2St5PDIuTI7NX+oJMGsflB7wp5pCjnTGFg2fCyUwg8Vu75HzjJwHQOvEXG30uBSmjSV3bNqM+STz++wUnRb8f6X0+zu9uqinX1r32Up9WCDkSmTkmtT9x+URTdEWC265B8sOGbioxCRrrH6w0aajbtj3at5mIbROqTqTqXBWtFlt+5hm0bqsUlc6lGoDpU17za+gEMKxLWSkwRLrkUjSHYX66XcEaWW9adz3GTX2G9yPl92eW67Thj7VBrJWRVRnOSjJOGjuZZJ2bFMbmwU2TrweO5+jetrvctcHLdcf6/Pr5dcmmHMtdXk0LWaH/KZWxWW8ya2aR77QLSM9ZLLF+7sJzs90mSQLiymokjrI5kGHHgh5dA6NFGMugLoXBnd228CiQ24feB2OumiOFmJXlsrHlrNdyuV0X6exfW1Yuu7DznXO+i1Y7m102g56ZtBRM17UOJgIz1nO1mJDTdpKJFDdY9cy+TySr51PsCkQvAAEKHomgRxTKTAMYXr6wW8MOaZrQPOp87RZhCxXfMxDYOmH1JKa1Stl5IihLd36yiV5G109m2Qg1EkCZNuv75DZzJEwVHj+QnTTakPWviMU9Ruu5rsRrdrPmGssEwhiKSlkDbKLjGKF9OyGJeWXZpBfMRE0kl7PxPfn0k57xzqVzd7+7gBH2slly/cPSBQinLO4P5BSM6xePmlMgU32QmRLjCy81+urw8uxXPcAJRen3/yxQp1P6LWjDAtwQsSp3rNj1gvWsc+EK19/lspOuRdi/tVn1675YVUFLaZOD6rzZCcc3iwjLMC6ByAUay4uno4dK9bnf2lvM3VtSKVpo9hHI4J7zbJj3qeRa8VYmbnBVohhJaRhDpmfUuOgXwQy91r0tiueknki2ngR3FS08o0qKVlwyeNaxlEkeLycr61uAnCmIKdxPhfWel9XV6QnM99ba3YKteRXWM77c8zSB2MKEWskl1F9ozaY+PnjV5KvZ85Yhy7dubYtS2Dvbqf3muh4ScmOUHYbwStygU79YAL5VwruGFQXzL6RQ519qczm3y35lFpdA/Tzqh5IQ+fL7cq1l5aKRKEEbv1gFLObmXpj1qKZxpnVERxzPP3a9zYSLLrdw58IhWzbuTwoojzl3JD+Ui70W3+q/sR58s5bmyUiINGrdvnFlJRZJmJJdc6InDjrgDaBbvdbp/Rq85+OWdhGknkUTvdJvluZSL6mQZ6rRDPl91W29nBPO3nLSTvZahJY78ZUql7uJbVame72iQsuFzpebfGp9t53H4UsVZMVq79rqvqBemObvCznYR996RpL4Eyrqlv1OvO5DQruQKk1XujNAelScOLKLhGcjCVF7J60Rk5uGHYfnWWtrhTSUK1s2qvvRZ9XhhTzlmHSr5k9aWOY5o7ruO72+e3qh7LBZucZXFh2WS3loQNV5o+j6Q12tprY41Ct/kvq3Lg9lkwLGR4bBQr7h0kMfJJdccHN3QSIai9wgEzJ107vYSmWxvtZSKGCXlrD71rDxttD51zTKHhJ2dtrBadQ33qF9aX0X5QfVbiwhCDuj8d60vOTs7jDuM4TeZTrBXdtDx4ue911b2kJHw7xw4vniNkQHjwNOgn66ZhcHE5j2MbVP2ISKlWv0YNbshWuu0lswf1Z7fmpe48xVqpf5j2MCV7xinFc9zyPd0+X2uGPHKuhB9FGAiXVlw20p3ShaVc174PS7f5r5yzWEnHmIjRtdGFVBRJDHl+YH2bjFFves8JeiU/tNB0a6P9nIRhJ4Ruk317265lEsYxa8XEoT+MILcP2mojpBGEBFHc8v3ESqXJOdMhO4/7xnqR5UIS839ltcBKwel7XSJQytmH2ppkNNassU2jr1LvZNjJtx+DZN0Q4YsulFgtOBRdk/Nld+TJcpR8o/b+VBoBtimH8ih6LQyGmdB7Xesw42+Uzwz6/PX1IgXH5uJyHpEkes8LE/PQsGO4F73mvyykWYXdz1qRXoeZnGZe9eovV//5o/+t9XvmkLqyeriaY6dtfhIrtEGO8uOG0k2jT53vbb8/N3frHDQCijkrPSo2yZrNO7M33XQLL8621tN4thki8gml1GMTa3BIHnvsMfX4448P9d5py3n2Ha3y2WnpbGBkuc6URGeFhEHlzp/dqnYNhe71uVmMvXHo9uz2mwF5yxjqzItR226Xi16yvVA+ivbEpHa61bOfZOG9dvrZWo8bSjeIXgNhFLt0pw3zfDmHF8QYSKvOTPtJeLMcdN2uK2ebIzlrTwPDnLPSyTTKwXQyKT/POA7hZhDR9MPWZ+NYcXOnxmrR7Zl31N7feVYa3YIODkXd9WCYa+rWdntBRkzb7tb2QimK9sSk9tc769lvpiuYXFouYHO33ppQp8k0B++klNAwdWbWS+6RxMC9RjCUMI/LsAP7NDqpBzHsOSvtHDca5yQZxyG8XfUo5x2KOZu9up/IhW2ST31v/Rh0mNdx6Ser05LjUcZ/p8Js/xw9Tl1ZDONtBwp62iKzg3wsIzmc3jIMduoBm2n00DSZSi2nlG41ksapv9TNhpll92b28Z2a36qbk93D3ZrH5l7j2NcBR23re3V/rHO8zzKT8MWdFOM4hLOxlEVjPbRe5NpqYaik+WnOAf38LaPWfhuFccd/9rnshEQxra47ivmTmgngmL0LyPU6yOfewfEL2nWjfdLbrXscNA/Xr2mvzHkcp+OklNAwg7a9bk4WCVWwkzOHj0u3wfTUZqVlwz6OEjxLHDca5yQZxyF8HEU4zTmg34Td62+bu/WJjv+skODmXj05HqBPe9nhbHcqjSTDXp2h6rGSClq2AoYHE/HWfhOv88apnkUTj0XnpLecc7i1U2O/EbQG76DKnMMyqRXkMINWuuR7ID2z/0ei22BSCqrNw+G4ixT2Og2OG41z0gwTqt3OcRSh6nb++YTmgH4Ltm5/i+KYF3aG32X0imTLxn92UqFSSZScZRl923Mtg60DD8c0W2WPurFQPopudNrg1souN3frXBeh6FqEkaIehEl27jG/p9P22OmTKOdtrqWZ2maaqZ23jJ6VOUexUY5TnqEXg5x+58sum5UmItI6wL3uR1xezo38XZ10s613FumD+TWjzBOL6K/JGCfLPOPCcp7NvXoiv2mJ+ePMAe1jZLfuEcXOkbPcex3AtVX1KLpW38q83aL6Ov0QrUrXNR/bMEAgCBUXl/tnca+npU2W8klBxjNV66mdzsn6ahoiu1PzCaKYg2aI2bZlO27IWfsD9CPFauGwya+UszDaMrW7HfPZ7/CVfpVTJx3N1a9gWaXh82KlgRdEuLbJpSWXyxOYlLo5NjuL9HVTgqNGscxz1MskmdV1DvO9x+1bJvNZG9nkCvRt9/JKnkZ65oYfqVbRx8sr+V5f1fc628dInNZ3u7pWpNxR3w04spirNUNubBQPtdnrdMCnNitspCczQvcy8VsHHrEocm3HAAzK4nZsg1vbdcyk3bPjzG6nc7uXs00eOVei6JhEseJc2eVlF8rYZv8tWj962R7rfjDQHDSsyWiQI6z9GNWXXVzifDl/JCt9Ute1U/Vw7KQE8+WVPOdKLs6EEvAyk8JBI+DFvTrP3D1g66DJw+dKPc0oozoJp+lUnCdmdZ3DfO8k+tatjWe2qjx776Bvu9kccHklz7lyjssr+bEj9jrHSGY12G/6R2S1V3JdECle3Gvw/HaNF/caHDRD6n4wsgk2Z5tcWytweaUw1GFO2f07V8pxftnlXMnlTBUFbKfbCtU0DEp5q1WJtJ1xQlV7hSIWbGtg4b1hTUaDQmunEXrb67qy4ocbbfbgflVuRyFbJT65WWmdLFfK2a0ihN0G86jXfhI5BvPArK5zmO+dRN/6VWDOzlnp1e40c0A6rQbtdH7vXt3nk8/vUHQPn8+9WnSOWBqGMcGOYoJuv3+OZbBb80HG2FGIiCkif6vfe+adUY9pHMdB2jMtPm8PdCgO63QcFNU0jdDbXtfVrfjhJJ3L2ZnFj54vc3m1wFLe7hvlNOq1e2GMQcw//bmfnUr/54VphmMf93sn0bdubcRKEXdU7JzmNR83iCSTddc2WudzX1srEqXFH9spuTZC79B/GC2Iof3+5ezkUDIV+s1u/ey7o1BKRSLyVuAfDHXVc0gvp1evYxrHcZD20+LDrFyGec+gpKRJH98Iva+r84SySXxXO6Mmi4167a5l0PAjfvHf/Tve+Ja3HSpLskhMQyYm9b2T6NuoFZin4a85bhBJVsa93FHVNojVEWtEt3NSBiXU9aPb/etlehrmqXxMRP6xiHyNiHx59m+Iz80N3ULvJhlnfhKhiIP6O424+UkUPxyHUVdpo1570bW4uVPjlV/+Ov7+j/0wH/9vH+O//H+/y9NPfoY/+IM/mMg1zAOzyqUY5nsn0bdRKjBnJWcm7a857tgfVKSvs92sMOYoxSF70e3+SY+op4FFAUXkv3Z5WSml/vTYPZwywxZPm3Xky6QjdSZROmBafR+17VEL2o3Sn9u7dep+xF/6c3+WGIWBYBqCYSSZvr/927/dt3+noSggpOVq9hrcrTTSispJZNppiXoatw04GvW0XfXGKjw4bU6ieOOg72+/V1fXS3+g4vi1ne9bqOqxbcXT3v6FL3xhqM/MMnzwpARk1sI4DtN8Ls9uVSk45qGQ8SyEsJsDspOTVhTjyvVpe+btTLr/z25VMQT26gF+FOOYBivpMQTDPPNpMusFazu9ZHug6UlElkXk74vI4+m/nxGR5el083gopT6klHrH8vJw3ZtlmOQkajMNe97ApOpAnSSjZuqOQrbdv7e9ww/+wA/whq/6Cv7UV38l//f/+SNUKpWJfc+k6JTrYZ77aXjm/a5jGv2/tVtHKcjbJkqRnpU+e6Yp65NiGB/F+4ED4DvSf/vAv5hmp06KSQrjqIfEHDfqYxQlN6vol3llveSy3wz43ne+g0KxxE/9k/fzY+/+Z+QKJf7yd333rLvXl2Gf+7w/80HXMfH+K0VSZyb9XdL/zLFFZRIHT02KYfIoHlFK/YW2339MRD41pf6cKJMqxTxOie/jRn1kNtftqtfaSmcp/p0211lFv8wrubQc9ebN5/m77/l5XMtgpeDwla95BW/82q+Ydff6Mmz+wbw/80HXMUz/RzLZiHB1NU+lEdAIkoihq6t54jnVE9M+u2ZUhpGahoh8dfaLiHwVMJl60jNmUoX0xtmZHDfqY78Zsl1tHtpKb1eb7HdUp53Edy0kIiyVCtz5/KdaWayf/P2P47qH61XN06oOhl9pz/szH3Qdg/o/qtnYtYzWGd8PrRe5mJ753S9jeZbPfN5Mh8PsKN4J/Ms2v8Qu8F3T69LJ0S8GepTVyjg7k+MUNQOo+wGGGK2Kj7YlBJFB3Q+OvPe437WIuJbBT/70P+QH/sY72N9P/BLLyyv8g3/y3tZ7eq3qJlIm9xj9HmanMO/PfNB1DOr/qJndw+Y7zMtKvnNOaQYRuzWPSiNoXc9J9qevohARE/hOpdSXicgSgFJq/0R6dgL0EkZgJGEZd5t/nDICBduiEgYEUdyq4BorRbn7SYYLXUl0HFbyFr/0C/+GX//Ix2nWDpLnVSgeuke9JiMMa2alb0ZJ8JrnZz7MdfTr/6iLs2EV57yUd2mfU5LS4U0EWMrZrd3TSSqvYTKzvzr9eWEURDvdhDFTEpNerUySpbyNbRrU/LBlc90ouQuXXTwtijmHT3/iv2MImLkihS67xl6TkYjMzNA/7zuFYTnudYyzOBtGcc7LEbLtc8puzUMAhWKt9KB67Ekqr2FWRp8UkQ8CvwTUsheVUv9+ar2aMdNarUySTJDWiu4h5TQvNujTwGu//Mv5nu96C9/+7d9Osfig1PO3fuu3Ar0nI9XjFLCTYp53CqNwnOuY1uJsXoIA2ueUSiNgKWezVsq15pSTVl7DKIocsA20Z2IrYGEVxbRWK5NkGudPnDWazSbr6+uHMrFFpKUoek1GxOHRiAHNiTLu4myQ73EW1oFetM8pnVnlJ628hvFRbCulfuiE+jMXnJSwHCcjs/38iSsrSR+3q16r7v2s+nVaiKKI9fV1fvqnf7rne3r6sBapnMEp47hjZhjfo5CYn5VSXFjOz9y0Nw/KaxgfxVedVGdOikHCNs5qZZy6TceJrpiW021eoj6mjWmafOxjHxv4vkUx8ywC7SGx1WZAPYh4frvGyy8vs1JwBn5+0Jhpl/0bG8UHO8gZ0T6nCBBEMUHETPxSw5iePrVIPophJ8JRJohxJtfjTvTTcrrNS9THSfDqV7+aN7/5zT19FJr5Iksy3al5OKbJUs6m4Uc8tVnhNQ+tDZw4B42ZeZL9bnPKLGt1nTkfxTSEYZw2jzvRT8Lp1m0XNC9RHyfBIB+FZr7wwphqM8AxzVb+UN4xOWgMd7rioDHTS/Z36wHs1k/UFDtPSguGUBRKqf/5JDpyUkxjIhynzc446b26T60Z4joGzSA/UBCPa7fstQsSkbmI+jgJ/sW/WIiSZV1ZRD+TaxnUg4il3INcoTBWFFxzqBpQg8ZMN0Vy0AzZq3mUXOtETbHztmAbpnrsS0Xkv4jIZ9PfXyUi//v0uzY+Kk1I6ZaCP27Zjn5p/eO0mZUoOGgEvLjXwAtiDAOWcs5QZQOOe2BKrxIBKDXXpR8myec//3m+7uu+ji/90i8F4NOf/jQ/8RM/MeNeHZ9+5S3moTzFuKyXXARo+FFyClwU44cxJdceaiEzaMx0KxuyddDkXDnJXfDCmJ2ax91Kkyc296Z67yZVXmhSDPOt/wz4ESAAUEp9GnjLNDt1XPwo7lkDZpwaOIPqyozTZia0laZPpBSOZXBpZfD50N3aGKc8ca9aO4hM/bS+eeHtb38773rXu7DTbPZXvepV/MIv/MKMe3V8ei0CNnfrMyurPwlytsnLLy8TxTEHjQBBsV50EGHohUy/MdNNkawWHEo5q5UdHSvS3+Op3rt5q9U1jI+ioJT6vY7yNnMdRy7Q07Y3TkTTIHvhcRLu/CApwdHOSWwx+9lrz0qkT71e5/Wvf/2h16zZVeeYGL3MFrd3E3mdF7v3ILqZz1YKDq95aG1qZrWjsl8niBR7dR/HMrBNgyCMKTpWa0E3jXs3bxn4w4yK+yLyCIkDGxH5NuDFqfaqDRH5c8A3AUvA+5RSvzn4M4d/75x4R50Ih7EXjtpmtkuxLANTBKXgTqXBxeU8hsjUt5jzEJs9azY2NnjmmWdaNf5++Zd/mUuXLp3Y948j28PQJ6O86y5yHgMVBkUSnpScZuOklia1BmGMH0VcXM5P/d7N04JtmNnobwD/FPhiEbkNfD9JRdmBiMj7ReRe5t9oe/2NIvI5EXlaRH64XxtKqf+olHp7+p1/cZjv7UyHOq5tbxr2wmyXcr6cS9oWsA2De/vNE9liHtfHsQj83M/9HH/tr/01/uiP/ogrV67w7ne/m/e85z1DfXZWsj0MvcwWF5bzc2X37se8lNnOxonrGBx4ISK0ytLP672bBsNEPT0L/BkRKQKGUupghPY/APxj4F9mL6TZ3j8HfD1wC/j9NE/DBN7V8fm/opS6l/78v6efG4giOTh9Uivlaay+s12KiMHF5Rx7dZ9mHKPUyU3Y87RimQUPP/wwv/Vbv0WtViOOY8rl8igf/wAzkO1hGFQVGeZ/FzlPUT852+QVl1cOneGdKd95vHfTYGiDrFKqNvhdRz7zURG50fHy64GnUwWEiPwC8C1KqXcB39zZhiR2gb8D/JpS6g96fZeIvAN4B8C169dbK+VJ2PamYS9sNw/kbJOLy3n8MMYQztSqfh5oT7YblpOS7Xa5vn79+tD967UImCe7dz/mpThfxrz5DE6aWXjurgA3236/BfyJPu//XuDPAMsi8qhSqqttQCn1XuC9AI899piatKbPBCVzsG3uNY7lSNM+gskwZ/kCE5ftTrk+bgdPyy7yOONjWjIxzXs3Z3J8hLk3sCmlflYp9Vql1Dt7KYmTYtTjF/uhfQTHZ5LPYxbMk2zPG+OOj9MoE6ehzz13FCLSt47BMWo93Qautf1+NX3t2IjIm4A3Pfroo5No7giTTqs/Lau7eWXc5/Hv/31/0T1GCY+pyPa05XpeGWd8zFvpi2E4DX3uZ3p6U5+/HafW0+8DXyQiLyEZRG8B/tKYbR3ulFIfAj702GOPvX0S7XUyTw42zfjP40Mf+lDPvx2z1tNUZHvacr1InMYxehr63FNRTKLGk4j8W+ANwIaI3AL+L6XU+0TkbwK/QRIN8n6l1BPH/a6TYN4cbPPKSdlbx30ek6jxtGiyvSicxjE66T5PY/wNU+vpgoi8T0R+Lf395SLytmEaV0q9VSl1SSllK6WuKqXel77+YaXUS5VSjyilfvJYV3CCzFta/TxykvbW4z6Pu3fv8ra3vY1v/MZvBODJJ5/kfe9731CfXTTZXhRO4xidZJ+nNf6GUVkfIFkhXU5//zxJ0t3cISJvEpH3ViqVqbSvHdCDOclEqeM+j+/+7u/mG77hG9jc3ATgpS99Ke9+97sn3s/jMm25XiRO4xidZJ+nNf6GURQbSqlfBGIApVQIzI/xrA2l1IeUUu9YXl6e2nccpxDfWaBXscFhykCPw3Gex/379/mO7/gODCMZBpZlYZrz9zxPQq4XidM4RifV52mNv2EURU1E1nlQ6+krAL200XRl3soj96NYLLK9vd2q9fTxj38cPRlrTjPTGn/DJNz9IPBB4BER+RhwDvj2Y32rZmE5TYmEP/MzP8Ob3/xmnnnmGb7qq76Kra0tfumXfmnW3dJoxmZa42+YWk+fEJGvBV5GUsH7c+n/546zGm8+T5ymUgevfe1r+chHPsLnPvc5lFK87GUvQ3VWlJwDtFxrhmVa42+YqKffAa4qpZ5QSn0WeDVJvPjcoW2588FpsRG/4Q1v4NatW7ziFa/gS7/0S/nUpz7F6173ull36wharjWjMI3xN4zp6V3Ar4vIz5LUsvmzwEKdo605m/zIj/wIb3zjG/m+7/s+bt++zYc//OGFPkdboxmXYUxPvyEi7wT+M3AfeI1S6s7Ue6bRTJlv+IZv4D3veQ9f//Vfz8bGBp/85Ce5ePHirLul0cwdw5ie/g/gHwF/EvhR4HdE5Jum3C+NZur8+I//ON/7vd/LRz/6UX70R3+UN7zhDfzqr/7qrLul0cwdw5ie1oHXK6UawO+KyK8D/xyYuxGlnX6aUdje3ub3fu/3yOfzfOVXfiVvfOMb+at/9a/yTd80X+sgLdeaWSPzGOVxXB577DH1+OOPz7obmgVFRD6hlHrspL9Xy7Vm2vSS7X5lxt+tlPp+EfkQabJdO0qpN0+4j5o5ZN4PVBmH7//+7+fd7343b3rTm1rJdu188IMfnEGvNJrJM6nx28/09K/S///0WD3UnHqyAmOOZVJwksPkb+/W5zrkdRi+8zu/E4Af+qEfmnFPNJrpMcnx209RPCEi3w88CnwGeF9a50lzRjgNB6qMwyte8Qre/e538/TTT/PKV76St73tbVjWLE4F1mimxyTHb7+op58HHiNREt8I/Mw4nT1JdJXNyXLSBf5Oiu/6ru/i8ccf55WvfCW/9mu/xg/+4A/Oukt90XKtGYdJjt9+y6iXK6VeCSAi7wN+b+TWTxh9EthkOY2HwAzDk08+yWc+8xkA3va2t/H6179+xj3qj5ZrzThMcvz2+0SQ/aBNTmeT03gIzDDYtt36WZucNIvKJMdvv1HyZSKyn/4sQD79XQCllFoaveua08RpKvA3Cn/4h3/I0lIivkopGo0GS0tLKKUQEfb39we0oNHMP5Mcv/3OzD7ds4FmImTCtkhE0Vyeu6XRTJxJjd/TbWzWaDQazdTRikKj0Wg0fVkoRaHDCDWLiJZrzaxZKEWhD3jRLCJarjWzZqEUhUaj0Wgmj1YUGo1Go+mLVhQajUaj6YtWFBqNRqPpi1YUGo1Go+mLVhQajUaj6YtWFBqNRqPpy0IpCp2YpFlEtFxrZs1CKQqdmKRZRLRca2bNQikKjUaj0UwerSg0Go1G0xetKDQajUbTF60oNBqNRtMXrSg0Go1G0xetKDQajUbTF60oNBqNRtMXrSg0Go1G0xetKDQajUbTF60oNBqNRtMXrSg0Go1G05eFUhS6eJpmEdFyrZk1C6UodPE0zSKi5VozaxZKUWg0Go1m8mhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavmhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavmhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavmhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavmhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavsy9ohCRLxGR94jIL4vI98y6PxrNpNCyrTktTFVRiMj7ReSeiHy24/U3isjnRORpEfnhfm0opZ5SSr0T+A7gq6bZX41mWLRsa84S095RfAB4Y/sLImICPwd8I/By4K0i8nIReaWI/ErHv/PpZ94M/Crw4Sn3V6MZlg+gZVtzRrCm2bhS6qMicqPj5dcDTyulngUQkV8AvkUp9S7gm3u080HggyLyq8C/6fYeEXkH8A6A69evT+YCNJoenJRsa7nWzANTVRQ9uALcbPv9FvAner1ZRN4AfCvg0mfVpZR6L/BegMcee0xNoJ8azahMXLa1XGvmgVkoipFQSv0O8Dsz7oZGM3G0bGtOC7OIeroNXGv7/Wr62rERkTeJyHsrlcokmtNoRmUqsq3lWjNrZqEofh/4IhF5iYg4wFuAD06iYaXUh5RS71heXp5EcxrNqExFtrVca2bNtMNj/y3wu8DLROSWiLxNKRUCfxP4DeAp4BeVUk9Msx8azaTRsq05S0w76umtPV7/MDocUHOK0bKtOUvMfWb2KGhbrmYR0XKtmTULpSi0LVeziGi51syahVIUGo1Go5k8WlFoNBqNpi8LpSi0LVeziGi51syahVIU2parWUS0XGtmzUIpCo1Go9FMHq0oNBqNRtMXrSg0Go1G05eFUhTa6adZRLRca2bNQikK7fTTLCJarjWzZqEUhUaj0Wgmj1YUGo1Go+mLVhQajUaj6ctCKQrt9NMsIlquNbNmoRSFdvppFhEt15pZs1CKQqPRaDSTRysKjUaj0fRFKwqNRqPR9EUrCo1Go9H0RSsKjUaj0fRloRSFDiPULCJarjWzZqEUhQ4j1CwiWq41s2ahFIVGo9FoJo9WFBqNRqPpi1YUGo1Go+mLVhQajUaj6Ys16w5ooBlEbFc9vDDGtQzWSy4525x1tzSnGC1TmkmidxQzphlE3N6tEysoOCaxgtu7dZpBNOuuaU4pWqY0k0YrihmzXfVwLBPHMhARHMvAsUy2q96su6Y5pWiZ0kwaUUrNug8TR0S2gOeHeOsGcH/K3emLWI6rVBwfeV0MQ4V+58ieeX9H5LT1F4br80NKqXMn0Zl2hpZrw7yEyJFr6CFT88Ciysk8MWx/u8r2QiqKYRGRx5VSj826H8Oi+zt9TmOfOzlt13Da+gunr8/H7a82PWk0Go2mL1pRaDQajaYvZ11RvHfWHRgR3d/pcxr73Mlpu4bT1l84fX0+Vn/PtI9Co9FoNIM56zsKjUaj0QxAKwqNRqPR9OVMKAoRuSYi/1VEnhSRJ0Tkf0lf/3si8kci8mkR+Q8isjLjrgK9+9v29x8UESUiG7PqYyf9+iwi35ve5ydE5O/Osp8ZfWTi1SLycRH5lIg8LiKvn3Vf+6Fle7pouU5RSi38P+AS8OXpz2Xg88DLgf8RsNLXfwr4qVn3tV9/09+vAb9Bkni1Meu+DnGP/xTwW4Cb/u38rPs6oL+/CXxj+vqfBX5n1n0d8zq0bE/3/p4puT4TOwql1ItKqT9Ifz4AngKuKKV+UykVpm/7OHB1Vn1sp1d/0z//A+B/BeYqCqFPn78H+DtKKS/9273Z9fIBffqrgKX0bcvA5mx6OBxatqeLluuEM6Eo2hGRG8BrgP/e8ae/AvzaiXdoAO39FZFvAW4rpf5wtr3qT8c9finwNSLy30XkIyLyupl2rgsd/f1+4O+JyE3gp4EfmV3PRkPL9nQ503I9663SCW/LSsAngG/teP1vA/+BNFx4Xv619xcopA98Of3bc8zJ9rzfPQY+C/wjQIDXA388T/e5S39/FvgL6c/fAfzWrPs4znW0va5lezpycqbkeuYXdII3ziaxf/5Ax+vfDfwuUJh1H/v1F3glcC8dRM8BIfACcHHWfe13j4FfB/5U2+/PAOdm3dc+/a3wIL9IgP1Z93Oc60hf17I9PTk5U3J9JkxPIiLA+4CnlFJ/v+31N5LYRN+slKrPqn+ddOuvUuozSqnzSqkbSqkbwC0Sp9WdGXa1Ra97DPxHEscfIvJSwGEOqm726e8m8LXpz38a+MJJ920UtGxPFy3XabuphlloROSrgf8X+AyQlfT+30i2Yy6wnb72caXUO0++h4fp1V+l1Ifb3vMc8JhSaubCCX3v8W8B7wdeDfjADymlfnsWfWynT3/3gX9IcvpjE/jrSqlPzKSTQ6Ble7pouU7bPQuKQqPRaDTjcyZMTxqNRqMZH60oNBqNRtMXrSg0Go1G0xetKDQajUbTF60oNBqNRtMXrSgWHBF5p4j85fTn7xaRy21/++ci8vIx2/2AiPyxiLwz/d0VkX8nIk+nZQ1upK9/TVrJ8rMTuByNpsUJyvafFJE/EJFQRL6t7X2PpNVYq8e9lnlHh8eeIUTkd0jivR+fQFsfAH5FKfXL6e9/HXiVUuqdIvIW4M8rpf5i+rcb6Xu/9Ljfq9F0Y8qyfYOkoN4PAR/MXm97f1UpVTru984zekcxx4jIjbTe/b8WkadE5JdFpCAiXycinxSRz4jI+0XETd//d9LV+6dF5KfT135URH4oXQk9BvzrdBWUF5HfEZHH0ve9NW3vsyLyU219qIrIT4rIH6b17C/06O63AD+f/vzLwNelWaIazRFOk2wrpZ5TSn2aBwlsZw6tKOaflwH/RCn1JSTZlT8AfAD4i0qpV5JkWn6PiKwDfx54hVLqVcBPtDeSroIeB/4npdSrlVKN7G/plv2nSFL7Xw28TkT+XPrnIklW75cBHwXe3qOfV4Cb6XeFJLVl1o915ZpF57TI9plHK4r556ZS6mPpz/8P8HXAHyulPp++9vPAnySZmJvA+0TkW4FR6vu8juQgk610kv/XaZuQlCf4lfTnTwA3xr0QjaYDLdunBK0o5p9OJ9Je1zclg+D1JGafbyapbjkJAvXAkRWRrPK6cZvkhDJExCI5HGW7x3s1Gjg9sn3m0Ypi/rkuIl+Z/vyXSLbYN0Tk0fS17wQ+IiIlknr+Hwb+FvBlXdo6IDkesZPfA75WRDZExATeCnxkxH5+EPiu9OdvA367bRBqNN04LbJ95tEadP75HPA3ROT9wJPA95EcbflL6cr994H3AGvAfxKRHEm9+R/o0tYHgPeISAPIBihKqRdF5IeB/5p+9leVUv9pxH6+D/hXIvI0sAO8ZcTPa84ep0K2JTm97j8Aq8CbROTHlFKvGOlKTzk6PHaOmeew0s4QwgHvvcGcXodmNsyzTIwi2+n7dXisRtODCvDjWVJSL0Tka4APMQeHumg0QzKsbD8iIp8C7p5Ir2aI3lFoNBqNpi96R6HRaDSavmhFodFoNJq+aEWh0Wg0mr5oRaHRaDSavmhFodFoNJq+/P8XvcwrwXIfYgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEHCAYAAACwUAEWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA2BUlEQVR4nO3dfZAk+VnY+e+TlVnv/T4zOztvO5pZIWmF0NsgYUu8BmdLwFrG1iF0Rgas01q24QLiHGG4wwHGgWUbLuA4sKU1CBnClgLD4diFRRJBWCdCJw6tkEArVivvjvZlXna7p9/rPbPyuT8yq6e6prqmurpes59PRO925XRV/SqrKp/f6/MTVcUYY4w5iDPpAhhjjJluFiiMMcb0ZIHCGGNMTxYojDHG9GSBwhhjTE/upAswCidOnNCLFy9OuhjGmGOiHoQ4AiBtR5VQIePOTn3885///C1VPdl5PJGB4uLFizz++OOTLsZAan6T9VKdehCScR1WihmyXmrSxTLG9HB9s0KokG4LCo04eJxdyk+wZIcjIs91Oz47oe4YqPnNvQ9cPp0i1OgDWPObky6aMaaHlWKGRtCkEYSoKo0gpBE0WSlmJl20oUhkoKgH4UxeYNdLddJuirTrICKkXYe0m2K9VJ900YwxPWS9FGeX8jgClUZzryWRlN6ARHY9OcJebXyW3qx6EJJP7y+rlxIqjdkKeMYcR61gkUSJChQi8iDw4MVLl/b6CtdL9Zl58zKuw24toFwPaDRD0imHQsa9I3gYY8w4JarrSVUfVdWH5ucXgag2Xg/CyRbqEAoZl2sbZRpBSNZ1aAQh1zbKFDKJiufGmBmTqEDRyW/qTE1NK9cDzi8XyHgOtSAk4zmcXy5QrgeTLpox5hhLaFX19qyDWel2gmiMoph1mct5e8dU1cYojDETNTvV7UMIlZmcdZBxHfzm/rTvs9YqMsYkTyJbFBnXmamWRMtKMcP1zQoQja/4TZ25VpE5vmyxaHJZVXWKJH0utkkuWyyabBYojDFHZotFk80CxRSxWpmZVfUgxEvJvmOzNj3dHCyRYxTjNMx+2fZaGUDalb3jNk5hpllrIkbrMws2ESNJLFAcQc1vcnV1l7LfJAwVxxG2Kw0unZobKFhYCg8zq2wiRrJZuD+CG5sVNio+ruOQT7u4jsNGxedG/IU5LJsea2aVTcRINmtRHMHqbp18OoWXii7kXkrIp1Os7ta5dGru0I9ntTIzy5KcFO+4S1RVVUQeFJGHt7e3x/J8qgraeTA+PgCrlRkz21oTUq6ulRI1ESVRgaKVFHBhYWEsz3fPQo6KH+DHm5X4QUjFD7hnITfwY7aCxaWTRQsSxsyQJM9atK6nIzizmGOr2uDmVpV60CTjpji9mOXM4uCBwhgzm5I8a9ECxRFl3BQn5zKEqjgiZNzDtwAs9YExsy/JsxYtUBzBeqnOfNbjRNu+uI0gPFQNotVcTbsp8ukUflNnbmc+Y0yy15LM/iuYoGGsRu1MfVD1A556aYc/+IvrfP65dbYqjWEX2xgzAivFDI2gSSMes2xtdbDSVpGcVRYojmAY6x7ag812tcET17YQFXJpl2YTvvDchgULY2ZAkmctWtfTEQxj3UN7c/W59TL5tIebEhwR8vEWqM+s7fLG+1ZG8hqOMxsbMsOW1LUk1qI4gmHUINqbq6Waj+NErZKFvBc/h0OpZluhDluSpzIaM2zWojiio9YgWvdfL9VxHQc/UE4vZvdmT9X8aHtUM1xJnspozLDZFeiIhtF90QoWhYzLF57boNlUQiek5oeU6z6vv295RKU/vpI8lXFYrGvOtFigOIJhT21dzKd51ZkFvvjCJlsVn8W8x+vOL7GYT4+g9Mdbxo269MqNYO9CWEi75NJ2IQSbtj2IJAdWG6M4gmHv6lXzm5TrAa8+s8i3veIUrz6zSLkeWL/5CBQyLi9slKn7IVnXoe6HvLBRppCxuhPYjnWHlfQxLwsURzCsXb1aH7IvPLfBRqVBqJr4L+ekk6eV6wHnlgukXYdaEJJ2Hc4tFyjXbeIA2I51h5X0wGrVpy76bUJmXIfdWkC5HtBohqRTDoWMe0ff992eq9XEdxwhaIY8cX2LhVyauazLQs7DHywZ7dSahm6NehAyl3WZz3l7x1TVxihiSV5lPApJH/OyQNHhMBexQsblqy/uUMh4ZD2Hmh+yWS4favB5X00EuLXbwHMdGkFIqHBts8qZheyQX+VkrZfqhBr9vz3AjnPGkV0I79ReQQKoNQLmcmnbG+UA7edrs1Kn0khRaQSs7UYLZJdyHqcT8t09vt+KAxymCVmuB5xfLpDxou6LjOdw/pDdF/ua+CKA4opQD5rxXhcaH0+OnVrAeqmGKuS8FKqwXqqxM8b1IklOtzCIzj52L+WgIvhBM3GrjIeh83xl3RSPP7vO1bUyXkpwgGubZbZryRhjtBZFh8M0IetBtMZh7gjdF50123sXc6yXGoRxfDi3lCdMWNdTpeHjiIMX1949V/CbDpWGP7YytK9fqTSaZFyn64UwyTNZ2nVbVzKf9fYCRKdu56X1OEk/V3Dn+QpCZSGbphYEhAoZL8VioUjQPFyS0Gk19YFCRC4B/zuwoKrvHPXzHaZLYhjdF/vSgDhRE38xn+b0Qpasl6IRhHjJalCQ91y2Ax+/GeI6QhAqoSpznnf3Ow/R3RZLTsNYyrh0qyA1w5BrW9U7LvzdzsvV1V1UouCS9HMFd56vehCS8VJk0ynOxZ+pqNIY3DEBYBYrHyPtehKRD4vIqog80XH8bSLylIg8LSI/0esxVPWqqr53lOVsd5guiWF0X7SnAcmmXZphyEohTSYep0hid8h8LkrN7ghU/ahb40Qxs29geRokfSZLu84ElzW/ybXNCq7r3DHds9t5KftNKvXgWJwruPN8ZVwHVXDauomDZmuPmtuX2VmdRjvqMYqPAG9rPyAiKeBXgbcDDwDvFpEHROQ1IvL7HT+nRly+Oxwmf9Ows0VmXId7FnKJzD7ZbqWYQQSWCxkuLOdZLkS3py0g1oOQZhhyc6vKc+tlbm5VaYZhIqeIdlZ6VndqgHBqLnvHhb/b1NkwbhW2S/J02s7zVUi7uA64KYmO+03KDZ98xt33uZ7VysdIu55U9dMicrHj8JuAp1X1KoCIfAx4h6p+APieQZ9LRB4CHgI4c+481zcrY2nSHTXXU7dmfCNocnYxl7gA0dLv+MA0uLZZoZD2yHkpgqZybbPCmcXZ7m/upvM9aYbKuaX9n8HWWF23LlfHkXjyxW1JnkXWeb5y6RRvvnyCjVKd1d06qsqZxTxnOr7HszqNdhJjFGeBF9puXwPefNAfi8gK8HPA60XkJ+OAcgdVfRh4GOC1r3+Dtpp0h70Ajbtf+rgmp5uJdMyqgEDreijxfzRhswu68FwhOGCvlW7p9QteChWJxtSOyXTabp/hxXyaS6fmDrzPrE7Lnu7SAaq6rqrvV9XLBwWJOw3epBt309BWwE4xEU4W09zarfPMWolbu3VOFtOJm64Md/adz2fTvLBRZrfq3zH+1q3L9dKpOS6fLCa+2/SoZnVa9iRaFNeB8223z8XHjkxEHgQevHjpEjBYk+6wTcOjzmDorGHU/CarOzWaoc7MjIgkWyvVOVHMcDqVJWgqa6V6Irue1kt1VGGjfPuzfHI+y3atgePIHd2DB7UIk9yCGIZZ6nZtN4kWxeeAl4vIy0QkDXw/8MgwHlhVH1XVh+bnF4HBmnSH2d50GDMY2msY1UYQJaoLQk4vZGdmRkRiHaOup52qz614xXzOiz7LpVpA3nO5dLI4ExezWdEKFrN0Xkc9PfajwGeBV4jINRF5r6oGwI8AnwCeBH5bVb88zOdtBE2e3yizW20cuknXb9Ow5jf58o0tXtyp7bUoBummam/G39yqkvFSnF/Ok0u7MzMjIrHirqf1UtT1tF5KbtdTxQ9wRPBSUZerl3JwRKj4liTRjH7W07sPOP4Y8NgonxsFHeAL3U/TsNWSqDeixHLNEF7crnJ6IUfGdQ7d3dV6zla3l7SVexZmRCSWKte3qjQ1alE249sXVwoje8pJLcbKpz22K3X8IMRNRQPZoYbMpae779yMx9SvzD6M9jGKCysFGsFgy+fvNiOnNeBdyLo0lb1UFJvlqAUz6AyGaZgRMYurRkel3gy5uVkFcZBWj5OG3LuYG8nzTXIl+HzWxXWEcj2g6jdJpxxWitlDZUI2s6v1vRe3e81g6mc9HUbnGMWgs4futldCa6bSYj5NIwjxmyEpB8qNYKAZDK3n26kFXDtgpsk4zOqq0VFZ3a6RTju4qai3yU1BOu2wul0byfNNcjHWSjFDoxl9llUVvxnSaIZTPxvHHF3Nb3J1dZcb21VwUl0bD4lqUbQ0giY3t6qH3hsCopP2zFqJSj0g1GgJ/lbV5/LJ4l6trlXzz3opTi9k2ao0KNUCsunDz2Bor0Uu5T1cR1jdreE308znvLEOdh3XNR0H2a0FFDMe+fTtr0mlEbA7oiy3k16MtVtt8PRaiXItoJB1uf9kcSzPaybrxmaFjYof7e6o2rVmnchA4cQLfw67NwTAja0qm+U6hbS311e7Wa5zw0txKf7irBQzdwSThUJ6XzDpV+fFeT7nkfVSB2btHKVJX6imzVzWZbvq46duJy/0g5CFEeWkGsZGWIP62uouz29UOVHMcnZBqDeV5zeqLGR3edXZxZE/v5mc1d36Xmr5gySq60lEHhSRh3d2tgfaGwLgpe0qjgiblQbXt6psVho4Iry0Xd3/XKr7pk3KgFMmp2nB3WGmBifB3boYz68U8FyHtd0az66XWdut4bkO50c0mF3IuFzbKNMIon28G0HItTHt4/3MWpm5rEvOS+E4DjkvxVzW5Zm18sif20yWqt6RfqVToq4ArTGK5aUlTi/kKGbdQ19wG01lbTfaVCcbZ4Rc263RaLuArpfqzOXSXFgusJRPs13x+asbO3zqqZfYqjQO9XzTdHEe56rRSe+Z3c94zHIhjQPM5TxOzWWYy3k48fFRGMZGWIOqB03cjlmCextomUS7ZyFHxQ/we1wrExUoOg1ywfVcIQwFjUOsooSh4LXNRGq1ArYrDZ64vkMQKsvFNNVGky88t3GoYDFNS/qzXoqVYobV3SpPvbjD6m51JLOepmHQfL1Up+o3+crNHf706jpfublDNZ750SrjM2u7pL1o97L5XJrzS3kun5ob2YW7Hk9NbeeOqXV5dinPbt0naCqqStBU1it1MilnYsF82nWr7Ey6AjSI5UIav6k8v1FGUl7XC08ixyjg9gX3sP38S7k0QaDUgpCq3yTlOKwU0yzlbtciW62A5zcq5DOpvcyiC7k0hYzLM2u7vPG+lb6eb5qW9LemyJ2ay3F2MUrstl6qk/VSQy3PNAyaX9uq8KUXtvBSKQoZh2pDeOrmDpfvmdtLelfzo71BmgqNIGQxnx5onUzfVLl6q4wfKmGoOI6wXqqPdN1GyyvvnWer6lP1AxyJgtZuNeDUfI613RqOE1WMLp2aO/CzcJymVidl86bWe3ZuKU8p56Pa7PrhTmSLouY3B64Nz+c8VorpvS+LI7BSTO/bVKfVCtgqN0jHA96NZpOFvEfWcygdclbMtCzpb8/38/xGhY1yPd7PerjTMyc9LlPzmzx5YxvXcZjPuYBQbgSA8OJ29fY6mXS0mNJLOaRdh61KY6TdgvVmyK3dGhpGnwkN4dZujXpz9OdlMZ/mmy6tcO9ilkLGxRPhfNy1mk+7uI7DRsXnRpw1tlNrtuCNrSpruzVubFV5Zq00shr1pGvuSdm8aT1O21KuB/ihQhgmP1C0BrMblRKn5nKsl+qH/gAVMi6rOzXmsx6XThSYz3qs7tT2DSi2LuzFXDQrRgROzWfJuClqfrSP9izaqfrc2Kry0k6d9VKdl3bq3NiqslMd7l7Wkx6XWS9FXSpeyqGpkHIEkWjqa0pkL5AtFdI0mk38ICQlUK4Ntk6mX1vlBueWC6RdZy8lzLnlAlvlw417DWoxn+aN963wra+4hxPzWU7NZ/al9MinU6zu3u6aa79Qf+1Wic1yHddx9gLLZjn6/AzbNHRdtja1enE72tTqxe0qtUYwc5s37dQC1kvRmGzOSx2YniZRgWJvwd3C4sDRvFwP9r6stbYva2e/dNZL8U2XTrCY8yhmXDxHqNQDynWfyycPzkc/zTarDdZLDRyJPjSOwHqpwWZ1uBeqlWKGnZrP8+tlnr1V4vn1Mjs1f2zjMvUgZGUuw1zOReT22EDGc1gupjvWyeQQgd16QGaAdTKHISJkvRSn5rOcW8pzaj7aN10mkFuq60wYjY53u1D/1fXtKFdUXJv2XIe8594xW3AYpmKXOFWubVb3JVF8cafOi227Idb85tTPGqw0fBxxqAUBX3lxG/EyXfs5Z7Pq26dB04x7KdkLrCLdawU1v0m5HrBUSPPiTo2U47Bc8Hj9fcss5g83K2Za+nb9QHEcReJ5v4LgOIofDD9b6t704laC1jFmZM24DieKWb7w/Aauk6KQSeFEheDyyagPvrUxT+v9mAvckXcLnprLcGO7hojsrduoNJqcWciO7DkPcs9Cjq/dKhGUdG+tkJsSXnai2HWMyXMcdqo+821jeQgjCXJTsd5HhIYfUG4EhKEShEqp1iDjumyWG/hByLO3Slw4UeCBexfGV65Dynsu18oVnl0rUcx4EGryu546DRTNu9QUrm1W96WWbq9RnV7I8eozi1w6UeDVZxYHChKTbka3pFPCQs5jo1znuXiMYiHnkU4N98vePr344okiF5YLzOXSY6sRFjIu25UGZxbzVBs+X31xl2fWdnnN2ej9G/Ze6P06s5RnOe8RhCGVRkAQhiznPc5MYFX8ciFNEIT4YZzSIwwJgpDlQrrrGNM9ixl2a8G+FCCVRpNTc8NvJU666xKiYJVKOXutrlLNJ+ulCAEEUinBdR12xtRtOKj5nEe5HlDIeIjTqrndKaEtisFnPXXWFBxH8IR9fXfdNnkppN2BZu1MwwyglsVCmi+9sMl8LsOJuQx1P2R1p8Zrzi8N9XkmXSMs1wNOzmd59laZ80tFvu50inTKYaPcoOY392Z5jfv8Z70UZ5byPLO2S8VvUsy6nJnQ5IZyPeDEfIanV3fZrvgs5D3uj6cGd0teuVLIUm2EBGFII4i+N6MKcivFDFdXdyn7zb3vaMFL9dyCdNgqDZ+c57JSjC6hIsL6bo2Uo5yNN7ZSVXZq/lSnwFkpZtiIezP8Zog4bvJzPbWyx973sksD1wJbNQXfj7uaFFLx4GLLTtVnu+qT8eKpsaFyqxTVvs8e8po66Ytmu0zKYWUu2smt5jdxRFiZy5LpsbR/oOeZcJbcehDiByFnF/N7mX9Vld3q7S/1JLoDxzU9uR9ru3WeXSuxkM1wai5H3Q95dq1EShxeee/8HXtmi8DrLixRrgdjOWf1eGFs3W+S8VK4C+O9EOc9l+3Ax29G6V0cib6z98zfbkEFTSXvpaZ6MLvmN6n6IdVGk6AZQirVNT9NorqeWoPZc/OD9wm2agpnl/KcXy5wdilPznOpNG7P/BnmJi/T0IzeI8Llk0VOL2RZKWY4vZDl8sni0DfqmfQiw4zrUPGb+xa3BaGSz0Rf6kl1B7amKq6XounJ7bfH7cWdKmnXJZdO4YiQS6dIuy4v7lQn1jXXcmOrSrnuc+98nvtPzXPvfJ5y3R/JDKuDzOc8ThQzOAJVv8li3mWx4BGEsLpT47m1Mte3KniuM9WD2c+s7XJ2Kcd6ucZm1eegL/v0voIjcISBv9x5zyWM+1hbfa2hKnnvduMrn/YINaqVqkaJ4kINyacPnyxu0hfNdhnXIeU4nF7Icd9KgdMLOVLO8D/ok77QrBQzCFBtNG+n1A5CihmPjOtMbFbNTi3gxlaFl+JdE1/aqXFjK0o/P24pEVIO+74HKSc6Dneu/QHGFlxf2q6S99yxzLA6yEoxgwgsFzJcWM5z70Ke83FLdLvaIOMJ8zmPtY6p9dNmo+yzsVtjMZch5wp7M1k6TO8rOBLZ6/M/bP/gfM6jqcrNrRrlRkAh7XLvYnbfgrv5rEszDLm5XY0HglzuXcgxP8D6iWlamd1akQy3uxQGGufpwyTGANqf+4EzCzx5Y5vdakg+k2KlkEYkOgc3tqoT6Q7crjRYL9VZyGVIOdAM4zUf7vg/C8vFNNV6tCdFLYgy2c5n0+Qy3SsN4xxrE2nbx3zv4GhmWB2kle7mmbVdSrWAYtYl66W4dz7D9e06m+UGpxdyXFjJU64H+ya5TMssR4BmGLJZDTgxl8FN5dDA77rZSiJbFC2DLHYpZFzWdmos5KIFdwtdagV7f5NNc+lEkYVseuprDv2YdE1/nBbzaV51ZoFM2mG76rNda+x9YSfVHVj3m7iOsy/PmOs41CcwA+7yyTnKdZ9qIxowrjaaPdcIjXO1/am5DJVGcywzrA7SPp70itPzLGTT/OULW9yqNDi9kOXCcoFmGO2w2d4iHHa35lFXqJ+ez+L7IfVGQBiGyAFdT7N9ZbuLQb7crQye5Uawl8FzuVDYVyvo52/6NcntL7sZV01/0rWqXgPH3fYbyWfcaLxmhDJeipOeQ7VxuxZ/cj5zUG/ASGW9FKcWctzcruwNGJ9aOPgzOc4JCmeW8mxXG9zcru6V7d75zFinEXe2oMqNgGYz2hWxGUbbI+fcVLT5Vdbfd7/WuFP7niODtLyGce04OZfl1ecW+eLzGwQ7DXCk6x0TGigGnx5bD6IUHHNtXU2quq/boZ+/6dc0TY8dl2kIjr3O+0oxM5EFga0Fd0uF9N6Cu3I94MzC+Mer1kt1ThQznGnbH7zXHvTjDq5pz+Vkkb3nSnvjvZR1zlbcrQX42qQeKCmBMFRu7dbJuELeu30OdmoB25U6GdfdSya6XqoR5DOcPWQZhnHtKGSisZ6Xn55DQ9Cw2XVALFGBYhjTY/upGQ2z9tRKPHhz63YNYzHv4Y9vofLYtVJ8X71V2jfGM87g2GtacmtB4Mrc7fez10VyWM7Eg6FlvznytQh3M8i07XEF1/VSnflsNOuoZRzvT7vOa0DNb5JxXfLzLo44+GGcFiad2je+2UqZ0ZqW7bmC33T2zars1zCm1pfrAZdPFtmsRN3nNJtdC5KoQKGqjwKPXrly5X2DfmD6GdBdKWZ48ubOvmb5vQt5XnXv/EDPeW2zQiHt7dUwrm1WOLOYzNYERHP0n1ndoZBJs5BLU/dDnrq5zeVT8+MLFI2Ar7y4E892crmwnCeXdsnEa2YmEbyz8aKxaRjovFtlqLPrsB6EYwuu07D2qPM6kXKEjAteymU+5yII5YZPLu3um8HYuf4iCKMUKXPe4WdMDqPCWg9C5rIu8zmP+1YKhH6165aGiR7MHkQ/A7o1v8nqdhUNhYzroqGwul0dbEBKW9Wv+LbE/xlj7qNx6zVHfxy2Kg2e24yyfRa8FH4z5IsvbHErTk0PcHWtxGqcRXd1p87VtdJYyjYtKed7TdvuNiD7/HqZZrh/4HpUg9nTsPao8zoxn3P5+nNLnJrP8OJOjec3KqDC+cXcvvewc/2FI3CimNnX6ujXSjHDbrXB8xtxcs2NMrvVxqGm1rfOZc1vcnOriqS8roOsiWpRDMvdBnSfWdtlqZAh3zbLqVIPDrVh0R4Rzi3l2K76VP1oeuy5pRxhcuMEKRFCR/fVqtrn6I/aM2u7LOfTnJzLsF3xaTajGmo9iDLG1hsBt0oN5nMeWdeh3lRulXzunR//eoZJ6TVtuzW+1N43Xsi6rO3WubBy+zsxqov3OKdx99J+naj5Oa6u7uI3lVNzWfwgSmdSbYZ7aWHay75cyOwr+6DrplTkdnomjW8fQmtsabNcb60V63rlsUAxgFItYKljdlPWc9g85H7ZEEX0VnLBlkYQRvmlEuqwc/SHrfX++W3ROOs67Map5LdrAeeXc1T9cG9fiPPLObYnsPBtkg6qMHXr+jlZzPDsrXL02R3TGpxpWHvUXiYRYbvq46aEfDpFIZuhUm9yY7Oyl4dqmGUfxlhN1kuRcx0qXopA9cCeDAsUAyhmXWp+SL7twjbohkXTUjsap8sn5/jCcxsUM9GOgDU/pFz3+fqT40nHXMy6bFV9yvWAdCoVBYlaAPFeC6pKxk0xl71dGWj4TerB9O9/PA7d+sZTjsOF5dtdMaO+eE9yweZBtqs+963kSbctkGwETVZ36/sSFg6r7EMbSxPh/FIeEUHDoOtgto1RDKC1GKlSjxapHGXDouO0yK1lMZ/m9fctk0rBZqVBKsVA+3gM6vLJOVa3awRNxZFof3S/qVw6Fe21cM9Cjoof7EvRUvED7mlr9R1nB41fnFnKT8X4yqTUgyarOzWubVZY3alFFYt4s6dRubZZ2dudTjW6fVjdxnw6WYtiAK0L3TNru2xWGhSz7pEudNNYOxq11rabk3ru++8psrZbZ7sWUMy4fP3ZeeZzXrRR0GKOarz/caMZzdNfKuxfU3CcTWPXz6TV/CYatga2PcJQubFZIZ9xedmJ4h1/O5SZbUOaCNPeq3EQCxQDmuSFzhzdybksK8Xs3oAsRP27Gdch66W4fLI4FdNUp9VxrNz0sl6qc245j5MSqvE+GeIIKdhXwRjqYtMhTYRpz1slbqZrbShRgaJ9wd31zcrMfLknnc7iOLrb2JBdCKfbtH1nWtka7nMLbFUa0SSIlJBx9+8lMsxMDMOaCNOezkaDetc56okao2jtR7GwsDDRLUUPY5q2Qj1OjuPY0DAdNRndUZ/76uouN7arrO3WuLFd5erq7kS/M61+/qyX2kvTv1LM3rE+YpjJE4e1RUFn8OomUYHitvHtIXBUk9r7YNImeaFp6bW4bRrKN60mXbm5sVlho+LjOg75tIvrOGxUfG4MMJA7LP1etIe5WHBYlZ1uwatTorqeOk1qS9HDmIZ0BOM2DUkB71a+zj2ZtysNLp2am4ryTdqkE1mu7tbJp1N48Ra9XrxuoXMa6qh16/4q14OeA/zDng4/jC7SbtOdOyW0RRGZ2JaihzAN6QjGbdpbUZOssc5CS2ace090o6p3rh8e8TTUTt1aVa3Mw72mB09jl2d7a+ggCb0ajX5L0WF9oadpK9RxmfSFBnq/f+011tae6K0a6zjKNO3jVZOu3EzDOpejVHamJZ9XZ3kcARGn65uYyK6nmt9kdbfK5ZOj6SoYZtfJtM1JH8dsknFuctPN3d6/SdVYJ92l06+VYuaOrrlCnPl2HKZhnUu3LuNmGHJ9u3bX7860zdiC29chDRpdI10iA0XWS3FqLre3Y9mw34Rhf6GnZSrmuMYOJp225G7v3z0LOZ5d28VX9i6EnsDFAVbeH8YsjVd1S0Y3rgvgNKxz6bYfxbXNKhnX6fndmfbxuYMktOtptP3e09B1MgrjGjuYdD/t3d6/5UKaRsi+ro1GGB0fpUl36fSrlYzuwkqBiyeKXFgpkEk5/NWN7bF1m026+6azy3h1twYop+azPb870z4+d5Cen0ARSYnIj4+rMMOW5Hz4ozDOADjJL/rd3r9yPeD+k0XOL+c5MZfl/HKe+08WKddHmz12Vsarun1OSnUfhZm7AA6qs7ITBCHnOj7H3b47s1rJ7Nn1pKpNEXk38ItjKs9QJT0f/rBNeuxgXO72/g1zT/TDmLbxqoN0+5xU6s2Z6TYblvYu49Yq6XbdvjsZ16FUCyg3gr1us0I62sRrmvVzBfiMiPyKiHyziLyh9TPykh3JaGtjk+46GZVZqdEe1d3ev0m2GCfdpdKPbp8TEShm969CTmIl4yD9fncKGZcXNsrU/TDaFMsPeWGjTCEz3cPF/ZTudfH/f7btmALfMfTSDEmojPziPS0D0MM0KzXaYej1/iW1xTgs7UnkSrWAYtblZXHX3Dg2LppG/X53yvWAk/NZbm5XubEdUMi43LuQo1wPxpZmfxB3DRSq+u3jKMgwtJIC3n///cfmAzpsSQyAh3WcAuYg2pPInV2MgkK5HvS1MjnJ+vnu7NQC1kt1whAyboowjAa4U47D2TGVcxB3DRQisgD8NPAt8aH/B/hZVd0eZcEGoaqPAo9euXLlfZMuy6yaxjnek3AcA2a/7/1B04vL9eDYnbPD2q40WC/VWchlSDnQjANFxp3u71g/HYgfBnaB74t/doDfGGWhzGTMysrgYZiFVBnjdJj3flZn7kyDut/EdRw0XoSiKK7jUJ/yz18/YxSXVfXvtt3+FyLyxRGVZyoc11r1rKwMPqpZXfQ0Sod574/L7LhRyHgpTnoO1UZILYj2uT45n0GQu995gvp5Z6si8tbWDRF5C9B1c4skOE616k7HpaY4q4ueRqkehDTDkJtbVZ5bL3Nzq0ozDLu+98dldtwonJrL0AxhqZDm7GKOpUKaZhgdn2b9tCjeD/xmPFYBsAn84OiKNFnHpVbdzXGpKc5SqoxxurZZoZD2yHkpgqZybbPCmcU7P/M22D+4M0t5an6Tst+kEUTpYZbzHmcmeG1p70Eh5Xnd/qZnoBCRFPAeVX2tiMwDqOrOCMo6NY7zReS4TAs9LgHxUFQBYa8HROL/HJAI8TgO9g9DNk6eOC1d253dsNC9D6yfldlvjX9PdIBoOc4XkeNSUzwuAfFQRDi3lGO76lP1o/f+3FLujtXG5uimKcjeuQ1q95pBP11PXxCRR4D/ApRbB1X1/z56MafPcb+ITNOHeFSOS0A8jFYKitNtezo0ghBvusdYzRF160Hppp9AkQXW2b8SW4FEBopuq05Hta+FmZzjEBAP47hXkI6rfrZBhf7GKNZV9Z8Os3DTrNuq01Hta2HMtDhsK+u4TiFPms4KAsjAYxRvGX7xptdxnvV0nNiF7k79trKmYR2KvX+Ro56HzgoCd+7tCPS3juKLIvKIiLxHRP5O66fvksyY47KW4Dg7zmtlhmHS61Ds/YsM6zy0Zyym6fvd/sbGKDoc51lPx4W1Go9m0lPI7f2LjPM89JM99oeH+oxTLhrILlGpB4Qabdyez7hcPlmcdNHMkEz6QjfrJl2ZsvcvMs7zcNd3VkS+TkT+WESeiG9/g4j81NBLMkVEdd/CIzlg0ZGZTYfZmMiSB95p0ik8pmUr4kl/NoZ1Htpfx0Ers/t5xP8A/CTgA6jqXwLff6iSzJD1Up25XJoLy/HG8csF5nLpY50HKGn6vdBZX3h3k97hcdKBCqbjszGM89D5OjhgZXY/gSKvqn/WcWy0u8xPkA1mJ1+/F7pJD9qa7iYdqGA6PhvDOA+dr+MoK7Nvichl4mlTIvJO4GbfJTkiEfnbwHcD88Cvq+onR/l8k+5/NePRz1RQ6wvvbhqmx056weS0fDaOeh76XZndz9XvnwAfAl4pIteBHyPKKHtXIvJhEVltjW+0HX+biDwlIk+LyE/0egxV/a+q+r74Od/Vz/MexTQ0a810mJa+8GkzDbXpSUvKZ6Pb6+jmrq9KVa+q6ncCJ4FXqupbVfW5PsvxEeBt7Qfi1d6/CrwdeAB4t4g8ICKvEZHf7/g51XbXn4rvN1LT0Kw108EqDd1Z92xyPhudr2OgldntVLV897+64z6fFpGLHYffBDytqlcBRORjwDtU9QPA93Q+hkQdZ/8a+ENV/fODnktEHgIeArhw4cJhi7rPpJu1ZjpY8sDurHs2OZ+Nfldm9x0ohugs8ELb7WvAm3v8/Y8C3wksiMj9qvrBbn+kqg8DDwNcuXLF5rOanvpNfWCVhjsdlECwdfy4pNVIymdj3+s4YGX21FcBVPWXVfWNqvr+g4KEMYcxDVMbZ1m37tmVYob1Ut3OaUId2KK4Wz6nI+xHcR0433b7XHzsyETkQeDB+++/fxgPZxLKUkAcXWdtujULys5pMvXqenqwx78dJdfT54CXi8jLiALE9wP/04CPtb9Qqo8Cj165cuV9w3g8k0zTMrUxSeycJtuBgWIYOZ5E5KPAtwEnROQa8NOq+usi8iPAJ4AU8GFV/fJRn8sMx3FI32yDscNn5zTZ7jqYLSL3AP8KOKOqbxeRB4C/pqq/frf7quq7Dzj+GPDYYQtrRmsaFlKNg+3mNnx2TpOtn3D/EaLa/5n49leJFt1NHRF5UEQe3t7ennRRZtJxWUhla2WGz85psvUTKE6o6m8DIYCqBsBUdjyq6qOq+tDCwsKkizKTjtNCqvbNWuyCNhx2TpOrn0BRFpEVbud6+ibAquwJlJS0BMaY4epnwd3/CjwCXBaRzxCl8vgfR1oqMxHWz2yM6aafHe4+LyLfCryCKFf5UxyQs3zSbB3F0SQlLYExZrj62eHuU8A5Vf2yqj4BvI5oLcTUsTGKo7N+ZmNMp366nj4AfFxEfpkoT9N3AcdqH21jjDnO+ul6+oSIvB/4I+AW8HpVfXHkJTPGGDMV+ul6+ufA/wV8C/AzwKdE5LtHXC5jjDFTop95jyvAm1T1s6r6IeBvYgvujDHm2BDtvpf2TLty5Yo+/vjjky6GMcbMFBH5vKpe6TzeK834L6nqj4nIo3TZ9UhV/9aQy2iMMX05Dskrp0mvwezfiv//C+MoiDHG9OO4JK+cJr0CxZdF5MeA+4EvAb8e53kyxpiJsY2nxq/XYPZ/BK4QBYm3A//HWEp0BDaYbUzyHafkldOiV6B4QFV/IJ7p9E7gm8dUpoHZymxjks+SV45frzPrt36xLidjzLRYKWZoBE0aQYiq0ghCGkGTlWJm0kVLrF5jFK8VkZ34dwFy8W0BVFXnR146Y4zpYMkrx6/Xntl21o0xU6kVLMx4WKeeMcaYnixQGGOM6SlRgcKmxxpjzPAlKlDY9FhjjBm+RAUKY4wxw2eBwhhjTE8WKIwxxvRkgcIYY0xPFiiMMcb0ZIHCGGNMTxYojDHG9JSoQGEL7owxZvgSFShswZ0xxgxfogKFMcaY4bNAYYwxpicLFMYYY3qyQGGMMaYnCxTGGGN6skBhjDGmJwsUxhhjerJAYYwxpicLFMYYY3qyQGGMMaYnCxTGGGN6SlSgsKSAxhgzfIkKFJYU0Bhjhi9RgcIYY8zwWaAwxhjTkwUKY4wxPVmgMMYY05MFCmOMMT1ZoDDGGNOTBQpjjDE9WaAwxhjTkwUKY4wxPVmgMMYY05MFCmOMMT1ZoDDGGNOTBQpjjDE9WaAwxhjTkwUKY4wxPVmgMMYY09PUBwoReZWIfFBEfkdE/tGky2OMMcfNSAOFiHxYRFZF5ImO428TkadE5GkR+Ylej6GqT6rq+4HvA94yyvIaY4y506hbFB8B3tZ+QERSwK8CbwceAN4tIg+IyGtE5Pc7fk7F9/lbwB8Aj424vMYYYzq4o3xwVf20iFzsOPwm4GlVvQogIh8D3qGqHwC+54DHeQR4RET+APjP3f5GRB4CHgK4cOHCcF6AMcaY0QaKA5wFXmi7fQ1480F/LCLfBvwdIEOPFoWqPgw8DHDlyhUdQjmNMcYwmUBxKKr6KeBTEy6GMcYcW5OY9XQdON92+1x87MhE5EEReXh7e3sYD2eMMYbJBIrPAS8XkZeJSBr4fuCRYTywqj6qqg8tLCwM4+GMMcYw+umxHwU+C7xCRK6JyHtVNQB+BPgE8CTw26r65VGWwxhjzOBGPevp3Qccfwyb6mqMMTNh6ldmH4aNURhjzPAlKlDYGIUxxgxfogKFMcaY4bNAYYwxpqdEBQobozDGmOFLVKCwMQpjjBm+RAUKY4wxw2eBwhhjTE8WKIwxxvSUqEBhg9nGGDN8iQoUNphtjDHDl6hAYYwxZvgsUBhjjOnJAoUxxpieEhUobDDbGGOGL1GBwgazjTFm+BIVKIwxxgyfBQpjjDE9WaAwxhjTkwUKY4wxPVmgMMYY01OiAoVNjzXGmOFLVKCw6bHGGDN8iQoUxhhjhs8ChTHGmJ4sUBhjjOnJAoUxxpie3EkXwBhjZlHNb7JeqlMPQjKuw0oxQ9ZLTbpYI2EtCmOMOaSa3+T6ZoVQIZ9OESpc36xQ85uTLtpIWKAwxphDWi/VSbsp0q6DiJB2HdJuivVSfdJFGwlR1UmXYehEZA14btLlmBIngFuTLsQUsfNxm52L/fo+H+KmM6pheMdxcRwNGrMcLe5T1ZOdBxMZKMxtIvK4ql6ZdDmmhZ2P2+xc7Gfn42DW9WSMMaYnCxTGGGN6skCRfA9PugBTxs7HbXYu9rPzcQAbozDGGNOTtSiMMcb0ZIHCGGNMTxYoZpSIfFhEVkXkiQP+/R0i8pci8kUReVxE3tr2b/9WRL4sIk+KyC+LiIyv5KNxxPPxb0TkifjnXeMr9Wjc7Vy0/d03ikggIu9sO/aDIvLf458fHH1pR++I5+PjIrIlIr8/+pJOLwsUs+sjwNt6/PsfA69V1dcB/wD4NQAR+evAW4BvAL4e+EbgW0dZ0DH5CIOdj+8G3gC8Dngz8E9FZH6UBR2Dj9D7XCAiKeDfAJ9sO7YM/DTReXgT8NMisjS6Yo7NRxjgfMR+HnjPaIo1OyxQzChV/TSw0ePfS3p7pkIBaP2uQBZIAxnAA14aYVHH4gjn4wHg06oaqGoZ+EvuclGZdnc7F7EfBX4XWG079jeBP1LVDVXdBP6IGT8XcKTzgar+MbA7oqLNDAsUCSYi3ysiXwH+gKgWjap+FvhvwM345xOq+uTkSjk+3c4H8BfA20QkLyIngG8Hzk+qjOMgImeB7wX+fcc/nQVeaLt9LT6WaD3Oh4lZoEgwVf09VX0l8LeBfwkgIvcDrwLOEV0EvkNEvnlihRyjbudDVT8JPAb8v8BHgc8CyUwBetsvAf9MVe/IVXRM/RJ2Pnqy/SiOAVX9tIhcimvM3wv8qaqWAETkD4G/BvzJJMs4Tu3nQ1VvqerPAT8HICL/GfjqZEs4cleAj8VzGE4A3yUiAXAd+La2vzsHfGrchZuArudDVf/rREs1RaxFkVAicn9rNpOIvIFoPGIdeB74VhFxRcQjGshOfNfTQedDRFIishIf/waiQf7OAc1EUdWXqepFVb0I/A7wj+OL4ieAvyEiS/Eg9t+IjyVaj/NhYtaimFEi8lGi2t8JEblGNFvFA1DVDwJ/F/j7IuIDVeBdqqoi8jvAdwBfIhrQ/biqPjqBlzBURzgfHvAncQzZAX5AVYMJvISh6eNcdKWqGyLyL4HPxYd+VlXvNgg89QY9H/F9/wR4JVCM7/teVU188OxkKTyMMcb0ZF1PxhhjerJAYYwxpicLFMYYY3qyQGGMMaYnCxTGGGN6skBhjDGmJwsUJtFE5H+J06n/pyE81g+JyJm2278mIg8c9XHbHu8xEVk8xN9fvFvq7B73/RkRuS4iPxvfljjl/NNxOvY3xMcvx6nZS4M8j0kGW3BnZl684loOyNXzj4HvVNVrHfdxB1hY90PAE8ANAFX9nwco7oFU9buG+Xh9+EVV/YX497cDL49/3kyUIO/NqvoM8DoLFMebtSjMTIpr00+JyG8SXbz/uYh8Lq4N/4v4bz4IXAL+UER+PK5F/5aIfAb4rfgx/kRE/jz++ettj//PRORLIvIXIvKv481srgD/Ka5h50TkUyJyRUTeLyI/33bfHxKRX4l//wER+bP4Ph+K9z046DU9KyIn4nI9KSL/QaINpj4pIrn4b94Yl+kvgH/Sdt+UiPx82zn4h/HxHxeRD8e/v0aizZnyXZ7+HcBvauRPgUURuXegN8ckjgUKM8teDvw74MeJMuG+iWgDojeKyLeo6vuJav/frqq/GN/nAaIWxruJ9h74H1T1DcC7gF8GEJG3E10436yqrwX+rar+DvA48PdU9XWqWm0rx+8SJVtseRdRkrlXxb+/Jd4wqQn8vUO8tl9V1VcDW0QpSAB+A/jRuFzt3gtsq+o3Em1G9T4ReRnwfwL3i8j3xvf9h6pa6fJ8xzLFuOmPdT2ZWfacqv6piPwCUQK7L8THi0QX2k93uc8jbRd5D/gVEXkd0UX86+Lj3wn8RuuCerd8R6q6JiJXReSbgP9OlBvoM0Q1/jcCn4tzSeXo2Binh6+p6hfj3z8PXIzHLxbjjXgAfouoywii1/8NcnsbzwXg5ar6NRH5IaINmT6kqp/p8/mN2WOBwsyycvx/AT6gqh86xH0gaom8BLyWqHVdO0JZPgZ8H/AV4PfihIMC/EdV/ckBHq/e9nuTKMj0IkQtjW4J614OlIAzXf6t5Tr7N2w6Fx8zxrqeTCJ8AvgHIlKEaMcyETnVx/0WgJvxIPh7gNb4wR8BP9zqy5doL2mItsScO+Cxfo+ou+rdREEDon2639kqi4gsi8h9h3plbVR1C9gSkbfGh9q7sT4B/KM4Gy4i8nUiUhCRBaIutW8BVtpaHJ0eIcquK3HLaFtVbw5aVpMs1qIwM09VPxmPB3w27uIpAT/A3bt5/h3wuyLy94GPE7c2VPXjcXfU4yLSINoB738DPgJ8UESqRJs9tZdhU0SeBB5Q1T+Lj/2ViPwU8EkRcQCfqDvquSO83B8GPiwiyv59M34NuAj8edySWSPaye8XicY6vioi7wX+m4h065J7DPgu4GmgEj+PMYClGTfmWBKRnwFKbdNj7/b3JVUtjrZUZlpZ15Mxx1MJeKi14O4grQV3RGM55piyFoUxYyYi/x/RVqzt3qOqX5pEeYy5GwsUxhhjerKuJ2OMMT1ZoDDGGNOTBQpjjDE9WaAwxhjT0/8PF2QSg9r/1ygAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\GU\\AppData\\Local\\Temp\\ipykernel_25976\\3554977865.py:20: UserWarning: Attempting to set identical left == right == 0.8 results in singular transformations; automatically expanding.\n", - " plt.xlim([np.min(values), np.max(values)])\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "properties = [\"position\", \"z\", \"snr\", \"gradient\", \"refractive_index\", \"NA\"]\n", - "\n", - "validation_prediction = model.predict(np.array(validation_set))\n", - "\n", - "snr = [image.get_property(\"snr\") for image in validation_set]\n", - "\n", - "validation_error = np.mean(np.abs(validation_prediction - validation_labels), axis=-1) * 51\n", - "\n", - "for property_name in properties:\n", - " property_values = np.array([image.get_property(property_name) for image in validation_set])\n", - " if property_values.ndim == 1:\n", - " property_values = np.expand_dims(property_values, axis=-1)\n", - " \n", - " for col in range(property_values.shape[1]):\n", - " values = property_values[:, col]\n", - "\n", - " plt.subplot(1, property_values.shape[1], col + 1)\n", - "\n", - " plt.scatter(values, validation_error, alpha=0.1)\n", - " plt.xlim([np.min(values), np.max(values)])\n", - " plt.ylim([np.min(validation_error), np.max(validation_error)])\n", - " plt.yscale(\"log\")\n", - " plt.ylabel(\"Pixel error\")\n", - " plt.xlabel(\"{0}[{1}]\".format(property_name, col))\n", - "\n", - " \n", - " plt.show()" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 5.3 Experimental data\n", - "We play some experimental videos tracked by the DeepTrack model, compared to radial center method." + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" }, { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:57:50.214035Z", - "iopub.status.busy": "2022-06-30T10:57:50.213534Z", - "iopub.status.idle": "2022-06-30T10:57:50.230034Z", - "shell.execute_reply": "2022-06-30T10:57:50.229544Z" - } - }, - "outputs": [], - "source": [ - "import cv2\n", - "import IPython\n", - "import numpy as np\n", - "import os\n", - "\n", - "from radialcenter import radialcenter\n", - "import matplotlib.pyplot as plt\n", - "\n", - "def track_video(video, frames_to_track):\n", - " video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))\n", - " video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))\n", - "\n", - " # Initialize variables\n", - " predicted_positions = np.zeros((frames_to_track, 2))\n", - " predicted_positions_radial = np.zeros((frames_to_track, 2))\n", - "\n", - " # Track the positions of the particles frame by frame\n", - "\n", - " for i in range(frames_to_track):\n", - "\n", - " # Read the current frame from the video\n", - " (ret, frame) = video.read()\n", - "\n", - " frame = cv2.normalize(frame, None, 0, 255, cv2.NORM_MINMAX)\n", - "\n", - " # Convert color image to grayscale.\n", - " frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) / 255\n", - " \n", - " radial_x, radial_y = radialcenter(frame)\n", - " predicted_positions_radial[i, 0] = radial_x \n", - " predicted_positions_radial[i, 1] = radial_y\n", - "\n", - " ### Resize the frame\n", - " frame_resize = cv2.resize(frame, (51, 51))\n", - "\n", - " predicted_position = model.predict(np.reshape(frame_resize, (1, 51, 51, 1)))\n", - " \n", - " predicted_position_y = predicted_position[0,0] * video_width + video_width / 2 + 1\n", - " predicted_position_x = predicted_position[0,1] * video_height + video_height / 2 + 1\n", - " \n", - " predicted_positions[i, 0] = predicted_position_x\n", - " predicted_positions[i, 1] = predicted_position_y\n", - "\n", - " IPython.display.clear_output(wait=True)\n", - "\n", - " plt.imshow(frame, cmap=\"gray\")\n", - " # Make markerfacecolor transparent (marker edge color default).\n", - "\n", - " plt.scatter(predicted_position_x, predicted_position_y, marker=\"o\", s=500, facecolors=\"none\", linewidths=3, edgecolors=\"r\")\n", - " plt.scatter(radial_x, radial_y, marker='x', s=400, c=\"g\", linewidths=3)\n", - " plt.axis(\"off\")\n", - "\n", - " plt.show()\n", - " \n", - " return predicted_positions, predicted_positions_radial\n" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\GU\\AppData\\Local\\Temp\\ipykernel_25976\\3554977865.py:20: UserWarning: Attempting to set identical left == right == 0.8 results in singular transformations; automatically expanding.\n", + " plt.xlim([np.min(values), np.max(values)])\n" + ] }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, the blue circle is deeptrack, and the cross is radial center" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "properties = [\"position\", \"z\", \"snr\", \"gradient\", \"refractive_index\", \"NA\"]\n", + "\n", + "validation_prediction = model.predict(np.array(validation_set))\n", + "\n", + "snr = [image.get_property(\"snr\") for image in validation_set]\n", + "\n", + "validation_error = np.mean(np.abs(validation_prediction - validation_labels), axis=-1) * 51\n", + "\n", + "for property_name in properties:\n", + " property_values = np.array([image.get_property(property_name) for image in validation_set])\n", + " if property_values.ndim == 1:\n", + " property_values = np.expand_dims(property_values, axis=-1)\n", + " \n", + " for col in range(property_values.shape[1]):\n", + " values = property_values[:, col]\n", + "\n", + " plt.subplot(1, property_values.shape[1], col + 1)\n", + "\n", + " plt.scatter(values, validation_error, alpha=0.1)\n", + " plt.xlim([np.min(values), np.max(values)])\n", + " plt.ylim([np.min(validation_error), np.max(validation_error)])\n", + " plt.yscale(\"log\")\n", + " plt.ylabel(\"Pixel error\")\n", + " plt.xlabel(\"{0}[{1}]\".format(property_name, col))\n", + "\n", + " \n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5.3 Experimental data\n", + "We play some experimental videos tracked by the DeepTrack model, compared to radial center method." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:57:50.214035Z", + "iopub.status.busy": "2022-06-30T10:57:50.213534Z", + "iopub.status.idle": "2022-06-30T10:57:50.230034Z", + "shell.execute_reply": "2022-06-30T10:57:50.229544Z" + } + }, + "outputs": [], + "source": [ + "import cv2\n", + "import IPython\n", + "import numpy as np\n", + "import os\n", + "\n", + "from radialcenter import radialcenter\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def track_video(video, frames_to_track):\n", + " video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))\n", + " video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))\n", + "\n", + " # Initialize variables\n", + " predicted_positions = np.zeros((frames_to_track, 2))\n", + " predicted_positions_radial = np.zeros((frames_to_track, 2))\n", + "\n", + " # Track the positions of the particles frame by frame\n", + "\n", + " for i in range(frames_to_track):\n", + "\n", + " # Read the current frame from the video\n", + " (ret, frame) = video.read()\n", + "\n", + " frame = cv2.normalize(frame, None, 0, 255, cv2.NORM_MINMAX)\n", + "\n", + " # Convert color image to grayscale.\n", + " frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) / 255\n", + " \n", + " radial_x, radial_y = radialcenter(frame)\n", + " predicted_positions_radial[i, 0] = radial_x \n", + " predicted_positions_radial[i, 1] = radial_y\n", + "\n", + " ### Resize the frame\n", + " frame_resize = cv2.resize(frame, (51, 51))\n", + "\n", + " predicted_position = model.predict(np.reshape(frame_resize, (1, 51, 51, 1)))\n", + " \n", + " predicted_position_y = predicted_position[0,0] * video_width + video_width / 2 + 1\n", + " predicted_position_x = predicted_position[0,1] * video_height + video_height / 2 + 1\n", + " \n", + " predicted_positions[i, 0] = predicted_position_x\n", + " predicted_positions[i, 1] = predicted_position_y\n", + "\n", + " IPython.display.clear_output(wait=True)\n", + "\n", + " plt.imshow(frame, cmap=\"gray\")\n", + " # Make markerfacecolor transparent (marker edge color default).\n", + "\n", + " plt.scatter(predicted_position_x, predicted_position_y, marker=\"o\", s=500, facecolors=\"none\", linewidths=3, edgecolors=\"r\")\n", + " plt.scatter(radial_x, radial_y, marker='x', s=400, c=\"g\", linewidths=3)\n", + " plt.axis(\"off\")\n", + "\n", + " plt.show()\n", + " \n", + " return predicted_positions, predicted_positions_radial\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, the blue circle is deeptrack, and the cross is radial center" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:57:50.233035Z", + "iopub.status.busy": "2022-06-30T10:57:50.232535Z", + "iopub.status.idle": "2022-06-30T10:57:58.162534Z", + "shell.execute_reply": "2022-06-30T10:57:58.162534Z" }, + "scrolled": false + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:57:50.233035Z", - "iopub.status.busy": "2022-06-30T10:57:50.232535Z", - "iopub.status.idle": "2022-06-30T10:57:58.162534Z", - "shell.execute_reply": "2022-06-30T10:57:58.162534Z" - }, - "scrolled": false - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "video = cv2.VideoCapture(\"./datasets/ParticleTracking/ideal.avi\")\n", - "p, pr = track_video(video, 100)\n", - "\n" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "video = cv2.VideoCapture(\"./datasets/ParticleTracking/ideal.avi\")\n", + "p, pr = track_video(video, 100)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2022-06-30T10:57:58.165534Z", + "iopub.status.busy": "2022-06-30T10:57:58.165034Z", + "iopub.status.idle": "2022-06-30T10:58:06.180534Z", + "shell.execute_reply": "2022-06-30T10:58:06.180534Z" }, + "scrolled": true + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "execution": { - "iopub.execute_input": "2022-06-30T10:57:58.165534Z", - "iopub.status.busy": "2022-06-30T10:57:58.165034Z", - "iopub.status.idle": "2022-06-30T10:58:06.180534Z", - "shell.execute_reply": "2022-06-30T10:58:06.180534Z" - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "video = cv2.VideoCapture(\"./datasets/ParticleTracking/bad.avi\")\n", - "p, pr = track_video(video, 100)\n" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } + ], + "source": [ + "video = cv2.VideoCapture(\"./datasets/ParticleTracking/bad.avi\")\n", + "p, pr = track_video(video, 100)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 2 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 } From e195138e4f3ac34c6fa2257d3e5fc17637d333ce Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:33:38 +0100 Subject: [PATCH 31/36] Update __init__.py --- deeptrack/__init__.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/deeptrack/__init__.py b/deeptrack/__init__.py index 2a75fe82e..92a8109b7 100644 --- a/deeptrack/__init__.py +++ b/deeptrack/__init__.py @@ -2,24 +2,18 @@ import lazy_import from pint import UnitRegistry -from .backend.pint_definition import pint_definitions -units = UnitRegistry(pint_definitions.split("\n")) +'''from .backend.pint_definition import pint_definitions +units = UnitRegistry(pint_definitions.split("\n"))'''#TBE -'''# Create a UnitRegistry and add custom units. +# Create a UnitRegistry and add custom units. units = UnitRegistry() -del units._units["pixel"] -del units._units["px"] -custom_units = [ - "pixel = 1 micrometer = px", - "xpixel = 1 micrometer = xpx", - "ypixel = 1 micrometer = ypx", - "zpixel = 1 micrometer = zpx", - "simulation_xpixel = 1 micrometer = sxpx", - "simulation_ypixel = 1 micrometer = sypx", - "simulation_zpixel = 1 micrometer = szpx", -] -for unit in custom_units: - units.define(unit)''' +units.define("img_pixel = 1 * micrometer = ipx") +units.define("xpixel = 1 * micrometer = xpx") +units.define("ypixel = 1 * micrometer = ypx") +units.define("zpixel = 1 * micrometer = zpx") +units.define("simulation_xpixel = 1 * micrometer = sxpx") +units.define("simulation_ypixel = 1 * micrometer = sypx") +units.define("simulation_zpixel = 1 * micrometer = szpx") '''# Check if tensorflow is installed without importing it import pkg_resources From 9bbb95f00b11d2ffca9a7236911e6ca01e60fb26 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:47:05 +0100 Subject: [PATCH 32/36] u --- deeptrack/test/test_features.py | 26 +++++++++++++------------- examples/models/test_autoencoder.py | 2 +- examples/models/test_convolutional.py | 2 +- examples/models/test_fullyconnected.py | 2 +- examples/models/test_rnn.py | 2 +- examples/models/test_unet.py | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/deeptrack/test/test_features.py b/deeptrack/test/test_features.py index 4418c74a8..de82ef312 100644 --- a/deeptrack/test/test_features.py +++ b/deeptrack/test/test_features.py @@ -946,7 +946,7 @@ def test_NonOverlapping_resample_volume_position(self): ) positions_no_unit = [1, 2] - positions_with_unit = [1 * units.px, 2 * units.px] + positions_with_unit = [1 * units.ipx, 2 * units.ipx] positions_no_unit_iter = iter(positions_no_unit) positions_with_unit_iter = iter(positions_with_unit) @@ -1170,53 +1170,53 @@ def test_NonOverlapping_check_non_overlapping(self): # Two spheres at the same position volume_test0_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test0_b = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() # Two spheres of the same size, one under the other volume_test1_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test1_b = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 10) * units.px + radius=5 * units.ipx, position=(0, 0, 10) * units.ipx )() # Two spheres of the same size, one under the other, but with a # spacing of 1 volume_test2_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test2_b = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 11) * units.px + radius=5 * units.ipx, position=(0, 0, 11) * units.ipx )() # Two spheres of the same size, one under the other, but with a # spacing of -1 volume_test3_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test3_b = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 9) * units.px + radius=5 * units.ipx, position=(0, 0, 9) * units.ipx )() # Two spheres of the same size, diagonally next to each other volume_test4_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test4_b = scatterers.Sphere( - radius=5 * units.px, position=(6, 6, 6) * units.px + radius=5 * units.ipx, position=(6, 6, 6) * units.ipx )() # Two spheres of the same size, diagonally next to each other, but # with a spacing of 1 volume_test5_a = scatterers.Sphere( - radius=5 * units.px, position=(0, 0, 0) * units.px + radius=5 * units.ipx, position=(0, 0, 0) * units.ipx )() volume_test5_b = scatterers.Sphere( - radius=5 * units.px, position=(7, 7, 7) * units.px + radius=5 * units.ipx, position=(7, 7, 7) * units.ipx )() # Run tests diff --git a/examples/models/test_autoencoder.py b/examples/models/test_autoencoder.py index 4e2d704cf..673f90bc1 100644 --- a/examples/models/test_autoencoder.py +++ b/examples/models/test_autoencoder.py @@ -7,7 +7,7 @@ import numpy as np # Centered particle with random radius -particle = dt.Sphere(position=lambda: np.random.rand(2) * 32, radius=5 * dt.units.px) +particle = dt.Sphere(position=lambda: np.random.rand(2) * 32, radius=5 * dt.units.ipx) optics = dt.Fluorescence(output_region=(0, 0, 32, 32)) diff --git a/examples/models/test_convolutional.py b/examples/models/test_convolutional.py index 5ae1db82c..30f93a3ee 100644 --- a/examples/models/test_convolutional.py +++ b/examples/models/test_convolutional.py @@ -8,7 +8,7 @@ # Centered particle with random radius particle = dt.Sphere( - position=(14, 14), radius=lambda: (3 + np.random.rand() * 3) * dt.units.px + position=(14, 14), radius=lambda: (3 + np.random.rand() * 3) * dt.units.ipx ) optics = dt.Fluorescence(output_region=(0, 0, 28, 28)) diff --git a/examples/models/test_fullyconnected.py b/examples/models/test_fullyconnected.py index a49ab3791..1e24076cc 100644 --- a/examples/models/test_fullyconnected.py +++ b/examples/models/test_fullyconnected.py @@ -8,7 +8,7 @@ # Centered particle with random radius particle = dt.Sphere( - position=(14, 14), radius=lambda: (3 + np.random.rand() * 3) * dt.units.px + position=(14, 14), radius=lambda: (3 + np.random.rand() * 3) * dt.units.ipx ) optics = dt.Fluorescence(output_region=(0, 0, 28, 28)) diff --git a/examples/models/test_rnn.py b/examples/models/test_rnn.py index 3e5957642..6f31fdc21 100644 --- a/examples/models/test_rnn.py +++ b/examples/models/test_rnn.py @@ -7,7 +7,7 @@ import numpy as np # Centered particle with random radius -particle = dt.Sphere(position=(14, 14), radius=5 * dt.units.px, z=0) +particle = dt.Sphere(position=(14, 14), radius=5 * dt.units.ipx, z=0) particle = dt.Sequential( particle, z=lambda previous_value: previous_value + np.random.randn() * 3 diff --git a/examples/models/test_unet.py b/examples/models/test_unet.py index d742533c5..e8ea99ee8 100644 --- a/examples/models/test_unet.py +++ b/examples/models/test_unet.py @@ -7,7 +7,7 @@ import numpy as np # Centered particle with random radius -particle = dt.Sphere(position=lambda: np.random.rand(2) * 32, radius=5 * dt.units.px) +particle = dt.Sphere(position=lambda: np.random.rand(2) * 32, radius=5 * dt.units.ipx) optics = dt.Fluorescence(output_region=(0, 0, 32, 32)) From 147d43193564044da18571350a844e4977b06604 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:47:18 +0100 Subject: [PATCH 33/36] Delete pint_definition.py --- deeptrack/backend/pint_definition.py | 943 --------------------------- 1 file changed, 943 deletions(-) delete mode 100644 deeptrack/backend/pint_definition.py diff --git a/deeptrack/backend/pint_definition.py b/deeptrack/backend/pint_definition.py deleted file mode 100644 index f8137bd07..000000000 --- a/deeptrack/backend/pint_definition.py +++ /dev/null @@ -1,943 +0,0 @@ -pint_constants = """ -# Default Pint constants definition file -# Based on the International System of Units -# Language: english -# Source: https://physics.nist.gov/cuu/Constants/ -# https://physics.nist.gov/PhysRefData/XrayTrans/Html/search.html -# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. - -#### MATHEMATICAL CONSTANTS #### -# As computed by Maxima with fpprec:50 - -pi = 3.1415926535897932384626433832795028841971693993751 = π # pi -tansec = 4.8481368111333441675396429478852851658848753880815e-6 # tangent of 1 arc-second ~ arc_second/radian -ln10 = 2.3025850929940456840179914546843642076011014886288 # natural logarithm of 10 -wien_x = 4.9651142317442763036987591313228939440555849867973 # solution to (x-5)*exp(x)+5 = 0 => x = W(5/exp(5))+5 -wien_u = 2.8214393721220788934031913302944851953458817440731 # solution to (u-3)*exp(u)+3 = 0 => u = W(3/exp(3))+3 -eulers_number = 2.71828182845904523536028747135266249775724709369995 - -#### DEFINED EXACT CONSTANTS #### - -speed_of_light = 299792458 m/s = c = c_0 # since 1983 -planck_constant = 6.62607015e-34 J s = h # since May 2019 -elementary_charge = 1.602176634e-19 C = e # since May 2019 -avogadro_number = 6.02214076e23 # since May 2019 -boltzmann_constant = 1.380649e-23 J K^-1 = k = k_B # since May 2019 -standard_gravity = 9.80665 m/s^2 = g_0 = g0 = g_n = gravity # since 1901 -standard_atmosphere = 1.01325e5 Pa = atm = atmosphere # since 1954 -conventional_josephson_constant = 4.835979e14 Hz / V = K_J90 # since Jan 1990 -conventional_von_klitzing_constant = 2.5812807e4 ohm = R_K90 # since Jan 1990 - -#### DERIVED EXACT CONSTANTS #### -# Floating-point conversion may introduce inaccuracies - -zeta = c / (cm/s) = ζ -dirac_constant = h / (2 * π) = ħ = hbar = atomic_unit_of_action = a_u_action -avogadro_constant = avogadro_number * mol^-1 = N_A -molar_gas_constant = k * N_A = R -faraday_constant = e * N_A -conductance_quantum = 2 * e ** 2 / h = G_0 -magnetic_flux_quantum = h / (2 * e) = Φ_0 = Phi_0 -josephson_constant = 2 * e / h = K_J -von_klitzing_constant = h / e ** 2 = R_K -stefan_boltzmann_constant = 2 / 15 * π ** 5 * k ** 4 / (h ** 3 * c ** 2) = σ = sigma -first_radiation_constant = 2 * π * h * c ** 2 = c_1 -second_radiation_constant = h * c / k = c_2 -wien_wavelength_displacement_law_constant = h * c / (k * wien_x) -wien_frequency_displacement_law_constant = wien_u * k / h - -#### MEASURED CONSTANTS #### -# Recommended CODATA-2018 values -# To some extent, what is measured and what is derived is a bit arbitrary. -# The choice of measured constants is based on convenience and on available uncertainty. -# The uncertainty in the last significant digits is given in parentheses as a comment. - -newtonian_constant_of_gravitation = 6.67430e-11 m^3/(kg s^2) = _ = gravitational_constant # (15) -rydberg_constant = 1.0973731568160e7 * m^-1 = R_∞ = R_inf # (21) -electron_g_factor = -2.00231930436256 = g_e # (35) -atomic_mass_constant = 1.66053906660e-27 kg = m_u # (50) -electron_mass = 9.1093837015e-31 kg = m_e = atomic_unit_of_mass = a_u_mass # (28) -proton_mass = 1.67262192369e-27 kg = m_p # (51) -neutron_mass = 1.67492749804e-27 kg = m_n # (95) -lattice_spacing_of_Si = 1.920155716e-10 m = d_220 # (32) -K_alpha_Cu_d_220 = 0.80232719 # (22) -K_alpha_Mo_d_220 = 0.36940604 # (19) -K_alpha_W_d_220 = 0.108852175 # (98) - -#### DERIVED CONSTANTS #### - -fine_structure_constant = (2 * h * R_inf / (m_e * c)) ** 0.5 = α = alpha -vacuum_permeability = 2 * α * h / (e ** 2 * c) = µ_0 = mu_0 = mu0 = magnetic_constant -vacuum_permittivity = e ** 2 / (2 * α * h * c) = ε_0 = epsilon_0 = eps_0 = eps0 = electric_constant -impedance_of_free_space = 2 * α * h / e ** 2 = Z_0 = characteristic_impedance_of_vacuum -coulomb_constant = α * hbar * c / e ** 2 = k_C -classical_electron_radius = α * hbar / (m_e * c) = r_e -thomson_cross_section = 8 / 3 * π * r_e ** 2 = σ_e = sigma_e -""" - -pint_definitions = f""" -# Default Pint units definition file -# Based on the International System of Units -# Language: english -# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. - -# Syntax -# ====== -# Units -# ----- -# = [= ] [= ] [ = ] [...] -# -# The canonical name and aliases should be expressed in singular form. -# Pint automatically deals with plurals built by adding 's' to the singular form; plural -# forms that don't follow this rule should be instead explicitly listed as aliases. -# -# If a unit has no symbol and one wants to define aliases, then the symbol should be -# conventionally set to _. -# -# Example: -# millennium = 1e3 * year = _ = millennia -# -# -# Prefixes -# -------- -# - = [= ] [= ] [ = ] [...] -# -# Example: -# deca- = 1e+1 = da- = deka- -# -# -# Derived dimensions -# ------------------ -# [dimension name] = -# -# Example: -# [density] = [mass] / [volume] -# -# Note that primary dimensions don't need to be declared; they can be -# defined for the first time in a unit definition. -# E.g. see below `meter = [length]` -# -# -# Additional aliases -# ------------------ -# @alias = [ = ] [...] -# -# Used to add aliases to already existing unit definitions. -# Particularly useful when one wants to enrich definitions -# from defaults_en.txt with custom aliases. -# -# Example: -# @alias meter = my_meter - -# See also: https://pint.readthedocs.io/en/latest/defining.html - -@defaults - group = international - system = mks -@end - - -#### PREFIXES #### - -# decimal prefixes -yocto- = 1e-24 = y- -zepto- = 1e-21 = z- -atto- = 1e-18 = a- -femto- = 1e-15 = f- -pico- = 1e-12 = p- -nano- = 1e-9 = n- -micro- = 1e-6 = µ- = u- -milli- = 1e-3 = m- -centi- = 1e-2 = c- -deci- = 1e-1 = d- -deca- = 1e+1 = da- = deka- -hecto- = 1e2 = h- -kilo- = 1e3 = k- -mega- = 1e6 = M- -giga- = 1e9 = G- -tera- = 1e12 = T- -peta- = 1e15 = P- -exa- = 1e18 = E- -zetta- = 1e21 = Z- -yotta- = 1e24 = Y- - -# binary_prefixes -kibi- = 2**10 = Ki- -mebi- = 2**20 = Mi- -gibi- = 2**30 = Gi- -tebi- = 2**40 = Ti- -pebi- = 2**50 = Pi- -exbi- = 2**60 = Ei- -zebi- = 2**70 = Zi- -yobi- = 2**80 = Yi- - -# extra_prefixes -semi- = 0.5 = _ = demi- -sesqui- = 1.5 - - -#### BASE UNITS #### - -meter = [length] = m = metre -second = [time] = s = sec -ampere = [current] = A = amp -candela = [luminosity] = cd = candle -gram = [mass] = g -mole = [substance] = mol -kelvin = [temperature]; offset: 0 = K = degK = °K = degree_Kelvin = degreeK # older names supported for compatibility -radian = [] = rad -bit = [] -count = [] - - -#### CONSTANTS #### - -{pint_constants} - - -#### UNITS #### -# Common and less common, grouped by quantity. -# Conversion factors are exact (except when noted), -# although floating-point conversion may introduce inaccuracies - -# Angle -turn = 2 * π * radian = _ = revolution = cycle = circle -degree = π / 180 * radian = deg = arcdeg = arcdegree = angular_degree -arcminute = degree / 60 = arcmin = arc_minute = angular_minute -arcsecond = arcminute / 60 = arcsec = arc_second = angular_second -milliarcsecond = 1e-3 * arcsecond = mas -grade = π / 200 * radian = grad = gon -mil = π / 32000 * radian - -# Solid angle -steradian = radian ** 2 = sr -square_degree = (π / 180) ** 2 * sr = sq_deg = sqdeg - -# Information -baud = bit / second = Bd = bps - -byte = 8 * bit = B = octet -# byte = 8 * bit = _ = octet -## NOTE: B (byte) symbol can conflict with Bell - -# Length -angstrom = 1e-10 * meter = Å = ångström = Å -micron = micrometer = µ -fermi = femtometer = fm -light_year = speed_of_light * julian_year = ly = lightyear -astronomical_unit = 149597870700 * meter = au # since Aug 2012 -parsec = 1 / tansec * astronomical_unit = pc -nautical_mile = 1852 * meter = nmi -bohr = hbar / (alpha * m_e * c) = a_0 = a0 = bohr_radius = atomic_unit_of_length = a_u_length -x_unit_Cu = K_alpha_Cu_d_220 * d_220 / 1537.4 = Xu_Cu -x_unit_Mo = K_alpha_Mo_d_220 * d_220 / 707.831 = Xu_Mo -angstrom_star = K_alpha_W_d_220 * d_220 / 0.2090100 = Å_star -planck_length = (hbar * gravitational_constant / c ** 3) ** 0.5 - -# Mass -metric_ton = 1e3 * kilogram = t = tonne -unified_atomic_mass_unit = atomic_mass_constant = u = amu -dalton = atomic_mass_constant = Da -grain = 64.79891 * milligram = gr -gamma_mass = microgram -carat = 200 * milligram = ct = karat -planck_mass = (hbar * c / gravitational_constant) ** 0.5 - -# Time -minute = 60 * second = min -hour = 60 * minute = hr -day = 24 * hour = d -week = 7 * day -fortnight = 2 * week -year = 365.25 * day = a = yr = julian_year -month = year / 12 - -# decade = 10 * year -## NOTE: decade [time] can conflict with decade [dimensionless] - -century = 100 * year = _ = centuries -millennium = 1e3 * year = _ = millennia -eon = 1e9 * year -shake = 1e-8 * second -svedberg = 1e-13 * second -atomic_unit_of_time = hbar / E_h = a_u_time -gregorian_year = 365.2425 * day -sidereal_year = 365.256363004 * day # approximate, as of J2000 epoch -tropical_year = 365.242190402 * day # approximate, as of J2000 epoch -common_year = 365 * day -leap_year = 366 * day -sidereal_day = day / 1.00273790935079524 # approximate -sidereal_month = 27.32166155 * day # approximate -tropical_month = 27.321582 * day # approximate -synodic_month = 29.530589 * day = _ = lunar_month # approximate -planck_time = (hbar * gravitational_constant / c ** 5) ** 0.5 - -# Temperature -degree_Celsius = kelvin; offset: 273.15 = °C = celsius = degC = degreeC -degree_Rankine = 5 / 9 * kelvin; offset: 0 = °R = rankine = degR = degreeR -degree_Fahrenheit = 5 / 9 * kelvin; offset: 233.15 + 200 / 9 = °F = fahrenheit = degF = degreeF -degree_Reaumur = 4 / 5 * kelvin; offset: 273.15 = °Re = reaumur = degRe = degreeRe = degree_Réaumur = réaumur -atomic_unit_of_temperature = E_h / k = a_u_temp -planck_temperature = (hbar * c ** 5 / gravitational_constant / k ** 2) ** 0.5 - -# Area -[area] = [length] ** 2 -are = 100 * meter ** 2 -barn = 1e-28 * meter ** 2 = b -darcy = centipoise * centimeter ** 2 / (second * atmosphere) -hectare = 100 * are = ha - -# Volume -[volume] = [length] ** 3 -liter = decimeter ** 3 = l = L = litre -cubic_centimeter = centimeter ** 3 = cc -lambda = microliter = λ -stere = meter ** 3 - -# Frequency -[frequency] = 1 / [time] -hertz = 1 / second = Hz -revolutions_per_minute = revolution / minute = rpm -revolutions_per_second = revolution / second = rps -counts_per_second = count / second = cps - -# Wavenumber -[wavenumber] = 1 / [length] -reciprocal_centimeter = 1 / cm = cm_1 = kayser - -# Velocity -[velocity] = [length] / [time] -[speed] = [velocity] -knot = nautical_mile / hour = kt = knot_international = international_knot -mile_per_hour = mile / hour = mph = MPH -kilometer_per_hour = kilometer / hour = kph = KPH -kilometer_per_second = kilometer / second = kps -meter_per_second = meter / second = mps -foot_per_second = foot / second = fps - -# Acceleration -[acceleration] = [velocity] / [time] -galileo = centimeter / second ** 2 = Gal - -# Force -[force] = [mass] * [acceleration] -newton = kilogram * meter / second ** 2 = N -dyne = gram * centimeter / second ** 2 = dyn -force_kilogram = g_0 * kilogram = kgf = kilogram_force = pond -force_gram = g_0 * gram = gf = gram_force -force_metric_ton = g_0 * metric_ton = tf = metric_ton_force = force_t = t_force -atomic_unit_of_force = E_h / a_0 = a_u_force - -# Energy -[energy] = [force] * [length] -joule = newton * meter = J -erg = dyne * centimeter -watt_hour = watt * hour = Wh = watthour -electron_volt = e * volt = eV -rydberg = h * c * R_inf = Ry -hartree = 2 * rydberg = E_h = Eh = hartree_energy = atomic_unit_of_energy = a_u_energy -calorie = 4.184 * joule = cal = thermochemical_calorie = cal_th -international_calorie = 4.1868 * joule = cal_it = international_steam_table_calorie -fifteen_degree_calorie = 4.1855 * joule = cal_15 -british_thermal_unit = 1055.056 * joule = Btu = BTU = Btu_iso -international_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * international_calorie = Btu_it -thermochemical_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * calorie = Btu_th -quadrillion_Btu = 1e15 * Btu = quad -therm = 1e5 * Btu = thm = EC_therm -US_therm = 1.054804e8 * joule # approximate, no exact definition -ton_TNT = 1e9 * calorie = tTNT -tonne_of_oil_equivalent = 1e10 * international_calorie = toe -atmosphere_liter = atmosphere * liter = atm_l - -# Power -[power] = [energy] / [time] -watt = joule / second = W -volt_ampere = volt * ampere = VA -horsepower = 550 * foot * force_pound / second = hp = UK_horsepower = hydraulic_horsepower -boiler_horsepower = 33475 * Btu / hour # unclear which Btu -metric_horsepower = 75 * force_kilogram * meter / second -electrical_horsepower = 746 * watt -refrigeration_ton = 12e3 * Btu / hour = _ = ton_of_refrigeration # approximate, no exact definition -standard_liter_per_minute = atmosphere * liter / minute = slpm = slm -conventional_watt_90 = K_J90 ** 2 * R_K90 / (K_J ** 2 * R_K) * watt = W_90 - -# Momentum -[momentum] = [length] * [mass] / [time] - -# Density (as auxiliary for pressure) -[density] = [mass] / [volume] -mercury = 13.5951 * kilogram / liter = Hg = Hg_0C = Hg_32F = conventional_mercury -water = 1.0 * kilogram / liter = H2O = conventional_water -mercury_60F = 13.5568 * kilogram / liter = Hg_60F # approximate -water_39F = 0.999972 * kilogram / liter = water_4C # approximate -water_60F = 0.999001 * kilogram / liter # approximate - -# Pressure -[pressure] = [force] / [area] -pascal = newton / meter ** 2 = Pa -barye = dyne / centimeter ** 2 = Ba = barie = barad = barrie = baryd -bar = 1e5 * pascal -technical_atmosphere = kilogram * g_0 / centimeter ** 2 = at -torr = atm / 760 -pound_force_per_square_inch = force_pound / inch ** 2 = psi -kip_per_square_inch = kip / inch ** 2 = ksi -millimeter_Hg = millimeter * Hg * g_0 = mmHg = mm_Hg = millimeter_Hg_0C -centimeter_Hg = centimeter * Hg * g_0 = cmHg = cm_Hg = centimeter_Hg_0C -inch_Hg = inch * Hg * g_0 = inHg = in_Hg = inch_Hg_32F -inch_Hg_60F = inch * Hg_60F * g_0 -inch_H2O_39F = inch * water_39F * g_0 -inch_H2O_60F = inch * water_60F * g_0 -foot_H2O = foot * water * g_0 = ftH2O = feet_H2O -centimeter_H2O = centimeter * water * g_0 = cmH2O = cm_H2O -sound_pressure_level = 20e-6 * pascal = SPL - -# Torque -[torque] = [force] * [length] -foot_pound = foot * force_pound = ft_lb = footpound - -# Viscosity -[viscosity] = [pressure] * [time] -poise = 0.1 * Pa * second = P -reyn = psi * second - -# Kinematic viscosity -[kinematic_viscosity] = [area] / [time] -stokes = centimeter ** 2 / second = St - -# Fluidity -[fluidity] = 1 / [viscosity] -rhe = 1 / poise - -# Amount of substance -particle = 1 / N_A = _ = molec = molecule - -# Concentration -[concentration] = [substance] / [volume] -molar = mole / liter = M - -# Catalytic activity -[activity] = [substance] / [time] -katal = mole / second = kat -enzyme_unit = micromole / minute = U = enzymeunit - -# Entropy -[entropy] = [energy] / [temperature] -clausius = calorie / kelvin = Cl - -# Molar entropy -[molar_entropy] = [entropy] / [substance] -entropy_unit = calorie / kelvin / mole = eu - -# Radiation -becquerel = counts_per_second = Bq -curie = 3.7e10 * becquerel = Ci -rutherford = 1e6 * becquerel = Rd -gray = joule / kilogram = Gy -sievert = joule / kilogram = Sv -rads = 0.01 * gray -rem = 0.01 * sievert -roentgen = 2.58e-4 * coulomb / kilogram = _ = röntgen # approximate, depends on medium - -# Heat transimission -[heat_transmission] = [energy] / [area] -peak_sun_hour = 1e3 * watt_hour / meter ** 2 = PSH -langley = thermochemical_calorie / centimeter ** 2 = Ly - -# Luminance -[luminance] = [luminosity] / [area] -nit = candela / meter ** 2 -stilb = candela / centimeter ** 2 -lambert = 1 / π * candela / centimeter ** 2 - -# Luminous flux -[luminous_flux] = [luminosity] -lumen = candela * steradian = lm - -# Illuminance -[illuminance] = [luminous_flux] / [area] -lux = lumen / meter ** 2 = lx - -# Intensity -[intensity] = [power] / [area] -atomic_unit_of_intensity = 0.5 * ε_0 * c * atomic_unit_of_electric_field ** 2 = a_u_intensity - -# Current -biot = 10 * ampere = Bi -abampere = biot = abA -atomic_unit_of_current = e / atomic_unit_of_time = a_u_current -mean_international_ampere = mean_international_volt / mean_international_ohm = A_it -US_international_ampere = US_international_volt / US_international_ohm = A_US -conventional_ampere_90 = K_J90 * R_K90 / (K_J * R_K) * ampere = A_90 -planck_current = (c ** 6 / gravitational_constant / k_C) ** 0.5 - -# Charge -[charge] = [current] * [time] -coulomb = ampere * second = C -abcoulomb = 10 * C = abC -faraday = e * N_A * mole -conventional_coulomb_90 = K_J90 * R_K90 / (K_J * R_K) * coulomb = C_90 -ampere_hour = ampere * hour = Ah - -# Electric potential -[electric_potential] = [energy] / [charge] -volt = joule / coulomb = V -abvolt = 1e-8 * volt = abV -mean_international_volt = 1.00034 * volt = V_it # approximate -US_international_volt = 1.00033 * volt = V_US # approximate -conventional_volt_90 = K_J90 / K_J * volt = V_90 - -# Electric field -[electric_field] = [electric_potential] / [length] -atomic_unit_of_electric_field = e * k_C / a_0 ** 2 = a_u_electric_field - -# Electric displacement field -[electric_displacement_field] = [charge] / [area] - -# Resistance -[resistance] = [electric_potential] / [current] -ohm = volt / ampere = Ω -abohm = 1e-9 * ohm = abΩ -mean_international_ohm = 1.00049 * ohm = Ω_it = ohm_it # approximate -US_international_ohm = 1.000495 * ohm = Ω_US = ohm_US # approximate -conventional_ohm_90 = R_K / R_K90 * ohm = Ω_90 = ohm_90 - -# Resistivity -[resistivity] = [resistance] * [length] - -# Conductance -[conductance] = [current] / [electric_potential] -siemens = ampere / volt = S = mho -absiemens = 1e9 * siemens = abS = abmho - -# Capacitance -[capacitance] = [charge] / [electric_potential] -farad = coulomb / volt = F -abfarad = 1e9 * farad = abF -conventional_farad_90 = R_K90 / R_K * farad = F_90 - -# Inductance -[inductance] = [magnetic_flux] / [current] -henry = weber / ampere = H -abhenry = 1e-9 * henry = abH -conventional_henry_90 = R_K / R_K90 * henry = H_90 - -# Magnetic flux -[magnetic_flux] = [electric_potential] * [time] -weber = volt * second = Wb -unit_pole = µ_0 * biot * centimeter - -# Magnetic field -[magnetic_field] = [magnetic_flux] / [area] -tesla = weber / meter ** 2 = T -gamma = 1e-9 * tesla = γ - -# Magnetomotive force -[magnetomotive_force] = [current] -ampere_turn = ampere = At -biot_turn = biot -gilbert = 1 / (4 * π) * biot_turn = Gb - -# Magnetic field strength -[magnetic_field_strength] = [current] / [length] - -# Electric dipole moment -[electric_dipole] = [charge] * [length] -debye = 1e-9 / ζ * coulomb * angstrom = D # formally 1 D = 1e-10 Fr*Å, but we generally want to use it outside the Gaussian context - -# Electric quadrupole moment -[electric_quadrupole] = [charge] * [area] -buckingham = debye * angstrom - -# Magnetic dipole moment -[magnetic_dipole] = [current] * [area] -bohr_magneton = e * hbar / (2 * m_e) = µ_B = mu_B -nuclear_magneton = e * hbar / (2 * m_p) = µ_N = mu_N - -# Logaritmic Unit Definition -# Unit = scale; logbase; logfactor -# x_dB = [logfactor] * log( x_lin / [scale] ) / log( [logbase] ) - -# Logaritmic Units of dimensionless quantity: [ https://en.wikipedia.org/wiki/Level_(logarithmic_quantity) ] - -decibelmilliwatt = 1e-3 watt; logbase: 10; logfactor: 10 = dBm -decibelmicrowatt = 1e-6 watt; logbase: 10; logfactor: 10 = dBu - -decibel = 1 ; logbase: 10; logfactor: 10 = dB -# bell = 1 ; logbase: 10; logfactor: = B -## NOTE: B (Bell) symbol conflicts with byte - -decade = 1 ; logbase: 10; logfactor: 1 -## NOTE: decade [time] can conflict with decade [dimensionless] - -octave = 1 ; logbase: 2; logfactor: 1 = oct - -neper = 1 ; logbase: 2.71828182845904523536028747135266249775724709369995; logfactor: 0.5 = Np -# neper = 1 ; logbase: eulers_number; logfactor: 0.5 = Np - -#### UNIT GROUPS #### -# Mostly for length, area, volume, mass, force -# (customary or specialized units) - -@group USCSLengthInternational - thou = 1e-3 * inch = th = mil_length - inch = yard / 36 = in = international_inch = inches = international_inches - hand = 4 * inch - foot = yard / 3 = ft = international_foot = feet = international_feet - yard = 0.9144 * meter = yd = international_yard # since Jul 1959 - mile = 1760 * yard = mi = international_mile - - circular_mil = π / 4 * mil_length ** 2 = cmil - square_inch = inch ** 2 = sq_in = square_inches - square_foot = foot ** 2 = sq_ft = square_feet - square_yard = yard ** 2 = sq_yd - square_mile = mile ** 2 = sq_mi - - cubic_inch = in ** 3 = cu_in - cubic_foot = ft ** 3 = cu_ft = cubic_feet - cubic_yard = yd ** 3 = cu_yd -@end - -@group USCSLengthSurvey - link = 1e-2 * chain = li = survey_link - survey_foot = 1200 / 3937 * meter = sft - fathom = 6 * survey_foot - rod = 16.5 * survey_foot = rd = pole = perch - chain = 4 * rod - furlong = 40 * rod = fur - cables_length = 120 * fathom - survey_mile = 5280 * survey_foot = smi = us_statute_mile - league = 3 * survey_mile - - square_rod = rod ** 2 = sq_rod = sq_pole = sq_perch - acre = 10 * chain ** 2 - square_survey_mile = survey_mile ** 2 = _ = section - square_league = league ** 2 - - acre_foot = acre * survey_foot = _ = acre_feet -@end - -@group USCSDryVolume - dry_pint = bushel / 64 = dpi = US_dry_pint - dry_quart = bushel / 32 = dqt = US_dry_quart - dry_gallon = bushel / 8 = dgal = US_dry_gallon - peck = bushel / 4 = pk - bushel = 2150.42 cubic_inch = bu - dry_barrel = 7056 cubic_inch = _ = US_dry_barrel - board_foot = ft * ft * in = FBM = board_feet = BF = BDFT = super_foot = superficial_foot = super_feet = superficial_feet -@end - -@group USCSLiquidVolume - minim = pint / 7680 - fluid_dram = pint / 128 = fldr = fluidram = US_fluid_dram = US_liquid_dram - fluid_ounce = pint / 16 = floz = US_fluid_ounce = US_liquid_ounce - gill = pint / 4 = gi = liquid_gill = US_liquid_gill - pint = quart / 2 = pt = liquid_pint = US_pint - fifth = gallon / 5 = _ = US_liquid_fifth - quart = gallon / 4 = qt = liquid_quart = US_liquid_quart - gallon = 231 * cubic_inch = gal = liquid_gallon = US_liquid_gallon -@end - -@group USCSVolumeOther - teaspoon = fluid_ounce / 6 = tsp - tablespoon = fluid_ounce / 2 = tbsp - shot = 3 * tablespoon = jig = US_shot - cup = pint / 2 = cp = liquid_cup = US_liquid_cup - barrel = 31.5 * gallon = bbl - oil_barrel = 42 * gallon = oil_bbl - beer_barrel = 31 * gallon = beer_bbl - hogshead = 63 * gallon -@end - -@group Avoirdupois - dram = pound / 256 = dr = avoirdupois_dram = avdp_dram = drachm - ounce = pound / 16 = oz = avoirdupois_ounce = avdp_ounce - pound = 7e3 * grain = lb = avoirdupois_pound = avdp_pound - stone = 14 * pound - quarter = 28 * stone - bag = 94 * pound - hundredweight = 100 * pound = cwt = short_hundredweight - long_hundredweight = 112 * pound - ton = 2e3 * pound = _ = short_ton - long_ton = 2240 * pound - slug = g_0 * pound * second ** 2 / foot - slinch = g_0 * pound * second ** 2 / inch = blob = slugette - - force_ounce = g_0 * ounce = ozf = ounce_force - force_pound = g_0 * pound = lbf = pound_force - force_ton = g_0 * ton = _ = ton_force = force_short_ton = short_ton_force - force_long_ton = g_0 * long_ton = _ = long_ton_force - kip = 1e3 * force_pound - poundal = pound * foot / second ** 2 = pdl -@end - -@group AvoirdupoisUK using Avoirdupois - UK_hundredweight = long_hundredweight = UK_cwt - UK_ton = long_ton - UK_force_ton = force_long_ton = _ = UK_ton_force -@end - -@group AvoirdupoisUS using Avoirdupois - US_hundredweight = hundredweight = US_cwt - US_ton = ton - US_force_ton = force_ton = _ = US_ton_force -@end - -@group Troy - pennyweight = 24 * grain = dwt - troy_ounce = 480 * grain = toz = ozt - troy_pound = 12 * troy_ounce = tlb = lbt -@end - -@group Apothecary - scruple = 20 * grain - apothecary_dram = 3 * scruple = ap_dr - apothecary_ounce = 8 * apothecary_dram = ap_oz - apothecary_pound = 12 * apothecary_ounce = ap_lb -@end - -@group ImperialVolume - imperial_minim = imperial_fluid_ounce / 480 - imperial_fluid_scruple = imperial_fluid_ounce / 24 - imperial_fluid_drachm = imperial_fluid_ounce / 8 = imperial_fldr = imperial_fluid_dram - imperial_fluid_ounce = imperial_pint / 20 = imperial_floz = UK_fluid_ounce - imperial_gill = imperial_pint / 4 = imperial_gi = UK_gill - imperial_cup = imperial_pint / 2 = imperial_cp = UK_cup - imperial_pint = imperial_gallon / 8 = imperial_pt = UK_pint - imperial_quart = imperial_gallon / 4 = imperial_qt = UK_quart - imperial_gallon = 4.54609 * liter = imperial_gal = UK_gallon - imperial_peck = 2 * imperial_gallon = imperial_pk = UK_pk - imperial_bushel = 8 * imperial_gallon = imperial_bu = UK_bushel - imperial_barrel = 36 * imperial_gallon = imperial_bbl = UK_bbl -@end - -@group Textile - tex = gram / kilometer = Tt - dtex = decitex - denier = gram / (9 * kilometer) = den = Td - jute = pound / (14400 * yard) = Tj - aberdeen = jute = Ta - RKM = gf / tex - - number_english = 840 * yard / pound = Ne = NeC = ECC - number_meter = kilometer / kilogram = Nm -@end - - -#### CGS ELECTROMAGNETIC UNITS #### - -# === Gaussian system of units === -@group Gaussian - franklin = erg ** 0.5 * centimeter ** 0.5 = Fr = statcoulomb = statC = esu - statvolt = erg / franklin = statV - statampere = franklin / second = statA - gauss = dyne / franklin = G - maxwell = gauss * centimeter ** 2 = Mx - oersted = dyne / maxwell = Oe = ørsted - statohm = statvolt / statampere = statΩ - statfarad = franklin / statvolt = statF - statmho = statampere / statvolt -@end -# Note this system is not commensurate with SI, as ε_0 and µ_0 disappear; -# some quantities with different dimensions in SI have the same -# dimensions in the Gaussian system (e.g. [Mx] = [Fr], but [Wb] != [C]), -# and therefore the conversion factors depend on the context (not in pint sense) -[gaussian_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] -[gaussian_current] = [gaussian_charge] / [time] -[gaussian_electric_potential] = [gaussian_charge] / [length] -[gaussian_electric_field] = [gaussian_electric_potential] / [length] -[gaussian_electric_displacement_field] = [gaussian_charge] / [area] -[gaussian_electric_flux] = [gaussian_charge] -[gaussian_electric_dipole] = [gaussian_charge] * [length] -[gaussian_electric_quadrupole] = [gaussian_charge] * [area] -[gaussian_magnetic_field] = [force] / [gaussian_charge] -[gaussian_magnetic_field_strength] = [gaussian_magnetic_field] -[gaussian_magnetic_flux] = [gaussian_magnetic_field] * [area] -[gaussian_magnetic_dipole] = [energy] / [gaussian_magnetic_field] -[gaussian_resistance] = [gaussian_electric_potential] / [gaussian_current] -[gaussian_resistivity] = [gaussian_resistance] * [length] -[gaussian_capacitance] = [gaussian_charge] / [gaussian_electric_potential] -[gaussian_inductance] = [gaussian_electric_potential] * [time] / [gaussian_current] -[gaussian_conductance] = [gaussian_current] / [gaussian_electric_potential] -@context Gaussian = Gau - [gaussian_charge] -> [charge]: value / k_C ** 0.5 - [charge] -> [gaussian_charge]: value * k_C ** 0.5 - [gaussian_current] -> [current]: value / k_C ** 0.5 - [current] -> [gaussian_current]: value * k_C ** 0.5 - [gaussian_electric_potential] -> [electric_potential]: value * k_C ** 0.5 - [electric_potential] -> [gaussian_electric_potential]: value / k_C ** 0.5 - [gaussian_electric_field] -> [electric_field]: value * k_C ** 0.5 - [electric_field] -> [gaussian_electric_field]: value / k_C ** 0.5 - [gaussian_electric_displacement_field] -> [electric_displacement_field]: value / (4 * π / ε_0) ** 0.5 - [electric_displacement_field] -> [gaussian_electric_displacement_field]: value * (4 * π / ε_0) ** 0.5 - [gaussian_electric_dipole] -> [electric_dipole]: value / k_C ** 0.5 - [electric_dipole] -> [gaussian_electric_dipole]: value * k_C ** 0.5 - [gaussian_electric_quadrupole] -> [electric_quadrupole]: value / k_C ** 0.5 - [electric_quadrupole] -> [gaussian_electric_quadrupole]: value * k_C ** 0.5 - [gaussian_magnetic_field] -> [magnetic_field]: value / (4 * π / µ_0) ** 0.5 - [magnetic_field] -> [gaussian_magnetic_field]: value * (4 * π / µ_0) ** 0.5 - [gaussian_magnetic_flux] -> [magnetic_flux]: value / (4 * π / µ_0) ** 0.5 - [magnetic_flux] -> [gaussian_magnetic_flux]: value * (4 * π / µ_0) ** 0.5 - [gaussian_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π * µ_0) ** 0.5 - [magnetic_field_strength] -> [gaussian_magnetic_field_strength]: value * (4 * π * µ_0) ** 0.5 - [gaussian_magnetic_dipole] -> [magnetic_dipole]: value * (4 * π / µ_0) ** 0.5 - [magnetic_dipole] -> [gaussian_magnetic_dipole]: value / (4 * π / µ_0) ** 0.5 - [gaussian_resistance] -> [resistance]: value * k_C - [resistance] -> [gaussian_resistance]: value / k_C - [gaussian_resistivity] -> [resistivity]: value * k_C - [resistivity] -> [gaussian_resistivity]: value / k_C - [gaussian_capacitance] -> [capacitance]: value / k_C - [capacitance] -> [gaussian_capacitance]: value * k_C - [gaussian_inductance] -> [inductance]: value * k_C - [inductance] -> [gaussian_inductance]: value / k_C - [gaussian_conductance] -> [conductance]: value / k_C - [conductance] -> [gaussian_conductance]: value * k_C -@end - -# === ESU system of units === -# (where different from Gaussian) -# See note for Gaussian system too -@group ESU using Gaussian - statweber = statvolt * second = statWb - stattesla = statweber / centimeter ** 2 = statT - stathenry = statweber / statampere = statH -@end -[esu_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] -[esu_current] = [esu_charge] / [time] -[esu_electric_potential] = [esu_charge] / [length] -[esu_magnetic_flux] = [esu_electric_potential] * [time] -[esu_magnetic_field] = [esu_magnetic_flux] / [area] -[esu_magnetic_field_strength] = [esu_current] / [length] -[esu_magnetic_dipole] = [esu_current] * [area] -@context ESU = esu - [esu_magnetic_field] -> [magnetic_field]: value * k_C ** 0.5 - [magnetic_field] -> [esu_magnetic_field]: value / k_C ** 0.5 - [esu_magnetic_flux] -> [magnetic_flux]: value * k_C ** 0.5 - [magnetic_flux] -> [esu_magnetic_flux]: value / k_C ** 0.5 - [esu_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π / ε_0) ** 0.5 - [magnetic_field_strength] -> [esu_magnetic_field_strength]: value * (4 * π / ε_0) ** 0.5 - [esu_magnetic_dipole] -> [magnetic_dipole]: value / k_C ** 0.5 - [magnetic_dipole] -> [esu_magnetic_dipole]: value * k_C ** 0.5 -@end - - -#### CONVERSION CONTEXTS #### - -@context(n=1) spectroscopy = sp - # n index of refraction of the medium. - [length] <-> [frequency]: speed_of_light / n / value - [frequency] -> [energy]: planck_constant * value - [energy] -> [frequency]: value / planck_constant - # allow wavenumber / kayser - [wavenumber] <-> [length]: 1 / value -@end - -@context boltzmann - [temperature] -> [energy]: boltzmann_constant * value - [energy] -> [temperature]: value / boltzmann_constant -@end - -@context energy - [energy] -> [energy] / [substance]: value * N_A - [energy] / [substance] -> [energy]: value / N_A - [energy] -> [mass]: value / c ** 2 - [mass] -> [energy]: value * c ** 2 -@end - -@context(mw=0,volume=0,solvent_mass=0) chemistry = chem - # mw is the molecular weight of the species - # volume is the volume of the solution - # solvent_mass is the mass of solvent in the solution - - # moles -> mass require the molecular weight - [substance] -> [mass]: value * mw - [mass] -> [substance]: value / mw - - # moles/volume -> mass/volume and moles/mass -> mass/mass - # require the molecular weight - [substance] / [volume] -> [mass] / [volume]: value * mw - [mass] / [volume] -> [substance] / [volume]: value / mw - [substance] / [mass] -> [mass] / [mass]: value * mw - [mass] / [mass] -> [substance] / [mass]: value / mw - - # moles/volume -> moles requires the solution volume - [substance] / [volume] -> [substance]: value * volume - [substance] -> [substance] / [volume]: value / volume - - # moles/mass -> moles requires the solvent (usually water) mass - [substance] / [mass] -> [substance]: value * solvent_mass - [substance] -> [substance] / [mass]: value / solvent_mass - - # moles/mass -> moles/volume require the solvent mass and the volume - [substance] / [mass] -> [substance]/[volume]: value * solvent_mass / volume - [substance] / [volume] -> [substance] / [mass]: value / solvent_mass * volume - -@end - -@context textile - # Allow switching between Direct count system (i.e. tex) and - # Indirect count system (i.e. Ne, Nm) - [mass] / [length] <-> [length] / [mass]: 1 / value -@end - - -#### SYSTEMS OF UNITS #### - -@system SI - second - meter - kilogram - ampere - kelvin - mole - candela -@end - -@system mks using international - meter - kilogram - second -@end - -@system cgs using international, Gaussian, ESU - centimeter - gram - second -@end - -@system atomic using international - # based on unit m_e, e, hbar, k_C, k - bohr: meter - electron_mass: gram - atomic_unit_of_time: second - atomic_unit_of_current: ampere - atomic_unit_of_temperature: kelvin -@end - -@system Planck using international - # based on unit c, gravitational_constant, hbar, k_C, k - planck_length: meter - planck_mass: gram - planck_time: second - planck_current: ampere - planck_temperature: kelvin -@end - -@system imperial using ImperialVolume, USCSLengthInternational, AvoirdupoisUK - yard - pound -@end - -@system US using USCSLiquidVolume, USCSDryVolume, USCSVolumeOther, USCSLengthInternational, USCSLengthSurvey, AvoirdupoisUS - yard - pound -@end - -pixel = 1 micrometer = px -xpixel = 1 micrometer = xpx -ypixel = 1 micrometer = ypx -zpixel = 1 micrometer = zpx -simulation_xpixel = 1 micrometer = sxpx -simulation_ypixel = 1 micrometer = sypx -simulation_zpixel = 1 micrometer = szpx - -""" \ No newline at end of file From 5f8dc29155c45384e9cb523452429d8ed77a8da3 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 22:49:47 +0100 Subject: [PATCH 34/36] Revert "Delete pint_definition.py" This reverts commit 147d43193564044da18571350a844e4977b06604. --- deeptrack/backend/pint_definition.py | 943 +++++++++++++++++++++++++++ 1 file changed, 943 insertions(+) create mode 100644 deeptrack/backend/pint_definition.py diff --git a/deeptrack/backend/pint_definition.py b/deeptrack/backend/pint_definition.py new file mode 100644 index 000000000..f8137bd07 --- /dev/null +++ b/deeptrack/backend/pint_definition.py @@ -0,0 +1,943 @@ +pint_constants = """ +# Default Pint constants definition file +# Based on the International System of Units +# Language: english +# Source: https://physics.nist.gov/cuu/Constants/ +# https://physics.nist.gov/PhysRefData/XrayTrans/Html/search.html +# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. + +#### MATHEMATICAL CONSTANTS #### +# As computed by Maxima with fpprec:50 + +pi = 3.1415926535897932384626433832795028841971693993751 = π # pi +tansec = 4.8481368111333441675396429478852851658848753880815e-6 # tangent of 1 arc-second ~ arc_second/radian +ln10 = 2.3025850929940456840179914546843642076011014886288 # natural logarithm of 10 +wien_x = 4.9651142317442763036987591313228939440555849867973 # solution to (x-5)*exp(x)+5 = 0 => x = W(5/exp(5))+5 +wien_u = 2.8214393721220788934031913302944851953458817440731 # solution to (u-3)*exp(u)+3 = 0 => u = W(3/exp(3))+3 +eulers_number = 2.71828182845904523536028747135266249775724709369995 + +#### DEFINED EXACT CONSTANTS #### + +speed_of_light = 299792458 m/s = c = c_0 # since 1983 +planck_constant = 6.62607015e-34 J s = h # since May 2019 +elementary_charge = 1.602176634e-19 C = e # since May 2019 +avogadro_number = 6.02214076e23 # since May 2019 +boltzmann_constant = 1.380649e-23 J K^-1 = k = k_B # since May 2019 +standard_gravity = 9.80665 m/s^2 = g_0 = g0 = g_n = gravity # since 1901 +standard_atmosphere = 1.01325e5 Pa = atm = atmosphere # since 1954 +conventional_josephson_constant = 4.835979e14 Hz / V = K_J90 # since Jan 1990 +conventional_von_klitzing_constant = 2.5812807e4 ohm = R_K90 # since Jan 1990 + +#### DERIVED EXACT CONSTANTS #### +# Floating-point conversion may introduce inaccuracies + +zeta = c / (cm/s) = ζ +dirac_constant = h / (2 * π) = ħ = hbar = atomic_unit_of_action = a_u_action +avogadro_constant = avogadro_number * mol^-1 = N_A +molar_gas_constant = k * N_A = R +faraday_constant = e * N_A +conductance_quantum = 2 * e ** 2 / h = G_0 +magnetic_flux_quantum = h / (2 * e) = Φ_0 = Phi_0 +josephson_constant = 2 * e / h = K_J +von_klitzing_constant = h / e ** 2 = R_K +stefan_boltzmann_constant = 2 / 15 * π ** 5 * k ** 4 / (h ** 3 * c ** 2) = σ = sigma +first_radiation_constant = 2 * π * h * c ** 2 = c_1 +second_radiation_constant = h * c / k = c_2 +wien_wavelength_displacement_law_constant = h * c / (k * wien_x) +wien_frequency_displacement_law_constant = wien_u * k / h + +#### MEASURED CONSTANTS #### +# Recommended CODATA-2018 values +# To some extent, what is measured and what is derived is a bit arbitrary. +# The choice of measured constants is based on convenience and on available uncertainty. +# The uncertainty in the last significant digits is given in parentheses as a comment. + +newtonian_constant_of_gravitation = 6.67430e-11 m^3/(kg s^2) = _ = gravitational_constant # (15) +rydberg_constant = 1.0973731568160e7 * m^-1 = R_∞ = R_inf # (21) +electron_g_factor = -2.00231930436256 = g_e # (35) +atomic_mass_constant = 1.66053906660e-27 kg = m_u # (50) +electron_mass = 9.1093837015e-31 kg = m_e = atomic_unit_of_mass = a_u_mass # (28) +proton_mass = 1.67262192369e-27 kg = m_p # (51) +neutron_mass = 1.67492749804e-27 kg = m_n # (95) +lattice_spacing_of_Si = 1.920155716e-10 m = d_220 # (32) +K_alpha_Cu_d_220 = 0.80232719 # (22) +K_alpha_Mo_d_220 = 0.36940604 # (19) +K_alpha_W_d_220 = 0.108852175 # (98) + +#### DERIVED CONSTANTS #### + +fine_structure_constant = (2 * h * R_inf / (m_e * c)) ** 0.5 = α = alpha +vacuum_permeability = 2 * α * h / (e ** 2 * c) = µ_0 = mu_0 = mu0 = magnetic_constant +vacuum_permittivity = e ** 2 / (2 * α * h * c) = ε_0 = epsilon_0 = eps_0 = eps0 = electric_constant +impedance_of_free_space = 2 * α * h / e ** 2 = Z_0 = characteristic_impedance_of_vacuum +coulomb_constant = α * hbar * c / e ** 2 = k_C +classical_electron_radius = α * hbar / (m_e * c) = r_e +thomson_cross_section = 8 / 3 * π * r_e ** 2 = σ_e = sigma_e +""" + +pint_definitions = f""" +# Default Pint units definition file +# Based on the International System of Units +# Language: english +# :copyright: 2013,2019 by Pint Authors, see AUTHORS for more details. + +# Syntax +# ====== +# Units +# ----- +# = [= ] [= ] [ = ] [...] +# +# The canonical name and aliases should be expressed in singular form. +# Pint automatically deals with plurals built by adding 's' to the singular form; plural +# forms that don't follow this rule should be instead explicitly listed as aliases. +# +# If a unit has no symbol and one wants to define aliases, then the symbol should be +# conventionally set to _. +# +# Example: +# millennium = 1e3 * year = _ = millennia +# +# +# Prefixes +# -------- +# - = [= ] [= ] [ = ] [...] +# +# Example: +# deca- = 1e+1 = da- = deka- +# +# +# Derived dimensions +# ------------------ +# [dimension name] = +# +# Example: +# [density] = [mass] / [volume] +# +# Note that primary dimensions don't need to be declared; they can be +# defined for the first time in a unit definition. +# E.g. see below `meter = [length]` +# +# +# Additional aliases +# ------------------ +# @alias = [ = ] [...] +# +# Used to add aliases to already existing unit definitions. +# Particularly useful when one wants to enrich definitions +# from defaults_en.txt with custom aliases. +# +# Example: +# @alias meter = my_meter + +# See also: https://pint.readthedocs.io/en/latest/defining.html + +@defaults + group = international + system = mks +@end + + +#### PREFIXES #### + +# decimal prefixes +yocto- = 1e-24 = y- +zepto- = 1e-21 = z- +atto- = 1e-18 = a- +femto- = 1e-15 = f- +pico- = 1e-12 = p- +nano- = 1e-9 = n- +micro- = 1e-6 = µ- = u- +milli- = 1e-3 = m- +centi- = 1e-2 = c- +deci- = 1e-1 = d- +deca- = 1e+1 = da- = deka- +hecto- = 1e2 = h- +kilo- = 1e3 = k- +mega- = 1e6 = M- +giga- = 1e9 = G- +tera- = 1e12 = T- +peta- = 1e15 = P- +exa- = 1e18 = E- +zetta- = 1e21 = Z- +yotta- = 1e24 = Y- + +# binary_prefixes +kibi- = 2**10 = Ki- +mebi- = 2**20 = Mi- +gibi- = 2**30 = Gi- +tebi- = 2**40 = Ti- +pebi- = 2**50 = Pi- +exbi- = 2**60 = Ei- +zebi- = 2**70 = Zi- +yobi- = 2**80 = Yi- + +# extra_prefixes +semi- = 0.5 = _ = demi- +sesqui- = 1.5 + + +#### BASE UNITS #### + +meter = [length] = m = metre +second = [time] = s = sec +ampere = [current] = A = amp +candela = [luminosity] = cd = candle +gram = [mass] = g +mole = [substance] = mol +kelvin = [temperature]; offset: 0 = K = degK = °K = degree_Kelvin = degreeK # older names supported for compatibility +radian = [] = rad +bit = [] +count = [] + + +#### CONSTANTS #### + +{pint_constants} + + +#### UNITS #### +# Common and less common, grouped by quantity. +# Conversion factors are exact (except when noted), +# although floating-point conversion may introduce inaccuracies + +# Angle +turn = 2 * π * radian = _ = revolution = cycle = circle +degree = π / 180 * radian = deg = arcdeg = arcdegree = angular_degree +arcminute = degree / 60 = arcmin = arc_minute = angular_minute +arcsecond = arcminute / 60 = arcsec = arc_second = angular_second +milliarcsecond = 1e-3 * arcsecond = mas +grade = π / 200 * radian = grad = gon +mil = π / 32000 * radian + +# Solid angle +steradian = radian ** 2 = sr +square_degree = (π / 180) ** 2 * sr = sq_deg = sqdeg + +# Information +baud = bit / second = Bd = bps + +byte = 8 * bit = B = octet +# byte = 8 * bit = _ = octet +## NOTE: B (byte) symbol can conflict with Bell + +# Length +angstrom = 1e-10 * meter = Å = ångström = Å +micron = micrometer = µ +fermi = femtometer = fm +light_year = speed_of_light * julian_year = ly = lightyear +astronomical_unit = 149597870700 * meter = au # since Aug 2012 +parsec = 1 / tansec * astronomical_unit = pc +nautical_mile = 1852 * meter = nmi +bohr = hbar / (alpha * m_e * c) = a_0 = a0 = bohr_radius = atomic_unit_of_length = a_u_length +x_unit_Cu = K_alpha_Cu_d_220 * d_220 / 1537.4 = Xu_Cu +x_unit_Mo = K_alpha_Mo_d_220 * d_220 / 707.831 = Xu_Mo +angstrom_star = K_alpha_W_d_220 * d_220 / 0.2090100 = Å_star +planck_length = (hbar * gravitational_constant / c ** 3) ** 0.5 + +# Mass +metric_ton = 1e3 * kilogram = t = tonne +unified_atomic_mass_unit = atomic_mass_constant = u = amu +dalton = atomic_mass_constant = Da +grain = 64.79891 * milligram = gr +gamma_mass = microgram +carat = 200 * milligram = ct = karat +planck_mass = (hbar * c / gravitational_constant) ** 0.5 + +# Time +minute = 60 * second = min +hour = 60 * minute = hr +day = 24 * hour = d +week = 7 * day +fortnight = 2 * week +year = 365.25 * day = a = yr = julian_year +month = year / 12 + +# decade = 10 * year +## NOTE: decade [time] can conflict with decade [dimensionless] + +century = 100 * year = _ = centuries +millennium = 1e3 * year = _ = millennia +eon = 1e9 * year +shake = 1e-8 * second +svedberg = 1e-13 * second +atomic_unit_of_time = hbar / E_h = a_u_time +gregorian_year = 365.2425 * day +sidereal_year = 365.256363004 * day # approximate, as of J2000 epoch +tropical_year = 365.242190402 * day # approximate, as of J2000 epoch +common_year = 365 * day +leap_year = 366 * day +sidereal_day = day / 1.00273790935079524 # approximate +sidereal_month = 27.32166155 * day # approximate +tropical_month = 27.321582 * day # approximate +synodic_month = 29.530589 * day = _ = lunar_month # approximate +planck_time = (hbar * gravitational_constant / c ** 5) ** 0.5 + +# Temperature +degree_Celsius = kelvin; offset: 273.15 = °C = celsius = degC = degreeC +degree_Rankine = 5 / 9 * kelvin; offset: 0 = °R = rankine = degR = degreeR +degree_Fahrenheit = 5 / 9 * kelvin; offset: 233.15 + 200 / 9 = °F = fahrenheit = degF = degreeF +degree_Reaumur = 4 / 5 * kelvin; offset: 273.15 = °Re = reaumur = degRe = degreeRe = degree_Réaumur = réaumur +atomic_unit_of_temperature = E_h / k = a_u_temp +planck_temperature = (hbar * c ** 5 / gravitational_constant / k ** 2) ** 0.5 + +# Area +[area] = [length] ** 2 +are = 100 * meter ** 2 +barn = 1e-28 * meter ** 2 = b +darcy = centipoise * centimeter ** 2 / (second * atmosphere) +hectare = 100 * are = ha + +# Volume +[volume] = [length] ** 3 +liter = decimeter ** 3 = l = L = litre +cubic_centimeter = centimeter ** 3 = cc +lambda = microliter = λ +stere = meter ** 3 + +# Frequency +[frequency] = 1 / [time] +hertz = 1 / second = Hz +revolutions_per_minute = revolution / minute = rpm +revolutions_per_second = revolution / second = rps +counts_per_second = count / second = cps + +# Wavenumber +[wavenumber] = 1 / [length] +reciprocal_centimeter = 1 / cm = cm_1 = kayser + +# Velocity +[velocity] = [length] / [time] +[speed] = [velocity] +knot = nautical_mile / hour = kt = knot_international = international_knot +mile_per_hour = mile / hour = mph = MPH +kilometer_per_hour = kilometer / hour = kph = KPH +kilometer_per_second = kilometer / second = kps +meter_per_second = meter / second = mps +foot_per_second = foot / second = fps + +# Acceleration +[acceleration] = [velocity] / [time] +galileo = centimeter / second ** 2 = Gal + +# Force +[force] = [mass] * [acceleration] +newton = kilogram * meter / second ** 2 = N +dyne = gram * centimeter / second ** 2 = dyn +force_kilogram = g_0 * kilogram = kgf = kilogram_force = pond +force_gram = g_0 * gram = gf = gram_force +force_metric_ton = g_0 * metric_ton = tf = metric_ton_force = force_t = t_force +atomic_unit_of_force = E_h / a_0 = a_u_force + +# Energy +[energy] = [force] * [length] +joule = newton * meter = J +erg = dyne * centimeter +watt_hour = watt * hour = Wh = watthour +electron_volt = e * volt = eV +rydberg = h * c * R_inf = Ry +hartree = 2 * rydberg = E_h = Eh = hartree_energy = atomic_unit_of_energy = a_u_energy +calorie = 4.184 * joule = cal = thermochemical_calorie = cal_th +international_calorie = 4.1868 * joule = cal_it = international_steam_table_calorie +fifteen_degree_calorie = 4.1855 * joule = cal_15 +british_thermal_unit = 1055.056 * joule = Btu = BTU = Btu_iso +international_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * international_calorie = Btu_it +thermochemical_british_thermal_unit = 1e3 * pound / kilogram * degR / kelvin * calorie = Btu_th +quadrillion_Btu = 1e15 * Btu = quad +therm = 1e5 * Btu = thm = EC_therm +US_therm = 1.054804e8 * joule # approximate, no exact definition +ton_TNT = 1e9 * calorie = tTNT +tonne_of_oil_equivalent = 1e10 * international_calorie = toe +atmosphere_liter = atmosphere * liter = atm_l + +# Power +[power] = [energy] / [time] +watt = joule / second = W +volt_ampere = volt * ampere = VA +horsepower = 550 * foot * force_pound / second = hp = UK_horsepower = hydraulic_horsepower +boiler_horsepower = 33475 * Btu / hour # unclear which Btu +metric_horsepower = 75 * force_kilogram * meter / second +electrical_horsepower = 746 * watt +refrigeration_ton = 12e3 * Btu / hour = _ = ton_of_refrigeration # approximate, no exact definition +standard_liter_per_minute = atmosphere * liter / minute = slpm = slm +conventional_watt_90 = K_J90 ** 2 * R_K90 / (K_J ** 2 * R_K) * watt = W_90 + +# Momentum +[momentum] = [length] * [mass] / [time] + +# Density (as auxiliary for pressure) +[density] = [mass] / [volume] +mercury = 13.5951 * kilogram / liter = Hg = Hg_0C = Hg_32F = conventional_mercury +water = 1.0 * kilogram / liter = H2O = conventional_water +mercury_60F = 13.5568 * kilogram / liter = Hg_60F # approximate +water_39F = 0.999972 * kilogram / liter = water_4C # approximate +water_60F = 0.999001 * kilogram / liter # approximate + +# Pressure +[pressure] = [force] / [area] +pascal = newton / meter ** 2 = Pa +barye = dyne / centimeter ** 2 = Ba = barie = barad = barrie = baryd +bar = 1e5 * pascal +technical_atmosphere = kilogram * g_0 / centimeter ** 2 = at +torr = atm / 760 +pound_force_per_square_inch = force_pound / inch ** 2 = psi +kip_per_square_inch = kip / inch ** 2 = ksi +millimeter_Hg = millimeter * Hg * g_0 = mmHg = mm_Hg = millimeter_Hg_0C +centimeter_Hg = centimeter * Hg * g_0 = cmHg = cm_Hg = centimeter_Hg_0C +inch_Hg = inch * Hg * g_0 = inHg = in_Hg = inch_Hg_32F +inch_Hg_60F = inch * Hg_60F * g_0 +inch_H2O_39F = inch * water_39F * g_0 +inch_H2O_60F = inch * water_60F * g_0 +foot_H2O = foot * water * g_0 = ftH2O = feet_H2O +centimeter_H2O = centimeter * water * g_0 = cmH2O = cm_H2O +sound_pressure_level = 20e-6 * pascal = SPL + +# Torque +[torque] = [force] * [length] +foot_pound = foot * force_pound = ft_lb = footpound + +# Viscosity +[viscosity] = [pressure] * [time] +poise = 0.1 * Pa * second = P +reyn = psi * second + +# Kinematic viscosity +[kinematic_viscosity] = [area] / [time] +stokes = centimeter ** 2 / second = St + +# Fluidity +[fluidity] = 1 / [viscosity] +rhe = 1 / poise + +# Amount of substance +particle = 1 / N_A = _ = molec = molecule + +# Concentration +[concentration] = [substance] / [volume] +molar = mole / liter = M + +# Catalytic activity +[activity] = [substance] / [time] +katal = mole / second = kat +enzyme_unit = micromole / minute = U = enzymeunit + +# Entropy +[entropy] = [energy] / [temperature] +clausius = calorie / kelvin = Cl + +# Molar entropy +[molar_entropy] = [entropy] / [substance] +entropy_unit = calorie / kelvin / mole = eu + +# Radiation +becquerel = counts_per_second = Bq +curie = 3.7e10 * becquerel = Ci +rutherford = 1e6 * becquerel = Rd +gray = joule / kilogram = Gy +sievert = joule / kilogram = Sv +rads = 0.01 * gray +rem = 0.01 * sievert +roentgen = 2.58e-4 * coulomb / kilogram = _ = röntgen # approximate, depends on medium + +# Heat transimission +[heat_transmission] = [energy] / [area] +peak_sun_hour = 1e3 * watt_hour / meter ** 2 = PSH +langley = thermochemical_calorie / centimeter ** 2 = Ly + +# Luminance +[luminance] = [luminosity] / [area] +nit = candela / meter ** 2 +stilb = candela / centimeter ** 2 +lambert = 1 / π * candela / centimeter ** 2 + +# Luminous flux +[luminous_flux] = [luminosity] +lumen = candela * steradian = lm + +# Illuminance +[illuminance] = [luminous_flux] / [area] +lux = lumen / meter ** 2 = lx + +# Intensity +[intensity] = [power] / [area] +atomic_unit_of_intensity = 0.5 * ε_0 * c * atomic_unit_of_electric_field ** 2 = a_u_intensity + +# Current +biot = 10 * ampere = Bi +abampere = biot = abA +atomic_unit_of_current = e / atomic_unit_of_time = a_u_current +mean_international_ampere = mean_international_volt / mean_international_ohm = A_it +US_international_ampere = US_international_volt / US_international_ohm = A_US +conventional_ampere_90 = K_J90 * R_K90 / (K_J * R_K) * ampere = A_90 +planck_current = (c ** 6 / gravitational_constant / k_C) ** 0.5 + +# Charge +[charge] = [current] * [time] +coulomb = ampere * second = C +abcoulomb = 10 * C = abC +faraday = e * N_A * mole +conventional_coulomb_90 = K_J90 * R_K90 / (K_J * R_K) * coulomb = C_90 +ampere_hour = ampere * hour = Ah + +# Electric potential +[electric_potential] = [energy] / [charge] +volt = joule / coulomb = V +abvolt = 1e-8 * volt = abV +mean_international_volt = 1.00034 * volt = V_it # approximate +US_international_volt = 1.00033 * volt = V_US # approximate +conventional_volt_90 = K_J90 / K_J * volt = V_90 + +# Electric field +[electric_field] = [electric_potential] / [length] +atomic_unit_of_electric_field = e * k_C / a_0 ** 2 = a_u_electric_field + +# Electric displacement field +[electric_displacement_field] = [charge] / [area] + +# Resistance +[resistance] = [electric_potential] / [current] +ohm = volt / ampere = Ω +abohm = 1e-9 * ohm = abΩ +mean_international_ohm = 1.00049 * ohm = Ω_it = ohm_it # approximate +US_international_ohm = 1.000495 * ohm = Ω_US = ohm_US # approximate +conventional_ohm_90 = R_K / R_K90 * ohm = Ω_90 = ohm_90 + +# Resistivity +[resistivity] = [resistance] * [length] + +# Conductance +[conductance] = [current] / [electric_potential] +siemens = ampere / volt = S = mho +absiemens = 1e9 * siemens = abS = abmho + +# Capacitance +[capacitance] = [charge] / [electric_potential] +farad = coulomb / volt = F +abfarad = 1e9 * farad = abF +conventional_farad_90 = R_K90 / R_K * farad = F_90 + +# Inductance +[inductance] = [magnetic_flux] / [current] +henry = weber / ampere = H +abhenry = 1e-9 * henry = abH +conventional_henry_90 = R_K / R_K90 * henry = H_90 + +# Magnetic flux +[magnetic_flux] = [electric_potential] * [time] +weber = volt * second = Wb +unit_pole = µ_0 * biot * centimeter + +# Magnetic field +[magnetic_field] = [magnetic_flux] / [area] +tesla = weber / meter ** 2 = T +gamma = 1e-9 * tesla = γ + +# Magnetomotive force +[magnetomotive_force] = [current] +ampere_turn = ampere = At +biot_turn = biot +gilbert = 1 / (4 * π) * biot_turn = Gb + +# Magnetic field strength +[magnetic_field_strength] = [current] / [length] + +# Electric dipole moment +[electric_dipole] = [charge] * [length] +debye = 1e-9 / ζ * coulomb * angstrom = D # formally 1 D = 1e-10 Fr*Å, but we generally want to use it outside the Gaussian context + +# Electric quadrupole moment +[electric_quadrupole] = [charge] * [area] +buckingham = debye * angstrom + +# Magnetic dipole moment +[magnetic_dipole] = [current] * [area] +bohr_magneton = e * hbar / (2 * m_e) = µ_B = mu_B +nuclear_magneton = e * hbar / (2 * m_p) = µ_N = mu_N + +# Logaritmic Unit Definition +# Unit = scale; logbase; logfactor +# x_dB = [logfactor] * log( x_lin / [scale] ) / log( [logbase] ) + +# Logaritmic Units of dimensionless quantity: [ https://en.wikipedia.org/wiki/Level_(logarithmic_quantity) ] + +decibelmilliwatt = 1e-3 watt; logbase: 10; logfactor: 10 = dBm +decibelmicrowatt = 1e-6 watt; logbase: 10; logfactor: 10 = dBu + +decibel = 1 ; logbase: 10; logfactor: 10 = dB +# bell = 1 ; logbase: 10; logfactor: = B +## NOTE: B (Bell) symbol conflicts with byte + +decade = 1 ; logbase: 10; logfactor: 1 +## NOTE: decade [time] can conflict with decade [dimensionless] + +octave = 1 ; logbase: 2; logfactor: 1 = oct + +neper = 1 ; logbase: 2.71828182845904523536028747135266249775724709369995; logfactor: 0.5 = Np +# neper = 1 ; logbase: eulers_number; logfactor: 0.5 = Np + +#### UNIT GROUPS #### +# Mostly for length, area, volume, mass, force +# (customary or specialized units) + +@group USCSLengthInternational + thou = 1e-3 * inch = th = mil_length + inch = yard / 36 = in = international_inch = inches = international_inches + hand = 4 * inch + foot = yard / 3 = ft = international_foot = feet = international_feet + yard = 0.9144 * meter = yd = international_yard # since Jul 1959 + mile = 1760 * yard = mi = international_mile + + circular_mil = π / 4 * mil_length ** 2 = cmil + square_inch = inch ** 2 = sq_in = square_inches + square_foot = foot ** 2 = sq_ft = square_feet + square_yard = yard ** 2 = sq_yd + square_mile = mile ** 2 = sq_mi + + cubic_inch = in ** 3 = cu_in + cubic_foot = ft ** 3 = cu_ft = cubic_feet + cubic_yard = yd ** 3 = cu_yd +@end + +@group USCSLengthSurvey + link = 1e-2 * chain = li = survey_link + survey_foot = 1200 / 3937 * meter = sft + fathom = 6 * survey_foot + rod = 16.5 * survey_foot = rd = pole = perch + chain = 4 * rod + furlong = 40 * rod = fur + cables_length = 120 * fathom + survey_mile = 5280 * survey_foot = smi = us_statute_mile + league = 3 * survey_mile + + square_rod = rod ** 2 = sq_rod = sq_pole = sq_perch + acre = 10 * chain ** 2 + square_survey_mile = survey_mile ** 2 = _ = section + square_league = league ** 2 + + acre_foot = acre * survey_foot = _ = acre_feet +@end + +@group USCSDryVolume + dry_pint = bushel / 64 = dpi = US_dry_pint + dry_quart = bushel / 32 = dqt = US_dry_quart + dry_gallon = bushel / 8 = dgal = US_dry_gallon + peck = bushel / 4 = pk + bushel = 2150.42 cubic_inch = bu + dry_barrel = 7056 cubic_inch = _ = US_dry_barrel + board_foot = ft * ft * in = FBM = board_feet = BF = BDFT = super_foot = superficial_foot = super_feet = superficial_feet +@end + +@group USCSLiquidVolume + minim = pint / 7680 + fluid_dram = pint / 128 = fldr = fluidram = US_fluid_dram = US_liquid_dram + fluid_ounce = pint / 16 = floz = US_fluid_ounce = US_liquid_ounce + gill = pint / 4 = gi = liquid_gill = US_liquid_gill + pint = quart / 2 = pt = liquid_pint = US_pint + fifth = gallon / 5 = _ = US_liquid_fifth + quart = gallon / 4 = qt = liquid_quart = US_liquid_quart + gallon = 231 * cubic_inch = gal = liquid_gallon = US_liquid_gallon +@end + +@group USCSVolumeOther + teaspoon = fluid_ounce / 6 = tsp + tablespoon = fluid_ounce / 2 = tbsp + shot = 3 * tablespoon = jig = US_shot + cup = pint / 2 = cp = liquid_cup = US_liquid_cup + barrel = 31.5 * gallon = bbl + oil_barrel = 42 * gallon = oil_bbl + beer_barrel = 31 * gallon = beer_bbl + hogshead = 63 * gallon +@end + +@group Avoirdupois + dram = pound / 256 = dr = avoirdupois_dram = avdp_dram = drachm + ounce = pound / 16 = oz = avoirdupois_ounce = avdp_ounce + pound = 7e3 * grain = lb = avoirdupois_pound = avdp_pound + stone = 14 * pound + quarter = 28 * stone + bag = 94 * pound + hundredweight = 100 * pound = cwt = short_hundredweight + long_hundredweight = 112 * pound + ton = 2e3 * pound = _ = short_ton + long_ton = 2240 * pound + slug = g_0 * pound * second ** 2 / foot + slinch = g_0 * pound * second ** 2 / inch = blob = slugette + + force_ounce = g_0 * ounce = ozf = ounce_force + force_pound = g_0 * pound = lbf = pound_force + force_ton = g_0 * ton = _ = ton_force = force_short_ton = short_ton_force + force_long_ton = g_0 * long_ton = _ = long_ton_force + kip = 1e3 * force_pound + poundal = pound * foot / second ** 2 = pdl +@end + +@group AvoirdupoisUK using Avoirdupois + UK_hundredweight = long_hundredweight = UK_cwt + UK_ton = long_ton + UK_force_ton = force_long_ton = _ = UK_ton_force +@end + +@group AvoirdupoisUS using Avoirdupois + US_hundredweight = hundredweight = US_cwt + US_ton = ton + US_force_ton = force_ton = _ = US_ton_force +@end + +@group Troy + pennyweight = 24 * grain = dwt + troy_ounce = 480 * grain = toz = ozt + troy_pound = 12 * troy_ounce = tlb = lbt +@end + +@group Apothecary + scruple = 20 * grain + apothecary_dram = 3 * scruple = ap_dr + apothecary_ounce = 8 * apothecary_dram = ap_oz + apothecary_pound = 12 * apothecary_ounce = ap_lb +@end + +@group ImperialVolume + imperial_minim = imperial_fluid_ounce / 480 + imperial_fluid_scruple = imperial_fluid_ounce / 24 + imperial_fluid_drachm = imperial_fluid_ounce / 8 = imperial_fldr = imperial_fluid_dram + imperial_fluid_ounce = imperial_pint / 20 = imperial_floz = UK_fluid_ounce + imperial_gill = imperial_pint / 4 = imperial_gi = UK_gill + imperial_cup = imperial_pint / 2 = imperial_cp = UK_cup + imperial_pint = imperial_gallon / 8 = imperial_pt = UK_pint + imperial_quart = imperial_gallon / 4 = imperial_qt = UK_quart + imperial_gallon = 4.54609 * liter = imperial_gal = UK_gallon + imperial_peck = 2 * imperial_gallon = imperial_pk = UK_pk + imperial_bushel = 8 * imperial_gallon = imperial_bu = UK_bushel + imperial_barrel = 36 * imperial_gallon = imperial_bbl = UK_bbl +@end + +@group Textile + tex = gram / kilometer = Tt + dtex = decitex + denier = gram / (9 * kilometer) = den = Td + jute = pound / (14400 * yard) = Tj + aberdeen = jute = Ta + RKM = gf / tex + + number_english = 840 * yard / pound = Ne = NeC = ECC + number_meter = kilometer / kilogram = Nm +@end + + +#### CGS ELECTROMAGNETIC UNITS #### + +# === Gaussian system of units === +@group Gaussian + franklin = erg ** 0.5 * centimeter ** 0.5 = Fr = statcoulomb = statC = esu + statvolt = erg / franklin = statV + statampere = franklin / second = statA + gauss = dyne / franklin = G + maxwell = gauss * centimeter ** 2 = Mx + oersted = dyne / maxwell = Oe = ørsted + statohm = statvolt / statampere = statΩ + statfarad = franklin / statvolt = statF + statmho = statampere / statvolt +@end +# Note this system is not commensurate with SI, as ε_0 and µ_0 disappear; +# some quantities with different dimensions in SI have the same +# dimensions in the Gaussian system (e.g. [Mx] = [Fr], but [Wb] != [C]), +# and therefore the conversion factors depend on the context (not in pint sense) +[gaussian_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] +[gaussian_current] = [gaussian_charge] / [time] +[gaussian_electric_potential] = [gaussian_charge] / [length] +[gaussian_electric_field] = [gaussian_electric_potential] / [length] +[gaussian_electric_displacement_field] = [gaussian_charge] / [area] +[gaussian_electric_flux] = [gaussian_charge] +[gaussian_electric_dipole] = [gaussian_charge] * [length] +[gaussian_electric_quadrupole] = [gaussian_charge] * [area] +[gaussian_magnetic_field] = [force] / [gaussian_charge] +[gaussian_magnetic_field_strength] = [gaussian_magnetic_field] +[gaussian_magnetic_flux] = [gaussian_magnetic_field] * [area] +[gaussian_magnetic_dipole] = [energy] / [gaussian_magnetic_field] +[gaussian_resistance] = [gaussian_electric_potential] / [gaussian_current] +[gaussian_resistivity] = [gaussian_resistance] * [length] +[gaussian_capacitance] = [gaussian_charge] / [gaussian_electric_potential] +[gaussian_inductance] = [gaussian_electric_potential] * [time] / [gaussian_current] +[gaussian_conductance] = [gaussian_current] / [gaussian_electric_potential] +@context Gaussian = Gau + [gaussian_charge] -> [charge]: value / k_C ** 0.5 + [charge] -> [gaussian_charge]: value * k_C ** 0.5 + [gaussian_current] -> [current]: value / k_C ** 0.5 + [current] -> [gaussian_current]: value * k_C ** 0.5 + [gaussian_electric_potential] -> [electric_potential]: value * k_C ** 0.5 + [electric_potential] -> [gaussian_electric_potential]: value / k_C ** 0.5 + [gaussian_electric_field] -> [electric_field]: value * k_C ** 0.5 + [electric_field] -> [gaussian_electric_field]: value / k_C ** 0.5 + [gaussian_electric_displacement_field] -> [electric_displacement_field]: value / (4 * π / ε_0) ** 0.5 + [electric_displacement_field] -> [gaussian_electric_displacement_field]: value * (4 * π / ε_0) ** 0.5 + [gaussian_electric_dipole] -> [electric_dipole]: value / k_C ** 0.5 + [electric_dipole] -> [gaussian_electric_dipole]: value * k_C ** 0.5 + [gaussian_electric_quadrupole] -> [electric_quadrupole]: value / k_C ** 0.5 + [electric_quadrupole] -> [gaussian_electric_quadrupole]: value * k_C ** 0.5 + [gaussian_magnetic_field] -> [magnetic_field]: value / (4 * π / µ_0) ** 0.5 + [magnetic_field] -> [gaussian_magnetic_field]: value * (4 * π / µ_0) ** 0.5 + [gaussian_magnetic_flux] -> [magnetic_flux]: value / (4 * π / µ_0) ** 0.5 + [magnetic_flux] -> [gaussian_magnetic_flux]: value * (4 * π / µ_0) ** 0.5 + [gaussian_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π * µ_0) ** 0.5 + [magnetic_field_strength] -> [gaussian_magnetic_field_strength]: value * (4 * π * µ_0) ** 0.5 + [gaussian_magnetic_dipole] -> [magnetic_dipole]: value * (4 * π / µ_0) ** 0.5 + [magnetic_dipole] -> [gaussian_magnetic_dipole]: value / (4 * π / µ_0) ** 0.5 + [gaussian_resistance] -> [resistance]: value * k_C + [resistance] -> [gaussian_resistance]: value / k_C + [gaussian_resistivity] -> [resistivity]: value * k_C + [resistivity] -> [gaussian_resistivity]: value / k_C + [gaussian_capacitance] -> [capacitance]: value / k_C + [capacitance] -> [gaussian_capacitance]: value * k_C + [gaussian_inductance] -> [inductance]: value * k_C + [inductance] -> [gaussian_inductance]: value / k_C + [gaussian_conductance] -> [conductance]: value / k_C + [conductance] -> [gaussian_conductance]: value * k_C +@end + +# === ESU system of units === +# (where different from Gaussian) +# See note for Gaussian system too +@group ESU using Gaussian + statweber = statvolt * second = statWb + stattesla = statweber / centimeter ** 2 = statT + stathenry = statweber / statampere = statH +@end +[esu_charge] = [length] ** 1.5 * [mass] ** 0.5 / [time] +[esu_current] = [esu_charge] / [time] +[esu_electric_potential] = [esu_charge] / [length] +[esu_magnetic_flux] = [esu_electric_potential] * [time] +[esu_magnetic_field] = [esu_magnetic_flux] / [area] +[esu_magnetic_field_strength] = [esu_current] / [length] +[esu_magnetic_dipole] = [esu_current] * [area] +@context ESU = esu + [esu_magnetic_field] -> [magnetic_field]: value * k_C ** 0.5 + [magnetic_field] -> [esu_magnetic_field]: value / k_C ** 0.5 + [esu_magnetic_flux] -> [magnetic_flux]: value * k_C ** 0.5 + [magnetic_flux] -> [esu_magnetic_flux]: value / k_C ** 0.5 + [esu_magnetic_field_strength] -> [magnetic_field_strength]: value / (4 * π / ε_0) ** 0.5 + [magnetic_field_strength] -> [esu_magnetic_field_strength]: value * (4 * π / ε_0) ** 0.5 + [esu_magnetic_dipole] -> [magnetic_dipole]: value / k_C ** 0.5 + [magnetic_dipole] -> [esu_magnetic_dipole]: value * k_C ** 0.5 +@end + + +#### CONVERSION CONTEXTS #### + +@context(n=1) spectroscopy = sp + # n index of refraction of the medium. + [length] <-> [frequency]: speed_of_light / n / value + [frequency] -> [energy]: planck_constant * value + [energy] -> [frequency]: value / planck_constant + # allow wavenumber / kayser + [wavenumber] <-> [length]: 1 / value +@end + +@context boltzmann + [temperature] -> [energy]: boltzmann_constant * value + [energy] -> [temperature]: value / boltzmann_constant +@end + +@context energy + [energy] -> [energy] / [substance]: value * N_A + [energy] / [substance] -> [energy]: value / N_A + [energy] -> [mass]: value / c ** 2 + [mass] -> [energy]: value * c ** 2 +@end + +@context(mw=0,volume=0,solvent_mass=0) chemistry = chem + # mw is the molecular weight of the species + # volume is the volume of the solution + # solvent_mass is the mass of solvent in the solution + + # moles -> mass require the molecular weight + [substance] -> [mass]: value * mw + [mass] -> [substance]: value / mw + + # moles/volume -> mass/volume and moles/mass -> mass/mass + # require the molecular weight + [substance] / [volume] -> [mass] / [volume]: value * mw + [mass] / [volume] -> [substance] / [volume]: value / mw + [substance] / [mass] -> [mass] / [mass]: value * mw + [mass] / [mass] -> [substance] / [mass]: value / mw + + # moles/volume -> moles requires the solution volume + [substance] / [volume] -> [substance]: value * volume + [substance] -> [substance] / [volume]: value / volume + + # moles/mass -> moles requires the solvent (usually water) mass + [substance] / [mass] -> [substance]: value * solvent_mass + [substance] -> [substance] / [mass]: value / solvent_mass + + # moles/mass -> moles/volume require the solvent mass and the volume + [substance] / [mass] -> [substance]/[volume]: value * solvent_mass / volume + [substance] / [volume] -> [substance] / [mass]: value / solvent_mass * volume + +@end + +@context textile + # Allow switching between Direct count system (i.e. tex) and + # Indirect count system (i.e. Ne, Nm) + [mass] / [length] <-> [length] / [mass]: 1 / value +@end + + +#### SYSTEMS OF UNITS #### + +@system SI + second + meter + kilogram + ampere + kelvin + mole + candela +@end + +@system mks using international + meter + kilogram + second +@end + +@system cgs using international, Gaussian, ESU + centimeter + gram + second +@end + +@system atomic using international + # based on unit m_e, e, hbar, k_C, k + bohr: meter + electron_mass: gram + atomic_unit_of_time: second + atomic_unit_of_current: ampere + atomic_unit_of_temperature: kelvin +@end + +@system Planck using international + # based on unit c, gravitational_constant, hbar, k_C, k + planck_length: meter + planck_mass: gram + planck_time: second + planck_current: ampere + planck_temperature: kelvin +@end + +@system imperial using ImperialVolume, USCSLengthInternational, AvoirdupoisUK + yard + pound +@end + +@system US using USCSLiquidVolume, USCSDryVolume, USCSVolumeOther, USCSLengthInternational, USCSLengthSurvey, AvoirdupoisUS + yard + pound +@end + +pixel = 1 micrometer = px +xpixel = 1 micrometer = xpx +ypixel = 1 micrometer = ypx +zpixel = 1 micrometer = zpx +simulation_xpixel = 1 micrometer = sxpx +simulation_ypixel = 1 micrometer = sypx +simulation_zpixel = 1 micrometer = szpx + +""" \ No newline at end of file From 8cae4487993a46d8de9164b3eabebafdecc4dd04 Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 23:17:10 +0100 Subject: [PATCH 35/36] u --- deeptrack/test/test_aberrations.py | 2 +- deeptrack/test/test_generators.py | 10 +++++----- deeptrack/test/test_optics.py | 10 +++++----- deeptrack/test/test_scatterers.py | 26 +++++++++++++------------- deeptrack/test/test_sequences.py | 8 ++++---- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/deeptrack/test/test_aberrations.py b/deeptrack/test/test_aberrations.py index b742f015e..401599bb6 100644 --- a/deeptrack/test/test_aberrations.py +++ b/deeptrack/test/test_aberrations.py @@ -15,7 +15,7 @@ class TestAberrations(unittest.TestCase): - particle = PointParticle(position=(32, 32), position_unit="pixel", intensity=1) + particle = PointParticle(position=(32, 32), position_unit="img_pixel", intensity=1) def testGaussianApodization(self): aberrated_optics = Fluorescence( diff --git a/deeptrack/test/test_generators.py b/deeptrack/test/test_generators.py index 698e69aac..daa616878 100644 --- a/deeptrack/test/test_generators.py +++ b/deeptrack/test/test_generators.py @@ -28,7 +28,7 @@ def test_Generator(self): ) scatterer = PointParticle( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.rand(2) * 128, ) imaged_scatterer = optics(scatterer) @@ -59,7 +59,7 @@ def test_ContinuousGenerator(self): ) scatterer = PointParticle( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.rand(2) * 128, ) imaged_scatterer = optics(scatterer) @@ -89,12 +89,12 @@ def test_MultiInputs_ContinuousGenerator(self): ) scatterer_A = PointParticle( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.rand(2) * 128, ) scatterer_B = PointParticle( intensity=10, - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.rand(2) * 128, ) imaged_scatterer_A = optics(scatterer_A) @@ -135,7 +135,7 @@ def test_CappedContinuousGenerator(self): ) scatterer = PointParticle( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.rand(2) * 128, ) imaged_scatterer = optics(scatterer) diff --git a/deeptrack/test/test_optics.py b/deeptrack/test/test_optics.py index 276696c8d..4cd5b5d7b 100644 --- a/deeptrack/test/test_optics.py +++ b/deeptrack/test/test_optics.py @@ -30,7 +30,7 @@ def test_Fluorescence(self): ) scatterer = PointParticle( intensity=100, # Squared magnitude of the field. - position_unit="pixel", # Units of position (default meter) + position_unit="img_pixel", # Units of position (default meter) position=(32, 32), # Position of the particle ) imaged_scatterer = microscope(scatterer) @@ -52,7 +52,7 @@ def test_Brightfield(self): ) scatterer = PointParticle( refractive_index=1.45 + 0.1j, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), ) imaged_scatterer = microscope(scatterer) @@ -76,7 +76,7 @@ def test_IlluminationGradient(self): ) scatterer = PointParticle( refractive_index=1.45 + 0.1j, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), ) imaged_scatterer = microscope(scatterer) @@ -100,7 +100,7 @@ def test_upscale_fluorescence(self): refractive_index=1.45, radius=1e-6, z=2 * u.um, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), ) @@ -134,7 +134,7 @@ def test_upscale_brightfield(self): intensity=100, radius=1e-6, z=2 * u.um, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), ) diff --git a/deeptrack/test/test_scatterers.py b/deeptrack/test/test_scatterers.py index 01f3a0deb..ea007a96a 100644 --- a/deeptrack/test/test_scatterers.py +++ b/deeptrack/test/test_scatterers.py @@ -23,7 +23,7 @@ def test_PointParticle(self): ) scatterer = scatterers.PointParticle( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), ) imaged_scatterer = optics(scatterer) @@ -41,7 +41,7 @@ def test_Ellipse(self): ) scatterer = scatterers.Ellipse( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6), rotation=np.pi / 4, @@ -63,7 +63,7 @@ def test_EllipseUpscale(self): ) scatterer = scatterers.Ellipse( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6), ) @@ -82,7 +82,7 @@ def test_EllipseUpscale(self): ) scatterer = scatterers.Ellipse( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6), ) @@ -102,7 +102,7 @@ def test_EllipseUpscaleAsymmetric(self): ) scatterer = scatterers.Ellipse( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 1e-6), ) @@ -121,7 +121,7 @@ def test_EllipseUpscaleAsymmetric(self): ) scatterer = scatterers.Ellipse( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 1e-6), ) @@ -140,7 +140,7 @@ def test_Sphere(self): ) scatterer = scatterers.Sphere( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=1e-6, upsample=4, @@ -162,7 +162,7 @@ def test_SphereUpscale(self): ) scatterer = scatterers.Sphere( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=1e-6, ) @@ -181,7 +181,7 @@ def test_Ellipsoid(self): ) scatterer = scatterers.Ellipsoid( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6, 0.25e-6), rotation=(np.pi / 4, 0, 0), @@ -203,7 +203,7 @@ def test_EllipsoidUpscale(self): ) scatterer = scatterers.Ellipsoid( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6, 0.25e-6), # rotation=(np.pi / 4, 0, 0), @@ -224,7 +224,7 @@ def test_EllipsoidUpscaleAsymmetric(self): ) scatterer = scatterers.Ellipsoid( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6, 0.25e-6), # rotation=(np.pi / 4, 0, 0), @@ -244,7 +244,7 @@ def test_EllipsoidUpscaleAsymmetric(self): ) scatterer = scatterers.Ellipsoid( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6, 0.25e-6), # rotation=(np.pi / 4, 0, 0), @@ -264,7 +264,7 @@ def test_EllipsoidUpscaleAsymmetric(self): ) scatterer = scatterers.Ellipsoid( intensity=100, - position_unit="pixel", + position_unit="img_pixel", position=(32, 32), radius=(1e-6, 0.5e-6, 0.25e-6), # rotation=(np.pi / 4, 0, 0), diff --git a/deeptrack/test/test_sequences.py b/deeptrack/test/test_sequences.py index db49af4b5..93cc5d08b 100644 --- a/deeptrack/test/test_sequences.py +++ b/deeptrack/test/test_sequences.py @@ -19,7 +19,7 @@ def test_Sequence(self): output_region=(0, 0, 32, 32), ) ellipse = Ellipse( - position_unit="pixel", + position_unit="img_pixel", position=(16, 16), intensity=1, radius=(1.5e-6, 1e-6), @@ -51,7 +51,7 @@ def test_Dependent_Sequential(self): output_region=(0, 0, 32, 32), ) ellipse = Ellipse( - position_unit="pixel", + position_unit="img_pixel", position=(16, 16), radius=(1.5e-6, 1e-6), rotation=0, # This will be the value at time 0. @@ -87,7 +87,7 @@ def test_RepeatedParticle(self): output_region=(0, 0, 32, 32), ) ellipse = Ellipse( - position_unit="pixel", + position_unit="img_pixel", position=lambda: np.random.randn(2) * 4 + (16, 16), radius=(1.5e-6, 1e-6), rotation=0, # This will be the value at time 0. @@ -135,7 +135,7 @@ def test_DistributedRepeatedParticle(self): output_region=(0, 0, 32, 32), ) ellipse = Ellipse( - position_unit="pixel", + position_unit="img_pixel", position=lambda _ID: positions[_ID[-1]], radius=(1.5e-6, 1e-6), rotation=0, # This will be the value at time 0. From dac07e7a735c91952dd9519bc045e476a112dcea Mon Sep 17 00:00:00 2001 From: Giovanni Volpe Date: Fri, 6 Dec 2024 23:20:05 +0100 Subject: [PATCH 36/36] u --- deeptrack/features.py | 2 +- deeptrack/scatterers.py | 4 ++-- deeptrack/test/test_features.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deeptrack/features.py b/deeptrack/features.py index bd3691e3f..235705960 100644 --- a/deeptrack/features.py +++ b/deeptrack/features.py @@ -2313,7 +2313,7 @@ def _resample_volume_position(self, volume): if "position" in pdict and "_position_sampler" in pdict: new_position = pdict["_position_sampler"]() if isinstance(new_position, Quantity): - new_position = new_position.to("pixel").magnitude + new_position = new_position.to("img_pixel").magnitude pdict["position"] = new_position return volume diff --git a/deeptrack/scatterers.py b/deeptrack/scatterers.py index fd7f21716..a42a95560 100644 --- a/deeptrack/scatterers.py +++ b/deeptrack/scatterers.py @@ -65,7 +65,7 @@ class Scatterer(Feature): A default value of the characteristic of the particle. Used by optics unless a more direct property is set (eg. `refractive_index` for `Brightfield` and `intensity` for `Fluorescence`). - position_unit : "meter" or "pixel" + position_unit : "meter" or "img_pixel" The unit of the provided position property. Other Parameters @@ -90,7 +90,7 @@ def __init__( position: PropertyLike[ArrayLike[float]] = (32, 32), z: PropertyLike[float] = 0.0, value: PropertyLike[float] = 1.0, - position_unit: PropertyLike[str] = "pixel", + position_unit: PropertyLike[str] = "img_pixel", upsample: PropertyLike[int] = 1, voxel_size=None, pixel_size=None, diff --git a/deeptrack/test/test_features.py b/deeptrack/test/test_features.py index de82ef312..999f0e99f 100644 --- a/deeptrack/test/test_features.py +++ b/deeptrack/test/test_features.py @@ -963,7 +963,7 @@ def test_NonOverlapping_resample_volume_position(self): self.assertEqual(volume_1.get_property("position"), positions_no_unit[0]) self.assertEqual( volume_2.get_property("position"), - positions_with_unit[0].to("px").magnitude, + positions_with_unit[0].to("ipx").magnitude, ) nonOverlapping._resample_volume_position(volume_1) @@ -972,7 +972,7 @@ def test_NonOverlapping_resample_volume_position(self): self.assertEqual(volume_1.get_property("position"), positions_no_unit[1]) self.assertEqual( volume_2.get_property("position"), - positions_with_unit[1].to("px").magnitude, + positions_with_unit[1].to("ipx").magnitude, ) def test_NonOverlapping_check_volumes_non_overlapping(self):