aporia-ai / mlnotify

🔔 No need to keep checking your training - just one import line and you'll know the second it's done.
https://mlnotify.aporia.com
MIT License
344 stars 19 forks source link

Runtime estimation #41

Open yonikremer opened 3 years ago

yonikremer commented 3 years ago

When I'm training a model using keras, I always calculate the runtime by hand (Using the estimated time per epoch) It would be great if when I use mlnotify the estimated runtime will appear too (next to the time since the start of training) You can do that using the ETA provided by keras times the number of epochs.

SnirShechter commented 3 years ago

@yoni12345678 Hey, it sounds great, however I'm not sure it fits all scenarios since not all ml libraries have this feature and the manual API certainly can't get it.

Do you think we should implement a best-effort estimation?

yonikremer commented 3 years ago

In my experience with TensorFlow, the time estimation is pretty accurate, so I think best effort estimation should give accurate results.

100rab-S commented 1 year ago

Would love to have this feature. Another use case example:

Let's say we need to run a long for loop for some purpose. Other than just knowing it is completed, it is also good to know the expected ETA. The 'tqdm' library does provide the second functionality of displaying the ETA but does not notice as we have in MLNotify. So a merger of these functionalities will be great.

Yeah, there is no ML happening here, but will be useful for a general Python programmer too... If possible it can be included in the manual API.

One API usage example would be

a_long_list = [...]
mlnotify.start(total=len(a_long_list))

for i in a_long_list:
    # do something time consuming
     mlnotify.update(1)   # update by 1 after every iteration 

mlnotify.end()

If there is already some library supporting such a feature, please do let me know.