Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question About Checkout Logic #571

Open
fishbotics opened this issue Mar 16, 2021 · 2 comments
Open

Question About Checkout Logic #571

fishbotics opened this issue Mar 16, 2021 · 2 comments

Comments

@fishbotics
Copy link

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

@andreasjansson
Copy link
Member

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.

Feel free to join our Discord to chat more about this in real-time: https://discord.gg/QmzJApGjyE

@zeke
Copy link
Member

zeke commented Mar 15, 2022

Hi @fishbotics 👋🏼

The Keepsake project is no longer actively maintained. If you're interested in helping maintain it, please let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants