Discussion re OnlineCLScenario #1017
Replies: 2 comments 5 replies
-
Thanks for the work @HamedHemati. You caught a lot of bugs. If you can, try to add a small test for them.
This should be a parameter, with
is not possible in many OCL scenarios.
Is this a real problem? most of the times you want to eval on the entire stream. I guess we can add it, but it's low priority. Task switches can still be detected from the full stream.
This looks like a bug. The original streams should be left untouched. OCL should make a copy and change the name of the copy. |
Beta Was this translation helpful? Give feedback.
-
Hey @AntonioCarta and others! I’m implementing the |
Beta Was this translation helpful? Give feedback.
-
Hi everyone!
I've been recently working with
OnlineCLScenario
, which was recently added to Avalanche, to implement an online strategy. I have some comments/suggestions/questions on that.Lazy generator: In general, the lazy stream generator is pretty fast and I think we can say the performance issue that we previously had is solved.
Bugs: A minor bug would return the main experience instead of sub-experiences when creating a lazy stream. I've fixed it (+some other changes) in a local branch which I will push.
Attributes: I've also made the attributes accessible in train mode. This was needed for detecting task switches (for example
is_first_subexp
in model adaptation) for some online supervised classification tasks.Limitations:
Here are some limitations that I found with the current version:
OnlineCLScenario
with an existing stream, which means it takes all experiences in that stream and creates a lazy stream that cannot be sliced. The problem here is that we won't able to call thetrain
function separately for each sub-stream (belonging to each original experience). This can make eval tricky as we might want to evaluate after each "original" experience.Therefore to have something like:
We need to change
OnlineCLStream
such that it will (also) accept a list of experiences instead of a stream.OnlineCLScenario
creates a dictionary of streams by adding the prefixoriginal_
to the main train and test streams and calling the online streamtrain_stream
. This causes errors when trying to iterate through the original streams via the online scenario due to name discrepancy. We can instead call the online streamonline_train_stream
and keep the original streams with the same names.I would appreciate your comments on the current limitations (if I'm correct and not missing something).
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions