'Lab' Notebook for DL experiments

Jeremy mentioned how important it is to have a ‘lab’ or experimental notebook. This is somewhere that you keep notes on what you tried and the results, so they are date-stamped and easily searchable.

Jeremy said he uses OneNote, but also said he keeps everything in one long document!

I’m a mac person and I haven’t looked at OneNote recently. It looks like it has evolved and there is a downloadable app for all devices. Does anyone know how searchable separate notes are? The idea of one long single document doesn’t sound like it will work for me.

I have been using Evernote and paid $5 for EverTool, which was a horrible idea because you have to copy & paste everything back and forth between your EverNote and the tool. An alternative would be Marxico, but it costs $16 per year. Or you could use Markdown Here in a browser.

I’m going to try BoostNote, which allows you to start notes as Markdown or Snippets. Also, it is open source and says it will be free forever.

Another option that looked attractive because of it’s Markdown, but cost $15/mo is Bear.

What are you all using? What are your tips for keeping good Deep Learning Experimental Notebooks?

5 Likes

Hi Deena!

I mostly use a notebook with pen and paper which is mostly in bagpack. I mostly write when up and about. Notes for mac which is a application just for typing in notes as the name says. When I don’t have an internet connection I use signal the messaging application which is free in the google playstore. I really like markdown too needless to say.

My tips for good experimental notebook would be first making sure you write down the date and when you wrote it maybe an idea you want to try and organizing them in good manner. I may use the resources above but It’s often difficult to find where I wrote my ideas especially in the notebook because it’s mixed up with bio projects as well. When I’m doing deep learning experiments i make a .txt file which I end up writing in markdown style :sweat_smile: where I record my trials for example here’s one of my entries:

Trial 3

In the next trial i want to a flip plus an flip_vert on ds_tfms part change the architecture to a deeper model resnet50 series with a learning rate slice of between 1e-3 to 1e-4. The accuracy was pumped upto > 95 that is, state-of-the-art right? I saved it as model 5. Now to serve it online and test it some more.

I hope that’s useful. I try and follow François advice too https://livebook.manning.com#!/book/deep-learning-with-python/chapter-9/point-4207-33-41-0

3 Likes

notepad, actually. Although often gvim.

2 Likes

I’ve been trying to force myself to use the markdown feature of notebooks.

I think it’s highly underrated and pretty cool for self experiments. Being a college student, I have the habit of getting worried if I don’t have a notepad nearby or if I’m not taking notes. So earlier, I’d just use pen and paper and later digitise them.

Now, I’m trying to force myself to write some notes next to code and some code next to notes in notebooks. It forces me to code too (might not be useful for all cases but for fastai-definitely is).

3 Likes

Yes that’s the most important thing I think.

3 Likes

Hi Deena! I’m new to DL, but Lab Notebooks are my lifelong friends! My first contact was in “wet” labs in chem and biology, where they made us use those little pre-bound, pre-lined notebooks you can buy in the bookstores. The key is: It is strictly chronological, record everything including notes to self, and never go back and edit. My current DL choice would be sequences of jupyter notebook files, with a date stamp (or date-time stamp) in the file name of each. Then for searching back, I would just grep the files for key strings.

2 Likes

Why not use any text editor and create your own tags as strings. As Jeremy said he just uses Ctrl-f which is just the normal search/find on most platforms. Also creating text files is another option with some tag in the name but saved into a specific directory. Now here’s a thing on Unix platforms you can do

find specific-directory-containing-note-files -name 'some-expression-of-file-name' -print | xargs grep some-search-term

Try it with fastai

cd to fastai

find . -name '*.py' -print | xargs grep 'import'

This command has served me well many many times since the 1990’s

4 Likes

I actually tried using BoostNote sometime back. Though their internal storage format (cson) is portable, one cannot easily read and modify it using other tools. I want my notes to last decades :slight_smile:

Finally settled down on using pure Markdown and editing it using Typora https://typora.io/

1 Like

Thanks @RogerS49, this is super helpful! And, if I want to find all the files that have both words ‘bowtie’ and ‘pysam’ in them, I can use the following:

find . -name *.* -print | xargs grep -l bowtie | xargs grep -l pysam

This does tell me that ‘.’ is a directory, but it still works :slight_smile:

-l suppresses normal output and instead prints the name of each input file, so that the filename can be passed as an argument to the next grep

Note that I didn’t use quotes and the code still works, but it’s probably more readable with them :wink:

I use a personal slack account for my DL experiments. I create channels for each projects and share experiment results, interesting posts, plots, new ideas to experiment etc. I can access it through my mobile too.

Well just use if you like

`find . -name ‘.’ -print | xargs grep -e bowtie -e pysam

The quotes I use as different operating systems handle the * in different ways and probably a habit from the past. When I do this I cd to a specific area on disk and in that way I don’t get buried in the files returned.

Note:

Searches on ipynb may find the character sequences you look for in images in the notebook

I’m using BoostNote also. Really like it. And you can make blog post very easy out of your notes, since they are already in .md format. If you’re adding headers (#, ## etc) you can then “ctrl+shift+t” and boostnote will add table of contents at the top of note.

cannot find BoostNote on GooglePlay store for Android. Confused. As they say on their website iOS and Android apps are available. Is there a way to install it on Android phone?

If you have a Mac, Apple Notes is an excellent tool; I use that alongside Jupyter notebooks. Linking to notebooks from Notes is good (integration would really be something); so hosting your notebooks on GitHub or your own server sounds like a good idea.

On Mac, you can use Automator to insert date/time stamps too.

Temporary Stop
We’re going to close this project for a while because the code quality is too bad and the original maintainer left this project quite ago.

1 Like

Thanks! Similar tool with iOS and Android apps is. Joplin.

SciNote ELN has a powerful search engine and is designed with a project structure, which allows you to structure data based on experiments and organize tasks into workflows within those experiments. It keeps your data safe, organized and accessible plus it’s free for personal use!