diff --git a/.gitignore b/.gitignore
index f1841fc8..2c7554b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,8 @@ __pycache__/
# go build output
/_output
+
+# AI model files
+*.pth
+*.model
+*.pkl
diff --git a/docs/contributing/organization_structure.md b/docs/contributing/organization_structure.md
new file mode 100644
index 00000000..f7dd9424
--- /dev/null
+++ b/docs/contributing/organization_structure.md
@@ -0,0 +1,22 @@
+Following the [KubeEdge Community Membership](https://github.com/kubeedge/community/blob/master/community-membership.md#member), we propose the membership arrangement for Kubeedge SIG AI.
+
+# Kubeedge SIG AI Membership
+| Role | Member List |
+| ----- | ------------------ |
+| Contributors | [Contributor List](https://github.com/kubeedge/sedna/graphs/contributors) |
+| Members |
+| Reviewers | [jaypume](https://github.com/jaypume)
[Poorunga](https://github.com/Poorunga)
[JimmyYang20](https://github.com/JimmyYang20)
[TymonXie](https://github.com/TymonXie)
[llhuii](https://github.com/llhuii)
[JoeyHwong-gk](https://github.com/JoeyHwong-gk)|
+| Approvers | None|
+| Maintainers | None |
+| Owners | None |
+
+
+# Kubeedge SIG AI Owners of Features
+| | Features | Owners | Other collaborative members
+| ---- |----- | ------------------ | ------- |
+| Sedna | AI Framework | [jaypume](https://github.com/jaypume) |[JoeyHwong-gk](https://github.com/JoeyHwong-gk) |
+| | Joint inference | [jaypume](https://github.com/jaypume) | |
+| | Incremental training | [jaypume](https://github.com/jaypume) | |
+| | Federated learning | [jaypume](https://github.com/jaypume) | |
+| | Lifelong learning | [MooreZheng](https://github.com/MooreZheng) | [luosiqi](https://github.com/luosiqi)|
+
diff --git a/examples/lifelong-learning-robo-rfnet.Dockerfile b/examples/lifelong-learning-robo-rfnet.Dockerfile
index 0a7ffaad..1d784dae 100644
--- a/examples/lifelong-learning-robo-rfnet.Dockerfile
+++ b/examples/lifelong-learning-robo-rfnet.Dockerfile
@@ -10,10 +10,10 @@ COPY ./lib/requirements.dev.txt /home
# install requirements of sedna lib
RUN pip install -r /home/requirements.txt
RUN pip install -r /home/requirements.dev.txt
-RUN pip install joblib
+RUN pip install joblib~=1.2.0
RUN pip install pandas
RUN pip install scikit-learn~=0.23.2
-RUN pip install torchvision
+RUN pip install torchvision~=0.13.0
RUN pip install Pillow
RUN pip install tqdm
RUN pip install minio
@@ -22,13 +22,14 @@ RUN pip install matplotlib
RUN pip install opencv-python
RUN pip install python-multipart
RUN pip install tensorboard
+RUN pip install watchdog
ENV PYTHONPATH "/home/lib"
WORKDIR /home/work
COPY ./lib /home/lib
-COPY examples/lifelong_learning/robot_dog_delivery /home/work/
-WORKDIR /home/work/robot_dog_delivery/RFNet
+COPY ./examples/lifelong_learning/robot_dog_delivery /home/work/
+WORKDIR /home/work/RFNet
ENTRYPOINT ["python"]
\ No newline at end of file
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/basemodel.py b/examples/lifelong_learning/robot_dog_delivery/RFNet/basemodel.py
index a1fb9fbb..4db22181 100644
--- a/examples/lifelong_learning/robot_dog_delivery/RFNet/basemodel.py
+++ b/examples/lifelong_learning/robot_dog_delivery/RFNet/basemodel.py
@@ -4,7 +4,6 @@ import cv2
import numpy as np
import torch
from PIL import Image
-
from torchvision import transforms
from torch.utils.data import DataLoader
from torchvision import transforms
@@ -101,10 +100,10 @@ class Model:
self.val_args.weight_path = kwargs.get("weight_path")
self.validator = Validator(self.val_args)
- self.ramp_val_args = EvaluationArguments()
- self.ramp_val_args.weight_path = "/home/lsq/RFNet/models/ramp_train1_200.pth"
- self.ramp_val_args.merge = False
- self.validator_ramp = Validator(self.ramp_val_args)
+ # self.ramp_val_args = EvaluationArguments()
+ # self.ramp_val_args.weight_path = "/home/lsq/RFNet/models/ramp_train1_200.pth"
+ # self.ramp_val_args.merge = False
+ # self.validator_ramp = Validator(self.ramp_val_args)
def train(self, train_data, valid_data=None, **kwargs):
self.trainer = Trainer(self.train_args, train_data=train_data)
@@ -139,49 +138,50 @@ class Model:
self.train_model_url = train_model_url
return self.train_model_url
- # def predict(self, data, **kwargs):
- # prediction = kwargs.get('prediction')
- # if isinstance(data[0], dict):
- # data = preprocess_frames(data)
- #
- # if isinstance(data[0], np.ndarray):
- # data = preprocess_url(data)
- #
- # self.validator.test_loader = DataLoader(
- # data,
- # batch_size=self.val_args.test_batch_size,
- # shuffle=False,
- # pin_memory=False)
- # if not prediction:
- # return self.validator.validate()
- # else:
- # return prediction
-
def predict(self, data, **kwargs):
- if isinstance(data[0], np.ndarray):
- data = preprocess_url(data)
-
+ prediction = kwargs.get('prediction')
if isinstance(data[0], dict):
data = preprocess_frames(data)
-
+
+ if isinstance(data[0], np.ndarray):
+ data = preprocess_url(data)
+
self.validator.test_loader = DataLoader(
data,
batch_size=self.val_args.test_batch_size,
shuffle=False,
pin_memory=False)
- # TODO: predict ramp using specific model
- self.validator_ramp.test_loader = DataLoader(
- data,
- batch_size=self.val_args.test_batch_size,
- shuffle=False,
- pin_memory=False)
-
- prediction = kwargs.get('prediction')
if not prediction:
- return (self.validator.validate(), self.validator_ramp.validate())
+ return self.validator.validate()
else:
- return (prediction, self.validator_ramp.validate())
+ return prediction
+
+ # def predict(self, data, **kwargs):
+ # if isinstance(data[0], np.ndarray):
+ # data = preprocess_url(data)
+
+ # if isinstance(data[0], dict):
+ # data = preprocess_frames(data)
+
+ # self.validator.test_loader = DataLoader(
+ # data,
+ # batch_size=self.val_args.test_batch_size,
+ # shuffle=False,
+ # pin_memory=False)
+
+ # # TODO: predict ramp using specific model
+ # self.validator_ramp.test_loader = DataLoader(
+ # data,
+ # batch_size=self.val_args.test_batch_size,
+ # shuffle=False,
+ # pin_memory=False)
+
+ # prediction = kwargs.get('prediction')
+ # if not prediction:
+ # return (self.validator.validate(), self.validator_ramp.validate())
+ # else:
+ # return (prediction, self.validator_ramp.validate())
def evaluate(self, data, **kwargs):
predictions = self.predict(data.x)
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/evaluate.py b/examples/lifelong_learning/robot_dog_delivery/RFNet/evaluate.py
index 17be55c4..dbcdeda5 100644
--- a/examples/lifelong_learning/robot_dog_delivery/RFNet/evaluate.py
+++ b/examples/lifelong_learning/robot_dog_delivery/RFNet/evaluate.py
@@ -4,7 +4,7 @@ from sedna.core.lifelong_learning import LifelongLearning
from sedna.datasources import TxtDataParse
from sedna.common.config import Context
-from accuracy import robo_accuracy
+from accuracy import accuracy
from basemodel import Model
@@ -29,23 +29,19 @@ def eval():
"method": "TaskAllocationSimple"
}
- inference_integrate = {
- "method": "InferenceIntegrateByType"
- }
-
ll_job = LifelongLearning(estimator,
task_definition=None,
task_relationship_discovery=None,
task_allocation=task_allocation,
task_remodeling=None,
- inference_integrate=inference_integrate,
+ inference_integrate=None,
task_update_decision=None,
unseen_task_allocation=None,
unseen_sample_recognition=None,
unseen_sample_re_recognition=None
)
- ll_job.evaluate(eval_data, metrics=robo_accuracy)
+ ll_job.evaluate(eval_data, metrics=accuracy)
if __name__ == '__main__':
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/predict.py b/examples/lifelong_learning/robot_dog_delivery/RFNet/predict.py
index b43627dc..f477f54e 100644
--- a/examples/lifelong_learning/robot_dog_delivery/RFNet/predict.py
+++ b/examples/lifelong_learning/robot_dog_delivery/RFNet/predict.py
@@ -1,15 +1,10 @@
import os
-
-import cv2
import time
-import numpy as np
-from PIL import Image
-import warnings
-from sedna.datasources import BaseDataSource, TxtDataParse
-from basemodel import Model, preprocess_frames
+from sedna.datasources import BaseDataSource
from sedna.core.lifelong_learning import LifelongLearning
-from sedna.common.config import Context
+
+from basemodel import Model
def preprocess(samples):
@@ -17,7 +12,6 @@ def preprocess(samples):
data.x = [samples]
return data
-
def postprocess(samples):
image_names, imgs = [], []
for sample in samples:
@@ -27,21 +21,8 @@ def postprocess(samples):
return image_names, imgs
-
-def _load_txt_dataset(dataset_url):
- # use original dataset url
- original_dataset_url = Context.get_parameters('original_dataset_url', "")
- dataset_urls = dataset_url.split()
- dataset_urls = [
- os.path.join(
- os.path.dirname(original_dataset_url),
- dataset_url) for dataset_url in dataset_urls]
- return dataset_urls[:-1], dataset_urls[-1]
-
-
-def init_ll_job(**kwargs):
+def init_ll_job():
estimator = Model(num_class=31,
- weight_path=kwargs.get('weight_path'),
save_predicted_image=True,
merge=True)
@@ -51,26 +32,7 @@ def init_ll_job(**kwargs):
unseen_task_allocation = {
"method": "UnseenTaskAllocationDefault"
}
-
- unseen_sample_recognition = {
- "method": "OodIdentification",
- "param": {
- "OOD_thresh": float(kwargs.get("OOD_thresh")),
- "backup_model": kwargs.get("OOD_backup_model"),
- "OOD_model_path": kwargs.get("OOD_model"),
- "preprocess_func": preprocess_frames,
- "base_model": Model
- }
- }
-
- # unseen_sample_recognition = {
- # "method": "SampleRegonitionRobotic"
- # }
-
- inference_integrate = {
- "method": "InferenceIntegrateByType"
- }
-
+
ll_job = LifelongLearning(
estimator,
unseen_estimator=unseen_task_processing,
@@ -78,62 +40,13 @@ def init_ll_job(**kwargs):
task_relationship_discovery=None,
task_allocation=task_allocation,
task_remodeling=None,
- inference_integrate=inference_integrate,
+ inference_integrate=None,
task_update_decision=None,
unseen_task_allocation=unseen_task_allocation,
- unseen_sample_recognition=unseen_sample_recognition,
+ unseen_sample_recognition=None,
unseen_sample_re_recognition=None)
-
return ll_job
def unseen_task_processing():
return "Warning: unseen sample detected."
-
-
-def predict():
- ll_job = init_ll_job()
-
- camera_address = Context.get_parameters('video_url')
- # use video streams for testing
- camera = cv2.VideoCapture(camera_address)
- fps = 10
- nframe = 0
- while 1:
- ret, input_yuv = camera.read()
- if not ret:
- time.sleep(5)
- camera = cv2.VideoCapture(camera_address)
- continue
-
- if nframe % fps:
- nframe += 1
- continue
-
- img_rgb = cv2.cvtColor(input_yuv, cv2.COLOR_BGR2RGB)
- nframe += 1
- if nframe % 1000 == 1: # logs every 1000 frames
- warnings.warn(f"camera is open, current frame index is {nframe}")
-
- img_rgb = cv2.resize(np.array(img_rgb), (2048, 1024),
- interpolation=cv2.INTER_CUBIC)
- img_rgb = Image.fromarray(img_rgb)
- data = {'image': img_rgb, "depth": img_rgb, "label": img_rgb}
- data = preprocess(data)
- print(postprocess)
- print("Inference results:", ll_job.inference(
- data=data, post_process=postprocess))
-
-
-def predict_batch():
- ll_job = init_ll_job()
-
- test_dataset_url = Context.get_parameters("test_dataset_url")
- test_data = TxtDataParse(data_type="test", func=_load_txt_dataset)
- test_data.parse(test_dataset_url, use_raw=False)
-
- return ll_job.inference(data=test_data)
-
-
-if __name__ == '__main__':
- print(predict())
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160.png
deleted file mode 100644
index d10fd68c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160_TrainIds.png
deleted file mode 100644
index f42d1956..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13160_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171.png
deleted file mode 100644
index b675d455..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171_TrainIds.png
deleted file mode 100644
index f6573297..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13171_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175.png
deleted file mode 100644
index 92ad57bd..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175_TrainIds.png
deleted file mode 100644
index 06541247..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13175_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177.png
deleted file mode 100644
index 70726602..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177_TrainIds.png
deleted file mode 100644
index 80f8bdb7..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13177_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179.png
deleted file mode 100644
index 3e62cb3e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179_TrainIds.png
deleted file mode 100644
index 09c7026d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13179_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183.png
deleted file mode 100644
index 824cdfec..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183_TrainIds.png
deleted file mode 100644
index cc0d0be4..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13183_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185.png
deleted file mode 100644
index e1307240..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185_TrainIds.png
deleted file mode 100644
index f2b01a8f..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13185_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191.png
deleted file mode 100644
index a52892a6..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191_TrainIds.png
deleted file mode 100644
index 15ce91e7..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13191_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193.png
deleted file mode 100644
index a7362644..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193_TrainIds.png
deleted file mode 100644
index 388a1eb6..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13193_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195.png
deleted file mode 100644
index 50857cd0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195_TrainIds.png
deleted file mode 100644
index 766ff636..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13195_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202.png
deleted file mode 100644
index 8b1a09d8..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202_TrainIds.png
deleted file mode 100644
index 5f9f5d77..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13202_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206.png
deleted file mode 100644
index 5037f822..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206_TrainIds.png
deleted file mode 100644
index 7b9fff87..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13206_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207.png
deleted file mode 100644
index 3b59ea5e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207_TrainIds.png
deleted file mode 100644
index 86020e14..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/13207_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377.png
deleted file mode 100644
index 349b98a8..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377_TrainIds.png
deleted file mode 100644
index 9b5105d3..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-14_515377_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130.png
deleted file mode 100644
index 8c2d0217..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130_TrainIds.png
deleted file mode 100644
index e12eb14e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-15_966130_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035.png
deleted file mode 100644
index 7786b19f..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035_TrainIds.png
deleted file mode 100644
index b9e6d599..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-17_489035_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094.png
deleted file mode 100644
index ffae555d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094_TrainIds.png
deleted file mode 100644
index 2524f6e5..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-19_695094_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876.png
deleted file mode 100644
index c8e6d487..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876_TrainIds.png
deleted file mode 100644
index 0b0b6c6d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-21_551876_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886.png
deleted file mode 100644
index c9bccc32..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886_TrainIds.png
deleted file mode 100644
index 050486a1..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-23_025886_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136.png
deleted file mode 100644
index 0049a874..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136_TrainIds.png
deleted file mode 100644
index 7e72d096..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-26_890136_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203.png
deleted file mode 100644
index 848ddf84..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203_TrainIds.png
deleted file mode 100644
index 73ce388a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-28_437203_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941.png
deleted file mode 100644
index 99dd0b84..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941_TrainIds.png
deleted file mode 100644
index 4f8efafe..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-31_327941_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654.png
deleted file mode 100644
index ebfdbf10..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654_TrainIds.png
deleted file mode 100644
index 4e3deeff..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-38_506654_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012.png
deleted file mode 100644
index 608c1ada..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012_TrainIds.png
deleted file mode 100644
index 4a579559..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-40_464012_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123.png
deleted file mode 100644
index 978ac02c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123_TrainIds.png
deleted file mode 100644
index 5471f84e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-53-49_070123_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212.png
deleted file mode 100644
index 911d0f8d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212_TrainIds.png
deleted file mode 100644
index b7497ab6..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-01_242212_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088.png
deleted file mode 100644
index 572d79c0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088_TrainIds.png
deleted file mode 100644
index 31e0b098..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-02_851088_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585.png
deleted file mode 100644
index 09d513d3..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585_TrainIds.png
deleted file mode 100644
index ceb07088..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-04_658585_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930.png
deleted file mode 100644
index cddff699..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930_TrainIds.png
deleted file mode 100644
index 8479de2f..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-06_224930_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829.png
deleted file mode 100644
index bdd33126..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829_TrainIds.png
deleted file mode 100644
index b300b24e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-09_567829_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738.png
deleted file mode 100644
index b3b2b80f..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738_TrainIds.png
deleted file mode 100644
index 6c36dcb2..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-15_114738_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370.png
deleted file mode 100644
index 82a24695..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370_TrainIds.png
deleted file mode 100644
index 05d45fc8..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-54-58_427370_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481.png
deleted file mode 100644
index 4273a5b1..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481_TrainIds.png
deleted file mode 100644
index b68b346b..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-06_005481_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892.png
deleted file mode 100644
index a5d1870b..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892_TrainIds.png
deleted file mode 100644
index 51e2e3bf..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-56-07_721892_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443.png
deleted file mode 100644
index c4b6a062..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443_TrainIds.png
deleted file mode 100644
index b6731b7e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-24_742443_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015.png
deleted file mode 100644
index d4eb1d03..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015_TrainIds.png
deleted file mode 100644
index 968e236e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-26_566015_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951.png
deleted file mode 100644
index 58f0afa0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951_TrainIds.png
deleted file mode 100644
index 6f0d9692..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-28_124951_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069.png
deleted file mode 100644
index 52989ba1..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069_TrainIds.png
deleted file mode 100644
index ca22a3ce..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-31_614069_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508.png
deleted file mode 100644
index 96176a73..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508_TrainIds.png
deleted file mode 100644
index 4f14978a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-33_411508_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151.png
deleted file mode 100644
index 722375f6..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151_TrainIds.png
deleted file mode 100644
index b9bd9281..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-35_197151_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777.png
deleted file mode 100644
index c8530fff..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777_TrainIds.png
deleted file mode 100644
index 837dbed0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-57-38_807777_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336.png
deleted file mode 100644
index a03fa89a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336_TrainIds.png
deleted file mode 100644
index 27e15ced..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-11_928336_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582.png
deleted file mode 100644
index f43a3b91..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582_TrainIds.png
deleted file mode 100644
index d2558b36..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-56_205582_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006.png
deleted file mode 100644
index 01159764..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006_TrainIds.png
deleted file mode 100644
index 153ce653..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-15-59-58_353006_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629.png
deleted file mode 100644
index 042d10c1..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629_TrainIds.png
deleted file mode 100644
index 67e1f50a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-00_065629_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162.png
deleted file mode 100644
index 58f50186..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162_TrainIds.png
deleted file mode 100644
index a38e3ccf..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-00-01_851162_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353.png
deleted file mode 100644
index 58276ab0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353_TrainIds.png
deleted file mode 100644
index 03b5091c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-28-25_829353_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607.png
deleted file mode 100644
index 9e7b655c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607_TrainIds.png
deleted file mode 100644
index 1a4a2a4c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-00_217607_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885.png
deleted file mode 100644
index 2c514532..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885_TrainIds.png
deleted file mode 100644
index 27f428ca..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-01_555885_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478.png
deleted file mode 100644
index d48b8d22..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478_TrainIds.png
deleted file mode 100644
index 7d11ee7d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-07_249478_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936.png
deleted file mode 100644
index a93f2fd8..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936_TrainIds.png
deleted file mode 100644
index 4e5ef53a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-18_596936_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335.png
deleted file mode 100644
index 0a0d7a0c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335_TrainIds.png
deleted file mode 100644
index 9eceb626..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-20_047335_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718.png
deleted file mode 100644
index 050fc01e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718_TrainIds.png
deleted file mode 100644
index 77255fbd..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-37_817718_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435.png
deleted file mode 100644
index ca042cb2..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435_TrainIds.png
deleted file mode 100644
index b55dd40e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-39_236435_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031.png
deleted file mode 100644
index 5c299abc..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031_TrainIds.png
deleted file mode 100644
index 00abc1f9..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-42_236031_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775.png
deleted file mode 100644
index e18536de..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775_TrainIds.png
deleted file mode 100644
index 82b24318..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-29-43_640775_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592.png
deleted file mode 100644
index 61c44af3..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592_TrainIds.png
deleted file mode 100644
index 42b6eab0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-30-39_581592_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984.png
deleted file mode 100644
index 0d4ccfbd..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984_TrainIds.png
deleted file mode 100644
index 93daf32e..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-31-27_660984_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899.png
deleted file mode 100644
index cd315a8b..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899_TrainIds.png
deleted file mode 100644
index ae82df42..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-33-14_006899_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242.png
deleted file mode 100644
index 68004639..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242_TrainIds.png
deleted file mode 100644
index 62d20914..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-31_571242_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791.png
deleted file mode 100644
index 9fc93372..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791_TrainIds.png
deleted file mode 100644
index ff5fc131..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-33_210791_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143.png
deleted file mode 100644
index 3bc3c47c..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143_TrainIds.png
deleted file mode 100644
index f58bfaaa..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-44-35_686143_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855.png
deleted file mode 100644
index aff0f7cd..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855_TrainIds.png
deleted file mode 100644
index a0fa3afa..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-20_720855_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504.png
deleted file mode 100644
index a7c85022..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504_TrainIds.png
deleted file mode 100644
index f642f5f2..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-22_214504_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094.png
deleted file mode 100644
index da3dabc0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094_TrainIds.png
deleted file mode 100644
index eb61d390..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-24_617094_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661.png
deleted file mode 100644
index 51b6ac80..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661_TrainIds.png
deleted file mode 100644
index 4a25203d..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-16-46-38_162661_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414.png
deleted file mode 100644
index b210f9ec..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414_TrainIds.png
deleted file mode 100644
index 13109272..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-15_806414_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282.png
deleted file mode 100644
index db07f5e0..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282_TrainIds.png
deleted file mode 100644
index 655ef704..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-50-19_712282_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125.png
deleted file mode 100644
index 8928fc00..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125_TrainIds.png
deleted file mode 100644
index 31972f6a..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-52-15_401125_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025.png
deleted file mode 100644
index 1d999e70..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025_TrainIds.png b/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025_TrainIds.png
deleted file mode 100644
index 03d17260..00000000
Binary files a/examples/lifelong_learning/robot_dog_delivery/RFNet/ramp/2022-09-05-17-53-12_492025_TrainIds.png and /dev/null differ
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/robo_infer_service.py b/examples/lifelong_learning/robot_dog_delivery/RFNet/robo_infer_service.py
index edbf7b5c..64bed515 100644
--- a/examples/lifelong_learning/robot_dog_delivery/RFNet/robo_infer_service.py
+++ b/examples/lifelong_learning/robot_dog_delivery/RFNet/robo_infer_service.py
@@ -28,6 +28,7 @@ from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse
from sedna.common.utils import get_host_ip
from sedna.common.config import BaseConfig
+from sedna.common.config import Context
from predict import init_ll_job, preprocess
from ramp_postprocess import get_ramp
@@ -125,12 +126,7 @@ class InferenceServer(BaseServer): # pylint: disable=too-many-arguments
http_port=http_port,
workers=workers)
- params = {"OOD_backup_model": "/home/lsq/RFNet/models/epoch35.pth",
- "OOD_model": "/home/lsq/RFNet/models/lr_model35.model",
- "OOD_thresh": 0.45
- }
- params = dict(params)
- self.ll_job = init_ll_job(**params)
+ self.ll_job = init_ll_job()
self.inference_image_dir = os.environ.get("IMAGE_TOPIC_URL", os.path.join(
BaseConfig.data_path_prefix, "inference_images"))
@@ -177,7 +173,6 @@ class InferenceServer(BaseServer): # pylint: disable=too-many-arguments
self.index_frame = self.index_frame + 1
- # img_rgb = cv2.resize(np.array(self.image), (2048, 1024), interpolation=cv2.INTER_CUBIC)
img_rgb = Image.fromarray(np.array(self.image))
if depth:
depth_contents = await depth.read()
@@ -194,7 +189,7 @@ class InferenceServer(BaseServer): # pylint: disable=too-many-arguments
print("preprocess time:", end_time1 - start_time)
end_time2 = time.time()
- results, is_unseen_task, _ = self.ll_job.inference(predict_data)
+ prediction, is_unseen_task, _ = self.ll_job.inference(predict_data)
end_time3 = time.time()
print("inference time: ", end_time3 - end_time2)
if is_unseen_task:
@@ -211,24 +206,21 @@ class InferenceServer(BaseServer): # pylint: disable=too-many-arguments
"code": 0
}
- curb_results, ramp_results = results
-
- # self.model.validator.test_loader = DataLoader(
- # predict_data.x,
- # batch_size=self.model.val_args.test_batch_size,
- # shuffle=False,
- # pin_memory=True)
- # results = self.model.validator.validate()
+ # curb_results, ramp_results = results
img_rgb = cv2.resize(np.array(self.image),
(2048, 1024), interpolation=cv2.INTER_CUBIC)
img_rgb = Image.fromarray(np.array(img_rgb))
- results = post_process(curb_results)
+
+ results = post_process(prediction)
curr, future = get_curb(results["result"]["box"], img_rgb)
results["result"]["curr"] = curr
results["result"]["future"] = future
results["result"]["box"] = None
- results["result"]["ramp"] = get_ramp(ramp_results[0].tolist(), img_rgb)
+ if Context.get_parameters("robo_skill") == "ramp_detection":
+ results["result"]["ramp"] = get_ramp(prediction[0].tolist(), img_rgb)
+ else:
+ results["result"]["ramp"] = "no_ramp"
end_time4 = time.time()
print("total time:", end_time4 - start_time)
diff --git a/examples/lifelong_learning/robot_dog_delivery/RFNet/train.py b/examples/lifelong_learning/robot_dog_delivery/RFNet/train.py
index 468d45dd..26e352f7 100644
--- a/examples/lifelong_learning/robot_dog_delivery/RFNet/train.py
+++ b/examples/lifelong_learning/robot_dog_delivery/RFNet/train.py
@@ -1,4 +1,16 @@
import os
+<<<<<<< HEAD
+=======
+os.environ["TRAIN_DATASET_URL"] = "/home/lsq/RFNet/data_index/train.txt"
+os.environ["OUTPUT_URL"] = "s3://kubeedge/sedna-robo/kb/"
+# os.environ["CLOUD_KB_INDEX"] = "s3://kubeedge/sedna-robo/kb/index.pkl"
+os.environ["HAS_COMPLETED_INITIAL_TRAINING"] = "false"
+os.environ["KB_SERVER"] = "http://0.0.0.0:9020"
+
+os.environ["S3_ENDPOINT_URL"] = "https://obs.cn-north-1.myhuaweicloud.com"
+os.environ["SECRET_ACCESS_KEY"] = "OYPxi4uD9k5E90z0Od3Ug99symbJZ0AfyB4oveQc"
+os.environ["ACCESS_KEY_ID"] = "EMPTKHQUGPO2CDUFD2YR"
+>>>>>>> open-source
from sedna.core.lifelong_learning import LifelongLearning
from sedna.common.config import Context, BaseConfig
diff --git a/lib/requirements.dev.txt b/lib/requirements.dev.txt
index 96ccce44..db7fb5b4 100644
--- a/lib/requirements.dev.txt
+++ b/lib/requirements.dev.txt
@@ -1,5 +1,5 @@
# federated_learning
-plato-learn~=0.26 # Apache-2.0
+plato-learn # Apache-2.0
# lifelong_learning
scikit-learn~=0.24.1 # BSD
# multi_edge_inference
diff --git a/lib/requirements.txt b/lib/requirements.txt
index b6b9ddfe..aaefd9f0 100644
--- a/lib/requirements.txt
+++ b/lib/requirements.txt
@@ -2,7 +2,7 @@ numpy>=1.13.3 # BSD
colorlog~=4.7.2 # MIT
websockets~=9.1 # BSD
requests>=2.24.0 # Apache-2.0
-PyYAML~=5.4.1 # MIT
+PyYAML # MIT
setuptools~=54.2.0
fastapi~=0.68.1 # MIT
pydantic>=1.8.1 # MIT
@@ -11,4 +11,5 @@ joblib~=1.0.1 # BSD
pandas~=1.1.5 # BSD
six~=1.15.0 # MIT
minio~=7.0.3 # Apache-2.0
-uvicorn~=0.14.0 # BSD
\ No newline at end of file
+uvicorn~=0.14.0 # BSD
+pycocotools
\ No newline at end of file
diff --git a/lib/sedna/algorithms/knowledge_management/task_evaluation/__init__.py b/lib/sedna/algorithms/knowledge_management/task_evaluation/__init__.py
deleted file mode 100644
index 61d5b5cd..00000000
--- a/lib/sedna/algorithms/knowledge_management/task_evaluation/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2021 The KubeEdge Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from . import task_evaluation
\ No newline at end of file
diff --git a/lib/sedna/algorithms/knowledge_management/task_evaluation/task_evaluation.py b/lib/sedna/algorithms/knowledge_management/task_evaluation/task_evaluation.py
deleted file mode 100644
index a3eb02cc..00000000
--- a/lib/sedna/algorithms/knowledge_management/task_evaluation/task_evaluation.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from sedna.common.config import Context
-from sedna.common.log import LOGGER
-from sedna.common.class_factory import ClassType, ClassFactory
-
-__all__ = ('TaskEvaluationDefault', )
-
-
-@ClassFactory.register(ClassType.KM)
-class TaskEvaluationDefault:
- """
- Evaluated the performance of each seen task and filter seen tasks
- based on defined rules.
-
- Parameters
- ----------
- estimator: Instance
- An instance with the high-level API that greatly simplifies
- machine learning programming. Estimators encapsulate training,
- evaluation, prediction, and exporting for your model.
- """
-
- def __init__(self, **kwargs):
- self.log = LOGGER
-
- def __call__(self, tasks_detail, **kwargs):
- """
- Parameters
- ----------
- tasks_detail: List[Task]
- output of module task_update_decision, consisting of results of evaluation.
- metrics : function / str
- Metrics to assess performance on the task by given prediction.
- metrics_param : Dict
- parameter for metrics function.
- kwargs: Dict
- parameters for `estimator` evaluate.
-
- Returns
- -------
- drop_task: List[str]
- names of the tasks which will not to be deployed to the edge.
- """
-
- self.model_filter_operator = Context.get_parameters("operator", ">")
- self.model_threshold = float(
- Context.get_parameters(
- "model_threshold", 0.1))
-
- drop_tasks = []
-
- operator_map = {
- ">": lambda x, y: x > y,
- "<": lambda x, y: x < y,
- "=": lambda x, y: x == y,
- ">=": lambda x, y: x >= y,
- "<=": lambda x, y: x <= y,
- }
- if self.model_filter_operator not in operator_map:
- self.log.warn(
- f"operator {self.model_filter_operator} use to "
- f"compare is not allow, set to <"
- )
- self.model_filter_operator = "<"
- operator_func = operator_map[self.model_filter_operator]
-
- for detail in tasks_detail:
- scores = detail.scores
- entry = detail.entry
- self.log.info(f"{entry} scores: {scores}")
- if any(map(lambda x: operator_func(float(x),
- self.model_threshold),
- scores.values())):
- self.log.warn(
- f"{entry} will not be deploy because all "
- f"scores {self.model_filter_operator} {self.model_threshold}")
- drop_tasks.append(entry)
- continue
- drop_task = ",".join(drop_tasks)
-
- return drop_task
diff --git a/lib/sedna/algorithms/seen_task_learning/__init__.py b/lib/sedna/algorithms/seen_task_learning/__init__.py
index 3e0d18ac..2ffe68f2 100644
--- a/lib/sedna/algorithms/seen_task_learning/__init__.py
+++ b/lib/sedna/algorithms/seen_task_learning/__init__.py
@@ -14,13 +14,13 @@
# train
from . import task_definition
-from . import task_relation_discover
+from . import task_relation_discovery
# inference
from . import task_remodeling
from . import task_allocation
# result integrate
-from . import inference_integrate
+from . import inference_integration
from .seen_task_learning import SeenTaskLearning
diff --git a/lib/sedna/algorithms/seen_task_learning/inference_integrate/__init__.py b/lib/sedna/algorithms/seen_task_learning/inference_integration/__init__.py
similarity index 100%
rename from lib/sedna/algorithms/seen_task_learning/inference_integrate/__init__.py
rename to lib/sedna/algorithms/seen_task_learning/inference_integration/__init__.py
diff --git a/lib/sedna/algorithms/seen_task_learning/inference_integrate/inference_integrate.py b/lib/sedna/algorithms/seen_task_learning/inference_integration/inference_integrate.py
similarity index 100%
rename from lib/sedna/algorithms/seen_task_learning/inference_integrate/inference_integrate.py
rename to lib/sedna/algorithms/seen_task_learning/inference_integration/inference_integrate.py
diff --git a/lib/sedna/algorithms/seen_task_learning/inference_integrate/inference_integrate_by_type.py b/lib/sedna/algorithms/seen_task_learning/inference_integration/inference_integrate_by_type.py
similarity index 100%
rename from lib/sedna/algorithms/seen_task_learning/inference_integrate/inference_integrate_by_type.py
rename to lib/sedna/algorithms/seen_task_learning/inference_integration/inference_integrate_by_type.py
diff --git a/lib/sedna/algorithms/seen_task_learning/seen_task_learning.py b/lib/sedna/algorithms/seen_task_learning/seen_task_learning.py
index b9ee0d50..06ae2be8 100644
--- a/lib/sedna/algorithms/seen_task_learning/seen_task_learning.py
+++ b/lib/sedna/algorithms/seen_task_learning/seen_task_learning.py
@@ -377,14 +377,14 @@ class SeenTaskLearning:
feedback = {}
for i, task in enumerate(task_groups):
- LOGGER.info(f"MTL Train start {i} : {task.entry}")
+ LOGGER.info(f"MTL update start {i} : {task.entry}")
for _task in task.tasks:
model_obj = set_backend(estimator=self.base_model)
model_obj.load(_task.model)
- res = model_obj.train(train_data=task.samples)
+ model_obj.train(train_data=task.samples)
model_path = model_obj.save(model_name=f"{task.entry}.model")
model = Model(index=i, entry=task.entry,
- model=model_path, result=res)
+ model=model_path, result={})
break
model.meta_attr = [t.meta_attr for t in task.tasks]
@@ -411,7 +411,7 @@ class SeenTaskLearning:
task index file path, default self.task_index_url.
"""
if not task_index:
- raise Exception("Task index does not exist.")
+ raise Exception("Task index does not exist!")
if isinstance(task_index, str):
task_index = FileOps.load(task_index)
@@ -458,6 +458,11 @@ class SeenTaskLearning:
if post_process:
callback = ClassFactory.get_cls(ClassType.CALLBACK, post_process)()
+ res = kwargs.get("prediction")
+ tasks = kwargs.get("tasks")
+ if res and tasks:
+ return res, tasks
+
tasks = []
for inx, df in enumerate(samples):
m = models[inx]
diff --git a/lib/sedna/algorithms/seen_task_learning/task_definition/task_definition_simple.py b/lib/sedna/algorithms/seen_task_learning/task_definition/task_definition_simple.py
index a45e9546..d11691ef 100644
--- a/lib/sedna/algorithms/seen_task_learning/task_definition/task_definition_simple.py
+++ b/lib/sedna/algorithms/seen_task_learning/task_definition/task_definition_simple.py
@@ -8,7 +8,7 @@ from ..artifact import Task
@ClassFactory.register(ClassType.STP)
class TaskDefinitionSimple:
"""
- Dividing datasets based on the their origins.
+ Dividing datasets based on the their original sites.
Parameters
----------
diff --git a/lib/sedna/algorithms/seen_task_learning/task_relation_discover/__init__.py b/lib/sedna/algorithms/seen_task_learning/task_relation_discover/__init__.py
deleted file mode 100644
index 229b9584..00000000
--- a/lib/sedna/algorithms/seen_task_learning/task_relation_discover/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-
-from . import task_relation_discover
-
diff --git a/lib/sedna/algorithms/seen_task_learning/task_relation_discovery/__init__.py b/lib/sedna/algorithms/seen_task_learning/task_relation_discovery/__init__.py
new file mode 100644
index 00000000..9fd02dba
--- /dev/null
+++ b/lib/sedna/algorithms/seen_task_learning/task_relation_discovery/__init__.py
@@ -0,0 +1,3 @@
+
+from . import task_relation_discovery
+
diff --git a/lib/sedna/algorithms/seen_task_learning/task_relation_discover/task_relation_discover.py b/lib/sedna/algorithms/seen_task_learning/task_relation_discovery/task_relation_discovery.py
similarity index 100%
rename from lib/sedna/algorithms/seen_task_learning/task_relation_discover/task_relation_discover.py
rename to lib/sedna/algorithms/seen_task_learning/task_relation_discovery/task_relation_discovery.py
diff --git a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/__init__.py b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/__init__.py
index 9f435076..35f782a4 100644
--- a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/__init__.py
+++ b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/__init__.py
@@ -13,6 +13,4 @@
# limitations under the License.
from . import unseen_sample_recognition
-from . import unseen_sample_recognition_robotic
-from . import ood_identification
from . import unseen_sample_detection
\ No newline at end of file
diff --git a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/ood_identification.py b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/ood_identification.py
deleted file mode 100644
index 9bfc8bd6..00000000
--- a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/ood_identification.py
+++ /dev/null
@@ -1,151 +0,0 @@
-from typing import Tuple
-import time
-
-import torch
-import numpy as np
-from torch.utils.data import DataLoader
-import torchvision
-from PIL import Image
-
-from sedna.backend import set_backend
-from sedna.common.file_ops import FileOps
-from sedna.datasources import BaseDataSource
-from sedna.common.class_factory import ClassFactory, ClassType
-
-__all__ = ('OodIdentification',)
-
-
-@ClassFactory.register(ClassType.UTD, alias="OodIdentification")
-class OodIdentification:
- """
- Corresponding to `OodIdentification`
-
- Parameters
- ----------
- task_extractor : Dict
- used to match target tasks
- origins: List[Metadata]
- metadata is usually a class feature
- label with a finite values.
- """
-
- def __init__(self, task_index, **kwargs):
- print(task_index)
- if isinstance(task_index, str) and FileOps.exists(task_index):
- self.task_index = FileOps.load(task_index)
- else:
- self.task_index = task_index
-
- estimator = kwargs.get("base_model")()
- self.estimator = set_backend(estimator)
-
- self.backup_model = kwargs.get('backup_model')
- if not self.backup_model:
- self.seen_task_groups = self.task_index.get("seen_task").get("task_groups")
- self.seen_model = [task.model for task in self.seen_task_groups][0]
- self.estimator.load(self.seen_model.model)
- else:
- self.estimator.load(self.backup_model)
-
- self.OOD_thresh = float(kwargs.get("OOD_thresh"))
- self.OOD_model_path = kwargs.get("OOD_model_path")
- self.ood_model = FileOps.load(self.OOD_model_path)
- self.preprocess_func = kwargs.get("preprocess_func")
-
- def __call__(self, samples: BaseDataSource, **
- kwargs) -> Tuple[BaseDataSource, BaseDataSource]:
- '''
- Parameters
- ----------
- samples : BaseDataSource
- inference samples
-
- Returns
- -------
- seen_task_samples: BaseDataSource
- unseen_task_samples: BaseDataSource
- '''
-
- data = samples.x
- data = self.preprocess_func(data)
-
- self.estimator.estimator.validator.test_loader = DataLoader(
- data,
- batch_size=len(data),
- shuffle=False,
- pin_memory=True)
- self.seg_model = self.estimator.estimator.validator.model
- self.data_loader = self.estimator.estimator.validator.test_loader
-
- seen_task_samples = BaseDataSource(data_type=samples.data_type)
- unseen_task_samples = BaseDataSource(data_type=samples.data_type)
- OoD_list = []
- InD_list = []
-
- input = None
- predictions = []
- self.seg_model.eval()
- for i, (sample, image_name) in enumerate(self.data_loader):
- image = sample['image'].cuda()
- with torch.no_grad():
- output = self.seg_model(image)
-
- torch.cuda.synchronize()
-
- pred = output.data.cpu().numpy()
- pred = np.argmax(pred, axis=1)
-
- maxLogit = torch.max(output, 1)[0].unsqueeze(1)
- maxLogit = self.batch_min_max(maxLogit)
-
- softmaxDistance = self.get_softmaxDistance(output).unsqueeze(1)
- maxLogit, softmaxDistance = maxLogit.mean(
- 1, keepdim=True), softmaxDistance.mean(
- 1, keepdim=True)
- origin_shape = maxLogit.shape
- maxLogit, softmaxDistance = maxLogit.flatten(), softmaxDistance.flatten()
-
- effec_shape = maxLogit.shape[0]
- if input == 'maxLogit':
- temp_x = maxLogit.reshape(effec_shape, 1)
- elif input == 'softmaxDistance':
- temp_x = softmaxDistance.reshape(effec_shape, 1)
- else:
- temp_x = torch.cat([maxLogit.reshape(
- effec_shape, 1), softmaxDistance.reshape(effec_shape, 1)], dim=1)
-
- OOD_pred = self.ood_model.predict(temp_x.cpu().numpy())
- OOD_pred_show = OOD_pred + 1
- OOD_pred_show = OOD_pred_show.reshape(origin_shape)
- maxLogit = maxLogit.reshape(origin_shape)
-
- for j in range(maxLogit.shape[0]):
- OOD_score = (OOD_pred_show[j] == 1).sum(
- ) / (OOD_pred_show[j] != 0).sum()
- print('OOD_score:', OOD_score)
- if OOD_score > self.OOD_thresh:
- OoD_list.append(samples.x[0])
- else:
- InD_list.append(samples.x[0])
- predictions.append(pred)
-
- seen_task_samples.x = InD_list
- unseen_task_samples.x = OoD_list
- return seen_task_samples, unseen_task_samples, predictions
-
- def batch_min_max(self, img):
- max_value = torch.amax(img, [1, 2, 3]).unsqueeze(dim=1)
- min_value = torch.amin(img, [1, 2, 3]).unsqueeze(dim=1)
-
- [b, n, h, w] = img.shape
- img1 = img.reshape(b, -1)
- img2 = (img1 - min_value) / (max_value - min_value)
- img2 = img2.reshape([b, n, h, w])
- return img2
-
- def get_softmaxDistance(self, logits):
- seg_softmax_out = torch.nn.Softmax(dim=1)(logits.detach())
- distance, _ = torch.topk(seg_softmax_out, 2, dim=1)
- max_softmaxLogit = distance[:, 0, :, :]
- max2nd_softmaxLogit = distance[:, 1, :, :]
- return max_softmaxLogit - max2nd_softmaxLogit
diff --git a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_detection.py b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_detection.py
index 32c5d4f6..b42d0b32 100644
--- a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_detection.py
+++ b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_detection.py
@@ -20,7 +20,6 @@ class UnseenSampleDetection(threading.Thread):
task_index: str or dict
knowledge base index which includes indexes of tasks, samples and etc.
'''
- # MODEL_MANIPULATION_SEM = threading.Semaphore(1)
def __init__(self, edge_knowledge_management, **kwargs):
self.get_environ_varia()
diff --git a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition.py b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition.py
index 7ce6a3ab..6959287b 100644
--- a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition.py
+++ b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition.py
@@ -50,55 +50,10 @@ class SampleRegonitionDefault:
else:
seen_task_samples.x = samples.x
unseen_task_samples.x = []
- return seen_task_samples, unseen_task_samples
+ return seen_task_samples, unseen_task_samples, None, None
sample_num = int(len(samples.x) / 2)
seen_task_samples.x = samples.x[:sample_num]
unseen_task_samples.x = samples.x[sample_num:]
- return seen_task_samples, unseen_task_samples
-
-@ClassFactory.register(ClassType.UTD)
-class SampleRegonitionByRFNet:
- '''
- Divide inference samples into seen samples and unseen samples by confidence.
-
- Parameters
- ----------
- task_index: str or dict
- knowledge base index which includes indexes of tasks, samples and etc.
- '''
-
- def __init__(self, task_index, **kwargs):
- if isinstance(task_index, str) and FileOps.exists(task_index):
- self.task_index = FileOps.load(task_index)
- else:
- self.task_index = task_index
-
- self.validator = kwargs.get("validator")
-
- def __call__(self, samples: BaseDataSource, **
- kwargs) -> Tuple[BaseDataSource, BaseDataSource]:
- '''
- Parameters
- ----------
- samples : BaseDataSource
- inference samples
-
- Returns
- -------
- seen_task_samples: BaseDataSource
- unseen_task_samples: BaseDataSource
- '''
- from torch.utils.data import DataLoader
-
- self.validator.test_loader = DataLoader(
- samples.x, batch_size=1, shuffle=False)
-
- seen_task_samples = BaseDataSource(data_type=samples.data_type)
- unseen_task_samples = BaseDataSource(data_type=samples.data_type)
-
- seen_task_samples.x, unseen_task_samples.x = self.validator.task_divide()
-
- return seen_task_samples, unseen_task_samples
-
+ return seen_task_samples, unseen_task_samples, None, None
\ No newline at end of file
diff --git a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition_robotic.py b/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition_robotic.py
deleted file mode 100644
index c3afb538..00000000
--- a/lib/sedna/algorithms/unseen_task_detection/unseen_sample_recognition/unseen_sample_recognition_robotic.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from typing import Tuple
-
-from sedna.datasources import BaseDataSource
-from sedna.common.class_factory import ClassFactory, ClassType
-
-__all__ = ('SampleRegonitionRobotic')
-
-@ClassFactory.register(ClassType.UTD)
-class SampleRegonitionRobotic:
- '''
- Divide inference samples into seen samples and unseen samples
-
- Parameters
- ----------
- task_index: str or dict
- knowledge base index which includes indexes of tasks, samples and etc.
- '''
-
- def __init__(self, task_index, **kwargs):
- pass
-
- def __call__(self, samples: BaseDataSource) -> Tuple[BaseDataSource, BaseDataSource]:
- '''
- Parameters
- ----------
- samples : BaseDataSource
- inference samples
-
- Returns
- -------
- seen_task_samples: BaseDataSource
- unseen_task_samples: BaseDataSource
- '''
- seen_task_samples = BaseDataSource(data_type=samples.data_type)
- seen_task_samples.x = samples.x
- unseen_task_samples = BaseDataSource(data_type=samples.data_type)
- # unseen_task_samples.x = samples.x
-
- return seen_task_samples, unseen_task_samples, None
\ No newline at end of file
diff --git a/lib/sedna/backend/base.py b/lib/sedna/backend/base.py
index 45975bb6..1395e66b 100644
--- a/lib/sedna/backend/base.py
+++ b/lib/sedna/backend/base.py
@@ -61,6 +61,15 @@ class BackendBase:
varkw = self.parse_kwargs(fit_method, **kwargs)
return fit_method(*args, **varkw)
+ def update(self, *args, **kwargs):
+ """Update model."""
+ if callable(self.estimator):
+ varkw = self.parse_kwargs(self.estimator, **kwargs)
+ self.estimator = self.estimator(**varkw)
+ fit_method = getattr(self.estimator, "fit", self.estimator.update)
+ varkw = self.parse_kwargs(fit_method, **kwargs)
+ return fit_method(*args, **varkw)
+
def predict(self, *args, **kwargs):
"""Inference model."""
varkw = self.parse_kwargs(self.estimator.predict, **kwargs)
diff --git a/lib/sedna/algorithms/knowledge_management/__init__.py b/lib/sedna/core/lifelong_learning/knowledge_management/__init__.py
similarity index 92%
rename from lib/sedna/algorithms/knowledge_management/__init__.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/__init__.py
index 97b4ef87..8521bfb0 100644
--- a/lib/sedna/algorithms/knowledge_management/__init__.py
+++ b/lib/sedna/core/lifelong_learning/knowledge_management/__init__.py
@@ -15,5 +15,4 @@
from .base_knowledge_management import BaseKnowledgeManagement
from .cloud_knowledge_management import CloudKnowledgeManagement
from .edge_knowledge_management import EdgeKnowledgeManagement
-from . import task_update_decision
-from . import task_evaluation
\ No newline at end of file
+from . import task_update_decision
\ No newline at end of file
diff --git a/lib/sedna/algorithms/knowledge_management/base_knowledge_management.py b/lib/sedna/core/lifelong_learning/knowledge_management/base_knowledge_management.py
similarity index 92%
rename from lib/sedna/algorithms/knowledge_management/base_knowledge_management.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/base_knowledge_management.py
index c8c16d1d..022d81a0 100644
--- a/lib/sedna/algorithms/knowledge_management/base_knowledge_management.py
+++ b/lib/sedna/core/lifelong_learning/knowledge_management/base_knowledge_management.py
@@ -19,7 +19,7 @@ class BaseKnowledgeManagement:
self.task_group_key = KBResourceConstant.TASK_GROUPS.value
self.extractor_key = KBResourceConstant.EXTRACTOR.value
- self.kb_server = KBClient(kbserver=self.config.ll_kb_server)
+ self.kb_client = KBClient(kbserver=self.config.ll_kb_server)
def update_kb(self, task_index):
raise NotImplementedError
diff --git a/lib/sedna/algorithms/knowledge_management/cloud_knowledge_management.py b/lib/sedna/core/lifelong_learning/knowledge_management/cloud_knowledge_management.py
similarity index 70%
rename from lib/sedna/algorithms/knowledge_management/cloud_knowledge_management.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/cloud_knowledge_management.py
index 4e75660c..7c71ac93 100644
--- a/lib/sedna/algorithms/knowledge_management/cloud_knowledge_management.py
+++ b/lib/sedna/core/lifelong_learning/knowledge_management/cloud_knowledge_management.py
@@ -4,6 +4,7 @@ import tempfile
from sedna.common.class_factory import ClassType, ClassFactory
from sedna.common.file_ops import FileOps
+from sedna.common.config import Context
from sedna.common.constant import KBResourceConstant
from .base_knowledge_management import BaseKnowledgeManagement
@@ -31,11 +32,6 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
self.cloud_output_url, config["task_index"])
self.local_task_index_url = KBResourceConstant.KB_INDEX_NAME.value
- task_evaluation = kwargs.get("task_evaluation") or {}
- self.task_evaluation = task_evaluation.get(
- "method", "TaskEvaluationDefault")
- self.task_evaluation_param = task_evaluation.get("param", {})
-
def update_kb(self, task_index):
if isinstance(task_index, str):
task_index = FileOps.load(task_index)
@@ -63,7 +59,7 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
fd, name = tempfile.mkstemp()
FileOps.dump(task_info, name)
- index_file = self.kb_server.update_db(name)
+ index_file = self.kb_client.update_db(name)
if not index_file:
self.log.error("KB update Fail !")
index_file = name
@@ -90,7 +86,7 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
model_file = model_upload_key[model_file]
try:
- model = self.kb_server.upload_file(save_model)
+ model = self.kb_client.upload_file(save_model)
self.log.info(
f"Upload task model to {model} successfully."
)
@@ -114,7 +110,7 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
task_group.samples.save(sample_dir)
try:
- sample_dir = self.kb_server.upload_file(sample_dir)
+ sample_dir = self.kb_client.upload_file(sample_dir)
self.log.info(f"Upload task sample to {sample_dir} successfully.")
except Exception as err:
self.log.error(
@@ -127,7 +123,7 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
)
extractor = FileOps.dump(extractor, save_extractor)
try:
- extractor = self.kb_server.upload_file(extractor)
+ extractor = self.kb_client.upload_file(extractor)
self.log.info(f"Upload task extractor to {extractor} successfully.")
except Exception as err:
self.log.error(f"Upload task extractor fail: {err}")
@@ -135,6 +131,52 @@ class CloudKnowledgeManagement(BaseKnowledgeManagement):
return extractor, task_groups
def evaluate_tasks(self, tasks_detail, **kwargs):
- method_cls = ClassFactory.get_cls(
- ClassType.KM, self.task_evaluation)(**self.task_evaluation_param)
- return method_cls(tasks_detail, **kwargs)
+ """
+ Parameters
+ ----------
+ tasks_detail: List[Task]
+ output of module task_update_decision, consisting of results of evaluation.
+
+ Returns
+ -------
+ drop_task: List[str]
+ names of the tasks which will not to be deployed to the edge.
+ """
+
+ self.model_filter_operator = Context.get_parameters("operator", ">")
+ self.model_threshold = float(
+ Context.get_parameters(
+ "model_threshold", 0.1))
+
+ drop_tasks = []
+
+ operator_map = {
+ ">": lambda x, y: x > y,
+ "<": lambda x, y: x < y,
+ "=": lambda x, y: x == y,
+ ">=": lambda x, y: x >= y,
+ "<=": lambda x, y: x <= y,
+ }
+ if self.model_filter_operator not in operator_map:
+ self.log.warn(
+ f"operator {self.model_filter_operator} use to "
+ f"compare is not allow, set to <"
+ )
+ self.model_filter_operator = "<"
+ operator_func = operator_map[self.model_filter_operator]
+
+ for detail in tasks_detail:
+ scores = detail.scores
+ entry = detail.entry
+ self.log.info(f"{entry} scores: {scores}")
+ if any(map(lambda x: operator_func(float(x),
+ self.model_threshold),
+ scores.values())):
+ self.log.warn(
+ f"{entry} will not be deploy because all "
+ f"scores {self.model_filter_operator} {self.model_threshold}")
+ drop_tasks.append(entry)
+ continue
+ drop_task = ",".join(drop_tasks)
+
+ return drop_task
diff --git a/lib/sedna/algorithms/knowledge_management/edge_knowledge_management.py b/lib/sedna/core/lifelong_learning/knowledge_management/edge_knowledge_management.py
similarity index 92%
rename from lib/sedna/algorithms/knowledge_management/edge_knowledge_management.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/edge_knowledge_management.py
index 2ed0f02c..5591139e 100644
--- a/lib/sedna/algorithms/knowledge_management/edge_knowledge_management.py
+++ b/lib/sedna/core/lifelong_learning/knowledge_management/edge_knowledge_management.py
@@ -43,6 +43,7 @@ class EdgeKnowledgeManagement(BaseKnowledgeManagement):
self.edge_output_url, "unseen_samples")
os.makedirs(self.local_unseen_save_url, exist_ok=True)
+ self.pinned_service_start = False
self.unseen_sample_observer = None
def update_kb(self, task_index):
@@ -137,14 +138,15 @@ class EdgeKnowledgeManagement(BaseKnowledgeManagement):
LOGGER.info(f"Unseen sample uploading completes.")
- def start_observer(self):
+ def start_services(self):
self.unseen_sample_observer = Observer()
self.unseen_sample_observer.schedule(
UnseenSampleUploadingHandler(), self.local_unseen_save_url, True)
self.unseen_sample_observer.start()
+ ModelHotUpdateThread(self).start()
-class ModelLoadingThread(threading.Thread):
+class ModelHotUpdateThread(threading.Thread):
"""Hot task index loading with multithread support"""
MODEL_MANIPULATION_SEM = threading.Semaphore(1)
@@ -158,25 +160,26 @@ class ModelLoadingThread(threading.Thread):
if model_check_time < 1:
LOGGER.warning("Catch an abnormal value in "
"`MODEL_POLL_PERIOD_SECONDS`, fallback with 60")
- model_check_time = 60
+ model_check_time = 30
self.version = None
self.edge_knowledge_management = edge_knowledge_management
self.check_time = model_check_time
self.callback = callback
task_index = edge_knowledge_management.task_index
if FileOps.exists(task_index):
- self.version = FileOps.load(task_index).get("create_time")
+ self.version = str(FileOps.load(task_index).get("create_time"))
- super(ModelLoadingThread, self).__init__()
+ super(ModelHotUpdateThread, self).__init__()
+
+ LOGGER.info(f"Model hot update service starts.")
def run(self):
while True:
time.sleep(self.check_time)
latest_task_index = Context.get_parameters("MODEL_URLS", None)
- if not self.version:
- continue
if not latest_task_index:
continue
+
latest_task_index = FileOps.load(latest_task_index)
latest_version = str(latest_task_index.get("create_time"))
@@ -213,7 +216,10 @@ class UnseenSampleUploadingHandler(FileSystemEventHandler):
if not FileOps.is_remote(self.unseen_save_url):
os.makedirs(self.unseen_save_url, exist_ok=True)
+ LOGGER.info(f"Unseen sample uploading service starts.")
+
def on_created(self, event):
+ time.sleep(2.0)
sample_name = os.path.basename(event.src_path)
FileOps.upload(event.src_path, FileOps.join_path(
self.unseen_save_url, sample_name))
diff --git a/lib/sedna/algorithms/knowledge_management/task_update_decision/__init__.py b/lib/sedna/core/lifelong_learning/knowledge_management/task_update_decision/__init__.py
similarity index 100%
rename from lib/sedna/algorithms/knowledge_management/task_update_decision/__init__.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/task_update_decision/__init__.py
diff --git a/lib/sedna/algorithms/knowledge_management/task_update_decision/task_update_decision.py b/lib/sedna/core/lifelong_learning/knowledge_management/task_update_decision/task_update_decision.py
similarity index 87%
rename from lib/sedna/algorithms/knowledge_management/task_update_decision/task_update_decision.py
rename to lib/sedna/core/lifelong_learning/knowledge_management/task_update_decision/task_update_decision.py
index 882862cf..e03b5fa1 100644
--- a/lib/sedna/algorithms/knowledge_management/task_update_decision/task_update_decision.py
+++ b/lib/sedna/core/lifelong_learning/knowledge_management/task_update_decision/task_update_decision.py
@@ -12,25 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""
-Divide multiple tasks based on data
-
-Parameters
-----------
-samples: Train data, see `sedna.datasources.BaseDataSource` for more detail.
-
-Returns
--------
-tasks: All tasks based on training data.
-task_extractor: Model with a method to predicting target tasks
-"""
-
-import time
-
from sedna.common.file_ops import FileOps
from sedna.datasources import BaseDataSource
from sedna.common.class_factory import ClassType, ClassFactory
-from sedna.algorithms.seen_task_learning.artifact import Task
__all__ = ('UpdateStrategyDefault', )
@@ -38,7 +22,8 @@ __all__ = ('UpdateStrategyDefault', )
@ClassFactory.register(ClassType.KM)
class UpdateStrategyDefault:
"""
- Decide processing strategies for different tasks
+ Decide processing strategies for different tasks with labeled unseen samples.
+ Turn unseen samples to be seen.
Parameters
----------
diff --git a/lib/sedna/core/lifelong_learning/lifelong_learning.py b/lib/sedna/core/lifelong_learning/lifelong_learning.py
index a43f83db..e9bf6125 100644
--- a/lib/sedna/core/lifelong_learning/lifelong_learning.py
+++ b/lib/sedna/core/lifelong_learning/lifelong_learning.py
@@ -17,18 +17,16 @@ import os
from sedna.core.base import JobBase
from sedna.common.file_ops import FileOps
-from sedna.common.constant import K8sResourceKind, K8sResourceKindStatus
-from sedna.common.constant import KBResourceConstant
+from sedna.common.constant import K8sResourceKind, K8sResourceKindStatus, KBResourceConstant
from sedna.common.config import Context
-from sedna.datasources import BaseDataSource
from sedna.common.class_factory import ClassType, ClassFactory
from sedna.algorithms.seen_task_learning.seen_task_learning import SeenTaskLearning
from sedna.algorithms.unseen_task_processing import UnseenTaskProcessing
from sedna.algorithms.unseen_task_detection.unseen_sample_recognition.unseen_sample_detection import UnseenSampleDetection
from sedna.service.client import KBClient
-from sedna.algorithms.knowledge_management.cloud_knowledge_management \
+from sedna.core.lifelong_learning.knowledge_management.cloud_knowledge_management \
import CloudKnowledgeManagement
-from sedna.algorithms.knowledge_management.edge_knowledge_management \
+from sedna.core.lifelong_learning.knowledge_management.edge_knowledge_management \
import EdgeKnowledgeManagement
@@ -290,13 +288,6 @@ class LifelongLearning(JobBase):
seen_samples, unseen_samples = unseen_sample_re_recognition(train_data)
- # TODO: retrain temporarily
- # historical_data = self._fetch_historical_data(index_url)
- # seen_samples.x = np.concatenate(
- # (historical_data.x, seen_samples.x, unseen_samples.x), axis=0)
- # seen_samples.y = np.concatenate(
- # (historical_data.y, seen_samples.y, unseen_samples.y), axis=0)
-
seen_samples.x = np.concatenate(
(seen_samples.x, unseen_samples.x), axis=0)
seen_samples.y = np.concatenate(
@@ -321,8 +312,7 @@ class LifelongLearning(JobBase):
"unseen_task": unseen_task_index,
}
- task_index = self.cloud_knowledge_management.update_kb(
- task_index, self.kb_server)
+ task_index = self.cloud_knowledge_management.update_kb(task_index)
task_info_res = self.cloud_knowledge_management.seen_estimator.model_info(
task_index,
@@ -406,7 +396,7 @@ class LifelongLearning(JobBase):
self._start_inference_service()
self.start_inference_service = True
- seen_samples, unseen_samples, prediction = self.recognize_unseen_samples(data, **kwargs)
+ seen_samples, unseen_samples, prediction, allocated_seen_tasks = self.recognize_unseen_samples(data, **kwargs)
if unseen_samples.x is not None and unseen_samples.num_examples() > 0:
self.edge_knowledge_management.log.info(
f"Unseen task is detected.")
@@ -423,12 +413,13 @@ class LifelongLearning(JobBase):
image_names = list(map(lambda x: x[0], unseen_samples.x))
is_unseen_task = dict(zip(image_names, [True] * unseen_samples.num_examples()))
- if seen_samples.x:
+ if seen_samples.x is not None and seen_samples.num_examples() > 0:
seen_res, seen_tasks = self.edge_knowledge_management.seen_estimator.predict(
data=seen_samples, post_process=post_process,
task_index=self.edge_knowledge_management.task_index,
task_type="seen_task",
prediction=prediction,
+ tasks=allocated_seen_tasks,
**kwargs
)
res = np.concatenate((res, seen_res)) if res else seen_res
@@ -470,8 +461,8 @@ class LifelongLearning(JobBase):
estimator=self.edge_knowledge_management.seen_estimator.estimator.base_model,
**self.unseen_sample_recognition_param)
- if not self.edge_knowledge_management.unseen_sample_observer:
- self.edge_knowledge_management.start_observer()
+ if not self.edge_knowledge_management.pinned_service_start:
+ self.edge_knowledge_management.start_services()
def _task_evaluation(self, data, **kwargs):
res, tasks_detail = self.cloud_knowledge_management.seen_estimator.evaluate(
@@ -488,23 +479,4 @@ class LifelongLearning(JobBase):
else:
self.log.info(f"Deploy {index_file} to the edge.")
- return res, index_file
-
- def _fetch_historical_data(self, task_index):
- if isinstance(task_index, str):
- task_index = FileOps.load(task_index)
-
- samples = BaseDataSource(data_type="train")
-
- for task_group in task_index["seen_task"]["task_groups"]:
- if isinstance(task_group.samples, BaseDataSource):
- _samples = task_group.samples
- else:
- _samples = FileOps.load(task_group.samples.data_url)
-
- samples.x = _samples.x if samples.x is None else np.concatenate(
- (samples.x, _samples.x), axis=0)
- samples.y = _samples.y if samples.y is None else np.concatenate(
- (samples.y, _samples.y), axis=0)
-
- return samples
+ return res, index_file
\ No newline at end of file
diff --git a/lib/sedna/service/index.pkl b/lib/sedna/service/index.pkl
new file mode 100644
index 00000000..ad6a00ff
Binary files /dev/null and b/lib/sedna/service/index.pkl differ
diff --git a/lib/sedna/service/lifelong_kb.sqlite3 b/lib/sedna/service/lifelong_kb.sqlite3
new file mode 100644
index 00000000..40c01bd3
Binary files /dev/null and b/lib/sedna/service/lifelong_kb.sqlite3 differ