You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm thinking about switching my experiment management system over to keepsake, but I had a few questions about code management that I didn't see explained in the docs.
The docs say that you can checkout a set of results and it will update the working directory to be at the code state where checkpoint was called. How exactly does this work? Is it like Git in that it stores diffs? Or is it going to store an entire copy of my repo every time I run an experiment? What happens if I check out some results but then want to revert my working directory back to where it was before I checked out those results (say, I had implemented some function).
Basically, I'm currently using Git to manage all my experiment results by storing the corresponding commit hash and ensuring experiments can't run without being committed. I think what you all are doing is really cool and I like the idea of the keepsake data storage model (and the ability to filter by results!). But, I'm wondering whether I lose anything in terms of source code management by switching from a git-based solution to a keepsake one.
Thanks a lot for your help! I'm happy to update the docs with a PR based on whatever comes of this discussion :D
The text was updated successfully, but these errors were encountered:
Hi @fishbotics, good question! The documentation could probably be more clear around this.
Keepsake doesn't store diffs like Git, for each experiment and checkpoint it stores the whole files and directories that you specify with the path= argument. When you check out a checkpoint, it first copies all the experiment files, and then it copies the checkpoint files on top of that.
So I wouldn't stop using GitHub to manage my repository, do pull requests, etc. Keepsake is more like a "time machine" that lets you jump to any point during the training process. I've also been in situations where I've started training something, changed the code on my local machine without committing, then once the model has finished training I don't know what code produced the model. In that case Keepsake is almost like a backup system that makes sure you never lose the code that produced the model weights.
Hi Keepsake Team,
I'm thinking about switching my experiment management system over to keepsake, but I had a few questions about code management that I didn't see explained in the docs.
The docs say that you can checkout a set of results and it will update the working directory to be at the code state where checkpoint was called. How exactly does this work? Is it like Git in that it stores diffs? Or is it going to store an entire copy of my repo every time I run an experiment? What happens if I check out some results but then want to revert my working directory back to where it was before I checked out those results (say, I had implemented some function).
Basically, I'm currently using Git to manage all my experiment results by storing the corresponding commit hash and ensuring experiments can't run without being committed. I think what you all are doing is really cool and I like the idea of the keepsake data storage model (and the ability to filter by results!). But, I'm wondering whether I lose anything in terms of source code management by switching from a git-based solution to a keepsake one.
Thanks a lot for your help! I'm happy to update the docs with a PR based on whatever comes of this discussion :D
The text was updated successfully, but these errors were encountered: