ProgLearn
ProgLearn copied to clipboard
Scene Segmentation with SynF
#39 My issue is about adjusting Proglearn so we can do scene segmentation after flattening the images.
Reproducing code example:
def load_images(flatten_imgs):
if flatten_imgs:
X = np.array([cv2.imread(imgpath).flatten() for imgpath in imgpaths])
Y = np.array([cv2.imread(lblpath).flatten() for lblpath in lblpaths])
else:
X = np.array([cv2.imread(imgpath) for imgpath in imgpaths])
Y = np.array([cv2.imread(lblpath) for lblpath in lblpaths])
return X,Y
flatten_imgs = True
X, Y = load_images(flatten_imgs)
from random_class_functions import Odif_experiment
slot_num = int(5000 / num_points_per_task)
slot_fold = range(slot_num)
shift_fold = range(1, shift_num + 1, 1)
# run the Odif model
n_trees = [tree_num]
iterable = product(n_trees, shift_fold, slot_fold)
df_results = Parallel(n_jobs=-1, verbose=0)(
delayed(Odif_experiment)(
X, Y, ntree, shift, slot, num_points_per_task, acorn=12345
)
for ntree, shift, slot in iterable
)
Error message
AttributeError Traceback (most recent call last)
<ipython-input-8-097c14639e16> in <module>
10 n_trees = [tree_num]
11 iterable = product(n_trees, shift_fold, slot_fold)
---> 12 df_results = Parallel(n_jobs=-1, verbose=0)(
13 delayed(Odif_experiment)(
14 X, Y, ntree, shift, slot, num_points_per_task, acorn=12345
~\AppData\Local\Programs\Python\Python39\lib\site-packages\joblib\parallel.py in __call__(self, iterable)
1052
1053 with self._backend.retrieval_context():
-> 1054 self.retrieve()
1055 # Make sure that we get a last message telling us we are done
1056 elapsed_time = time.time() - self._start_time
~\AppData\Local\Programs\Python\Python39\lib\site-packages\joblib\parallel.py in retrieve(self)
931 try:
932 if getattr(self._backend, 'supports_timeout', False):
--> 933 self._output.extend(job.get(timeout=self.timeout))
934 else:
935 self._output.extend(job.get())
~\AppData\Local\Programs\Python\Python39\lib\site-packages\joblib\_parallel_backends.py in wrap_future_result(future, timeout)
540 AsyncResults.get from multiprocessing."""
541 try:
--> 542 return future.result(timeout=timeout)
543 except CfTimeoutError as e:
544 raise TimeoutError from e
~\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py in result(self, timeout)
443 raise CancelledError()
444 elif self._state == FINISHED:
--> 445 return self.__get_result()
446 else:
447 raise TimeoutError()
~\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py in __get_result(self)
388 if self._exception:
389 try:
--> 390 raise self._exception
391 finally:
392 # Break a reference cycle with the exception in self._exception
AttributeError: 'bool' object has no attribute 'any'
Version information
- OS: [e.g. macOS] Windows
- Python Version [e.g. 3.7.3]: Python 3.7.3
- Package Version [e.g. 0.0.1]: Proglearn 0.0.5
@amyvanee did you try fitting proglearn for one task only? I would not try it with other people's code. Please try to train it on only one task using add_task first. Let's not use parallel for now.
@amyvanee Which version of proglearn are you using?
@PSSF23 Sorry about that, I am using Proglearn 0.0.5
@jdey4 I tried going to the basics more and initializing a LifelongClassification Forest, but I got an error.
% Declare the progressive learner model (L2F)
learner = LifelongClassificationForest()
% add the task
learner.add_task(
flat_x,
flat_y,
task_id=0
)
And the output,
TypeError Traceback (most recent call last)
TypeError: only size-1 arrays can be converted to Python scalars
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last)
<ipython-input-18-74e8ef13550e> in <module>
3
4 # add the task
----> 5 learner.add_task(
6 flat_x,
7 flat_y,
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\forest.py in add_task(self, X, y, task_id, n_estimators, tree_construction_proportion, kappa, max_depth)
122 max_depth = self.default_max_depth
123
--> 124 X, y = check_X_y(X, y)
125 return self.pl_.add_task(
126 X,
~\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, estimator)
954 raise ValueError("y cannot be None")
955
--> 956 X = check_array(
957 X,
958 accept_sparse=accept_sparse,
~\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
736 array = array.astype(dtype, casting="unsafe", copy=False)
737 else:
--> 738 array = np.asarray(array, order=order, dtype=dtype)
739 except ComplexWarning as complex_warning:
740 raise ValueError(
~\AppData\Local\Programs\Python\Python39\lib\site-packages\numpy\core\_asarray.py in asarray(a, dtype, order)
81
82 """
---> 83 return array(a, dtype, copy=False, order=order)
84
85
ValueError: setting an array element with a sequence.
I double checked, and below are shapes,
- flat_x.shape = (64,)
- flat_y.shape = (64,)
- flat_x[0].shape = (10890000,)
- flat_y[0].shape = (9000000,)
- data_x[0].shape = (2200, 1650, 3)
- data_y[0].shape = (2000, 1500, 3)
If I try putting in any of the other data, I get an error that the input should be 2D.
Also, it is weird that the shape of data_y[0] is not the same as for data_x[0]?
Thank you for your help!
@amyvanee always use the latest version, which is 0.0.6 now. And what are data_x & flat_x & ... ? We have no idea what they are, but the y seems too large. What are the labels of these images?
@PSSF23
-
Thank you! I tried updating to Proglearn 0.0.6, using
pip install proglearn --upgradebut I got an error.error: Could not find module 'hdf5.dll' (or one of its dependencies). Try using the full path with constructor syntax. Loading library to get version: hdf5.dll -
The images are from the ADE20K consistency set
-
There are 64 images, each 2D with RGB so the image arrays are 3D. X is the original image, and Y is the image where each pixel is annotated by the object it is. (I am not sure why, but the array dimensions do not match up between X and Y)
-
data_x and data_y are the original images and the annotated image. flat_x and flat_y are the flattened version of these images, since we thought flattening them to be 1D would help with insertion into proglearn.
Thank you for your help!
- The error is unrelated to
proglearn. I have never seen it before. - Your fitting process doesn't make sense. Based on your descriptions, each
yimage is different so there's no valid classification.
BTW are you working on #39 ? Why didn't you comment on it?
@PSSF23
- Thank you, I will try seeing if I can fix it another way!
- Yes that was my concern since I know proglearn takes in the true labels as one label per image (so a 2D image where the output is, for example, "dog") -- would I need to make modifications to the proglearn code to do this? I know scikit actually has this feature with random forests, and it seems to work. I still need to quantify how accurate it is.
- Yes, I am working on issue #39! Sorry I should have commented there.
@amyvanee No problem. As the example in your link, sklearn RF must rely on skimage to process the images. You can definitely follow it and try it on proglearn. Odif (LifelongClassificationForest) would replace the RandomForestClassifier in that example.
Comment on #39 so it could be assigned to you. Are there other students sharing the issue?
@PSSF23 Thank you, I will try that! Yes, I am working with Narayani Wagle (@nhwagle) and Kevin Rao (@KhelmholtzR) We made a separate GitHub repo with some of our progress
@amyvanee @nhwagle @KhelmholtzR you should all comment on #39 and create your independent sub-issue here. So we can keep track of what you are working on.
@PSSF23 Thank you for your help!
I tried using LifelongClassificationForest, but when I tried importing it, I got the following error. Have you seen this before?
---------------------------------------------------------------------------
AlreadyExistsError Traceback (most recent call last)
<ipython-input-13-38d6cdc00b7f> in <module>
----> 1 from proglearn.forest import LifelongClassificationForest
2
3 flatten_imgs = False
4 data_x, data_y = load_images(flatten_imgs)
5
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\__init__.py in <module>
----> 1 from .forest import *
2 from .network import *
3
4 __version__ = "0.0.5"
5 __all__ = [
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\forest.py in <module>
4 """
5 from .progressive_learner import ClassificationProgressiveLearner
----> 6 from .transformers import TreeClassificationTransformer
7 from .voters import TreeClassificationVoter
8 from .deciders import SimpleArgmaxAverage
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\transformers.py in <module>
11
12
---> 13 class NeuralClassificationTransformer(BaseTransformer):
14 """
15 A class used to transform data from a category to a specialized representation.
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\transformers.py in NeuralClassificationTransformer()
60 fit_kwargs={
61 "epochs": 100,
---> 62 "callbacks": [keras.callbacks.EarlyStopping(patience=5, monitor="val_acc")],
63 "verbose": False,
64 "validation_split": 0.33,
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\util\lazy_loader.py in __getattr__(self, item)
60
61 def __getattr__(self, item):
---> 62 module = self._load()
63 return getattr(module, item)
64
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\util\lazy_loader.py in _load(self)
43 """Load the module and insert it into the parent's globals."""
44 # Import the target module and insert it into the parent's namespace
---> 45 module = importlib.import_module(self.__name__)
46 self._parent_module_globals[self._local_name] = module
47
~\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py in import_module(name, package)
125 break
126 level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)
128
129
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\__init__.py in <module>
23
24 # See b/110718070#comment18 for more details about this import.
---> 25 from keras import models
26
27 from keras.engine.input_layer import Input
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\models.py in <module>
18 import tensorflow.compat.v2 as tf
19 from keras import backend
---> 20 from keras import metrics as metrics_module
21 from keras import optimizer_v1
22 from keras.engine import functional
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\metrics.py in <module>
24
25 import numpy as np
---> 26 from keras import activations
27 from keras import backend
28 from keras.engine import base_layer
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\activations.py in <module>
18
19 from keras import backend
---> 20 from keras.layers import advanced_activations
21 from keras.utils.generic_utils import deserialize_keras_object
22 from keras.utils.generic_utils import serialize_keras_object
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\layers\__init__.py in <module>
21
22 # Generic layers.
---> 23 from keras.engine.input_layer import Input
24 from keras.engine.input_layer import InputLayer
25 from keras.engine.input_spec import InputSpec
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\input_layer.py in <module>
19 from keras import backend
20 from keras.distribute import distributed_training_utils
---> 21 from keras.engine import base_layer
22 from keras.engine import keras_tensor
23 from keras.engine import node as node_module
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\base_layer.py in <module>
41 from keras.engine import node as node_module
42 from keras.mixed_precision import autocast_variable
---> 43 from keras.mixed_precision import loss_scale_optimizer
44 from keras.mixed_precision import policy
45 from keras.saving.saved_model import layer_serialization
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\mixed_precision\loss_scale_optimizer.py in <module>
16
17 from keras import backend
---> 18 from keras import optimizers
19 from keras.mixed_precision import loss_scale as keras_loss_scale_module
20 from keras.optimizer_v2 import optimizer_v2
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizers.py in <module>
24 from keras.optimizer_v1 import Optimizer
25 from keras.optimizer_v1 import TFOptimizer
---> 26 from keras.optimizer_v2 import adadelta as adadelta_v2
27 from keras.optimizer_v2 import adagrad as adagrad_v2
28 from keras.optimizer_v2 import adam as adam_v2
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizer_v2\adadelta.py in <module>
20 import numpy as np
21 from keras import backend_config
---> 22 from keras.optimizer_v2 import optimizer_v2
23 from tensorflow.python.util.tf_export import keras_export
24
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizer_v2\optimizer_v2.py in <module>
34
35
---> 36 keras_optimizers_gauge = tf.__internal__.monitoring.BoolGauge(
37 "/tensorflow/api/keras/optimizers", "keras optimizer usage", "method")
38
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\monitoring.py in __init__(self, name, description, *labels)
358 *labels: The label list of the new metric.
359 """
--> 360 super(BoolGauge, self).__init__('BoolGauge', _bool_gauge_methods,
361 len(labels), name, description, *labels)
362
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\monitoring.py in __init__(self, metric_name, metric_methods, label_length, *args)
133 self._metric_name, len(self._metric_methods)))
134
--> 135 self._metric = self._metric_methods[self._label_length].create(*args)
136
137 def __del__(self):
AlreadyExistsError: Another metric with the same name already exists.
- First, code block uses ```
- Second, you are still using 0.0.5
@PSSF23 Thank you for the fix! Yeah unfortunately I am still having trouble upgrading to 0.0.5, I will focus on that then before trying out Odif. Thank you!
Cool. Having up-to-date software is always the minimum necessity for development. Some of your problems might already be solved by 0.0.6.
@PSSF23 I was able to update to Proglearn 0.0.6! However, I still get the same error?
Here is my code,
from proglearn.forest import LifelongClassificationForest
img = image_grey
training_labels = label_grey
sigma_min = 1
sigma_max = 16
features_func = partial(feature.multiscale_basic_features,
intensity=True, edges=False, texture=True,
sigma_min=sigma_min, sigma_max=sigma_max,
multichannel=True)
features = features_func(img)
clf = LifelongClassificationForest(n_estimators=50, n_jobs=-1,
max_depth=10, max_samples=0.05)
clf = future.fit_segmenter(training_labels, features, clf)
result = future.predict_segmenter(features, clf)
fig, ax = plt.subplots(1, 2, sharex=True, sharey=True, figsize=(9, 4))
ax[0].imshow(segmentation.mark_boundaries(img, result, mode='thick'))
ax[0].contour(training_labels)
ax[0].set_title('Image, mask and segmentation boundaries')
ax[1].imshow(result)
ax[1].set_title('Segmentation')
fig.tight_layout()
Here is the error
---------------------------------------------------------------------------
AlreadyExistsError Traceback (most recent call last)
<ipython-input-15-3acbe7b9e2c4> in <module>
----> 1 from proglearn.forest import LifelongClassificationForest
2
3 img = image_grey
4 training_labels = label_grey
5
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\__init__.py in <module>
----> 1 from .forest import *
2 from .network import *
3
4 __version__ = "0.0.5"
5 __all__ = [
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\forest.py in <module>
4 """
5 from .progressive_learner import ClassificationProgressiveLearner
----> 6 from .transformers import TreeClassificationTransformer
7 from .voters import TreeClassificationVoter
8 from .deciders import SimpleArgmaxAverage
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _find_and_load_unlocked(name, import_)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_unlocked(spec)
~\AppData\Local\Programs\Python\Python39\lib\importlib\_bootstrap.py in _load_backward_compatible(spec)
<frozen zipimport> in load_module(self, fullname)
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\transformers.py in <module>
11
12
---> 13 class NeuralClassificationTransformer(BaseTransformer):
14 """
15 A class used to transform data from a category to a specialized representation.
~\AppData\Local\Programs\Python\Python39\lib\site-packages\proglearn-0.0.5-py3.9.egg\proglearn\transformers.py in NeuralClassificationTransformer()
60 fit_kwargs={
61 "epochs": 100,
---> 62 "callbacks": [keras.callbacks.EarlyStopping(patience=5, monitor="val_acc")],
63 "verbose": False,
64 "validation_split": 0.33,
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\util\lazy_loader.py in __getattr__(self, item)
60
61 def __getattr__(self, item):
---> 62 module = self._load()
63 return getattr(module, item)
64
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\util\lazy_loader.py in _load(self)
43 """Load the module and insert it into the parent's globals."""
44 # Import the target module and insert it into the parent's namespace
---> 45 module = importlib.import_module(self.__name__)
46 self._parent_module_globals[self._local_name] = module
47
~\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py in import_module(name, package)
125 break
126 level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)
128
129
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\__init__.py in <module>
23
24 # See b/110718070#comment18 for more details about this import.
---> 25 from keras import models
26
27 from keras.engine.input_layer import Input
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\models.py in <module>
18 import tensorflow.compat.v2 as tf
19 from keras import backend
---> 20 from keras import metrics as metrics_module
21 from keras import optimizer_v1
22 from keras.engine import functional
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\metrics.py in <module>
24
25 import numpy as np
---> 26 from keras import activations
27 from keras import backend
28 from keras.engine import base_layer
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\activations.py in <module>
18
19 from keras import backend
---> 20 from keras.layers import advanced_activations
21 from keras.utils.generic_utils import deserialize_keras_object
22 from keras.utils.generic_utils import serialize_keras_object
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\layers\__init__.py in <module>
21
22 # Generic layers.
---> 23 from keras.engine.input_layer import Input
24 from keras.engine.input_layer import InputLayer
25 from keras.engine.input_spec import InputSpec
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\input_layer.py in <module>
19 from keras import backend
20 from keras.distribute import distributed_training_utils
---> 21 from keras.engine import base_layer
22 from keras.engine import keras_tensor
23 from keras.engine import node as node_module
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\engine\base_layer.py in <module>
41 from keras.engine import node as node_module
42 from keras.mixed_precision import autocast_variable
---> 43 from keras.mixed_precision import loss_scale_optimizer
44 from keras.mixed_precision import policy
45 from keras.saving.saved_model import layer_serialization
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\mixed_precision\loss_scale_optimizer.py in <module>
16
17 from keras import backend
---> 18 from keras import optimizers
19 from keras.mixed_precision import loss_scale as keras_loss_scale_module
20 from keras.optimizer_v2 import optimizer_v2
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizers.py in <module>
24 from keras.optimizer_v1 import Optimizer
25 from keras.optimizer_v1 import TFOptimizer
---> 26 from keras.optimizer_v2 import adadelta as adadelta_v2
27 from keras.optimizer_v2 import adagrad as adagrad_v2
28 from keras.optimizer_v2 import adam as adam_v2
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizer_v2\adadelta.py in <module>
20 import numpy as np
21 from keras import backend_config
---> 22 from keras.optimizer_v2 import optimizer_v2
23 from tensorflow.python.util.tf_export import keras_export
24
~\AppData\Local\Programs\Python\Python39\lib\site-packages\keras\optimizer_v2\optimizer_v2.py in <module>
34
35
---> 36 keras_optimizers_gauge = tf.__internal__.monitoring.BoolGauge(
37 "/tensorflow/api/keras/optimizers", "keras optimizer usage", "method")
38
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\monitoring.py in __init__(self, name, description, *labels)
358 *labels: The label list of the new metric.
359 """
--> 360 super(BoolGauge, self).__init__('BoolGauge', _bool_gauge_methods,
361 len(labels), name, description, *labels)
362
~\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\eager\monitoring.py in __init__(self, metric_name, metric_methods, label_length, *args)
133 self._metric_name, len(self._metric_methods)))
134
--> 135 self._metric = self._metric_methods[self._label_length].create(*args)
136
137 def __del__(self):
AlreadyExistsError: Another metric with the same name already exists.
@amyvanee ~~you should use from proglearn import LifelongClassificationForest. We currently have no submodules for the package.~~ The original command is fine.
@PSSF23 Thank you! I still do seem to be getting the same error though that it already exists? I am not sure why it thinks it already exists?
@amyvanee I just realized you were still on 0.0.5 version (see error messages). You need to clean up and reboot everything to make sure you have the right version.
The command I gave works correctly on my machine.