Lack of data in tutorials creates friction

Some more feedback. Not having the sample data in the expected places creates friction in completing the exercises. It’s not too hard to copy the files to their expected location, or change the paths in the provided code to point to their actual location, but I think it would turn off a lot of beginners, especially those not very familiar with the command line/filesystem. Given that it’s all the same data (as far as I can tell) it might be better to provide the sample data in a folder at the “root” of the downloaded package and have the various sample notebooks point to that folder, for example.

To be specific, I’ve just started Chapter 5, have opened the notebook Machine_Learning_by_Tutorials_v0/05-digging-deeper-into-turi/starter/notebook/DiggingDeeper_starter.ipynb, run the second cell, and got the error

---------------------------------------------------------------------------
ToolkitError                              Traceback (most recent call last)
<ipython-input-5-c08d5cc7bd00> in <module>()
----> 1 train_data = tc.image_analysis.load_images("snacks/train", with_path=True)
      2 len(train_data)

~/miniconda3/envs/turienv/lib/python3.6/site-packages/turicreate/toolkits/image_analysis/image_analysis.py in load_images(url, format, with_path, recursive, ignore_failure, random_order)
     58     from ...util import _make_internal_url
     59     return _extensions.load_images(url, format, with_path,
---> 60                                      recursive, ignore_failure, random_order)
     61 
     62 

~/miniconda3/envs/turienv/lib/python3.6/site-packages/turicreate/extensions.py in <lambda>(*args, **kwargs)
    168 
    169 def _make_injected_function(fn, arguments):
--> 170     return lambda *args, **kwargs: _run_toolkit_function(fn, arguments, args, kwargs)
    171 
    172 def _class_instance_from_name(class_name, *arg, **kwarg):

~/miniconda3/envs/turienv/lib/python3.6/site-packages/turicreate/extensions.py in _run_toolkit_function(fnname, arguments, args, kwargs)
    157     if not ret[0]:
    158         if len(ret[1]) > 0:
--> 159             raise _ToolkitError(ret[1])
    160         else:
    161             raise _ToolkitError("Toolkit failed with unknown error")

ToolkitError: snacks/train not found.

Because indeed doing ll snacks/ from the notebook directory reveals the data isn’t there:

$ ll snacks/
total 5024
drwxr-xr-x@ 4 thomm  staff   128B  8 Jan 16:44 .
drwxr-xr-x@ 9 thomm  staff   288B 16 Jan 10:04 ..
-rwxr-xr-x@ 1 thomm  staff   2.4M 25 Oct 05:28 credits.csv
-rw-r--r--@ 1 thomm  staff   331B 25 Oct 05:28 readme.md

I’ve resolved this by simply copying the snacks folder from the previous exercise into the current directory, but it’s still a step that probably shouldn’t be required.

Cheers & thanks again

@audrey @hollance Do you have any feedback about this? Thank you - much appreciated! :]

thanks @thomm! I think there are a few (dis)continuity glitches that we’ll be sure to fix for the next update.