Comments (7)
Thanks for considering this feature request! We went with something fairly similar to your suggestion. We created a metric wrapper to be able to attach a name to any metric.
I'm happy to provide a fresh perspective on your refactoring around the metrics. I'm also curious to know what you have in mind regarding checkpointing.
from composer.
We can send out a RFC when we're ready for it :)
from composer.
@mvpatel2000 is it a feature you would consider or it's considered an unnecessary breaking change? Happy to look into implementing it.
from composer.
@antoinebrl apologies for delay, I missed this issue. Let me pass it around internally. I'll get back to you soon!
from composer.
@antoinebrl do you have a use case in mind that would require this breaking change?
from composer.
Hi @mvpatel2000 !
We are doing multi-head training where we have, for example 2 classification heads that we train jointly. The metrics associated to the heads have the same type (ie torchmetrics.Precision
). To assign the correct classification head to the correct metric object we would have to rely on a strong order assumption or an identifier to map it correctly. We propose here to use the metric name to do that matching.
from composer.
Got it, thanks! That's very helpful.
The whole way we do metrics seems unideal... I have a rough design in mind that I need to flesh out which would revamp this. It is one of the major points I wish to revamp (along with checkpointing) ahead of 1.0. Unfortunately, this would take a bit of time since it is breaking.
As a short-term unblock, one trick you can do is attach name to metric
as an attribute. It's pretty hacky and not ideal, but it should enable this workload. I'm open to other suggestions as well! I'd love to have something that doesn't require a large overhaul...
from composer.
Related Issues (20)
- Add support for Pytorch 2.2.0 HOT 1
- Update packaging from <23 to <24 HOT 2
- Resuming from a monolithic FSDP checkpoint times out on multinode HOT 9
- Different device error when running evaluation_loop on "mps" device with ComposeClassifier
- The `Profiler` should upload generated traces to the logger. HOT 3
- More compression options using CLI tools
- Set `torch.utils.data.DataLoader.batch_sampler` epoch if defined HOT 2
- Allow smaller `t_max` in schedulers HOT 8
- Crash during import when signal handler cannot be set
- Memory leak due to the copy of Metric objects in Composer's trainer HOT 2
- override serialized fields when resuming from checkpoint HOT 1
- Allow default credentials for accessing GCS HOT 4
- Remote file name in `MemorySnapshot` not being formatted HOT 1
- Augment training batches with "on-the-fly" features
- Safer Checkpoint File Format HOT 1
- Streaming Dataloader with Multiple Workers causes out-of-memory error
- LookSAM Optimizer HOT 3
- Remove logic that pops labels from batch in composer/models/huggingface.py
- Composer default lr scheduler create spurious warnings when max training duration is in epochs HOT 2
- Error when using `Trainer.compile_config={}` in DDP mode HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from composer.