# Part 2 Lesson 8 wiki

(Evgeny Sushko) #278

I was wondering why we use “predict_batch” function for making predictions in case of largest item classifier but don’t use it in other cases. As far as I can see this code:

``````x,y = next(iter(md.val_dl))
predict_batch(learn.model, x)
``````

and this code:

``````x,y = next(iter(md.val_dl))
learn.model(VV(x))
``````

give the same output. Why do we use “predict_batch” then?

(Jeremy Howard) #279

Just because it ensures that `eval` and `reset` are called first. I don’t use it in some of the lessons since I want to teach how to do it manually.

(Cedric Chee) #280

All the videos are “Unlisted” in Youtube. Now that part 2 is officially launched, is this intended?

(Mariam) #281

The links in the time line are broken.

(Jeremy Howard) #282

Many thanks - fixed now.

(Jon Gold) #283

re: learning greek letters - my comprehension skyrocketed when I picked up Mathematical Notation: A Guide for Engineers and Scientists and could finally search for symbols online / vocalize them etc etc. highly recommend it.

(Mariam) #284

I got it dinning table too. the highest two probabilities were dining table ( 5.9479e-01) and chair (3.5335e-01).

(Jeremy Howard) #285

Seconded! Really great book.

(Gene Sobolev) #286

I tried multiple times, but couldn’t make out the name of the debugger one of the students (Elsa I think) mentioned in the video https://youtu.be/Z0ssNAbe81M?t=6551. Did anyone manage to capture the name of the debugger he uses?

(Junxian) #287

I think he said something like:
ipython.core.debugger import tracer

Is that what you are looking for?

(Gene Sobolev) #288

Indeed, Tracer takes color as a parameter so it makes sense in the context of what’s mentioned in the video. Thank you!

(Naresh) #289

I guess accessing images from internet to train a model would be very slow as we add up network latency. I would prefer to download it. Further, u may have to train test for multiple times. Accessing the data from internet in that case can be would not be recommendable. Furthermore, if there is a network issue during the training, the process will fail abruptly I believe. We may have to handle those cases.

(Naresh) #290

I am having issue while running ImageClassifier.from_csv.
This is the line of codes I have

PATH=‘data/pascal-localisation’
JPEGS=‘JPEGImages’
CSV=‘data/pascal-localisation/tmp/lrg.csv’
tfms = tfms_from_model(f_model, sz, aug_tfms=transforms_side_on, crop_type=CropType.NO)
md = ImageClassifierData.from_csv(PATH, JPEGS, CSV, tfms=tfms, bs=bs)

## With error stack trace:

IndexError Traceback (most recent call last)
in ()
3 CSV=’…/data/pascal-localisation/tmp/lrg.csv’
4 tfms = tfms_from_model(f_model, sz, aug_tfms=transforms_side_on, crop_type=CropType.NO)
----> 5 md = ImageClassifierData.from_csv(PATH, JPEGS, CSV, tfms=tfms, bs=bs)

~/anaconda3/lib/python3.6/site-packages/fastai/dataset.py in from_csv(cls, path, folder, csv_fname, bs, tfms, val_idxs, suffix, test_name, continuous, skip_header, num_workers)
351 “”"
352 fnames,y,classes = csv_source(folder, csv_fname, skip_header, suffix, continuous=continuous)
–> 353 ((val_fnames,trn_fnames),(val_y,trn_y)) = split_by_idx(val_idxs, np.array(fnames), y)
354
355 test_fnames = read_dir(path, test_name) if test_name else None

~/anaconda3/lib/python3.6/site-packages/fastai/dataset.py in split_by_idx(idxs, *a)
364 def split_by_idx(idxs, *a):

IndexError: arrays used as indices must be of integer (or boolean) type

I felt that its due to the wrong folder location. I ran the code from github pointing to the correct folder, it worked. Later, I moved my ipynb to the same folder and ran one more time. It ran. But When I run from the actual location I am intending to run, it fails with the above error. I am truck with this error for a couple of days. Any help would help.

(Peter Correia) #291

Looking into the VOC Documentation I received the impression the bbox was represented as such:
[x_min, y_min, x_max, y_max]
[155, 96, 196, 174] <- car bbox

How did you know that the last two items in the bounding box list represented width and height?

#292

Hi Vijay,

Followed these exact steps and I’m still not able to use symbols. I extracted to C:\Program Files\Microsoft VS Code\bin which is in my PATH when I run `set` command at the terminal and I still can’t search for something like `open_img`. Any thoughts?

(Vijay Kumar) #293

Hope you have selected the interpreter, with fastai environment (environment.yml) available with downloaded code.
Once interpreter set you are able to navigate.

(Pierre Guillou) #294

[ EDIT ] : it works The problem came from the selection of the python interpreter (`ctrl+shift-p` : `Python: Select Interpreter`).
The default path to my fastai environement is well setup in my user parameters in Visual Studio Code (`"python.pythonPath": "C:\\Users\\username\\Anaconda3\\envs\\fastai\\python.exe",`) but I have to select it (`ctrl+shift-p`) after each restart of Visual Studio Code. Any advice to avoid that ?

Hi @Vijay and @Patrick, I can not get “Go to symbol (`ctr+t`)” works in Visual Studio Code.

• I’m using Windows 10 and Visual Studio Code is working.
• I did open my fastai folder and select the python interpreter of my fastai virtual environment (I’m using an NVIDIA GPU on Windows).
• I downloaded ctags (universal ctags and I tried as well exuberant ctags) and unzip it in my fastai folder in a folder called ctags : `C:\Users\username\fastai\ctags\ctags.exe`
• I updated my Windows PATH with the path to `ctags.exe`
• I updated my user parameters in Visual Studio Code with : `"python.workspaceSymbols.ctagsPath": "C:\\Users\\username\\fastai\\ctags\\ctags.exe",`

What else can I do ? Thanks.

(Pierre Guillou) #295

Hi, my notes on lesson 8. Hope it can help new fastai fellows

(Shubham Gupta) #296

Hey guys, check out my new blog on Introduction to Object Detection. Hope you enjoy it and feel free to comment in case of any queries or suggestions.

(Ramon) #297

Hi,

I’m trying to extend the bounding boxes in lesson 8 by ‘rotated bounding boxes’. I’m doing this by passing in four coordinates top-right(x,y), bottom-right(x,y, bottom-left(x,y) and top-left(x,y).

By using the same code, only the first four values get passed through the different datasets and loaders:

tfms = tfms_from_model(f_model, sz, crop_type=CropType.NO, tfm_y=tfm_y, aug_tfms=augs)
md = ImageClassifierData.from_csv(PATH, JPEGS, BB_CSV, tfms=tfms, continuous=True, bs=4)
x,y=next(iter(md.aug_dl))
bbox = to_np(y[1])
print(bbox)
[194. 368. 217. 400. 0. 0. 0. 0.]

How come? I’m trying to understand but I can’t figure it out. Hints are very appreciated, thanks in advance!