Beginner: Using Colab or Kaggle ✅

It worked now. Thank you!

hey guys!

started lesson 1 yesterday, however when i copy the notebook “is it a bird?” in kaggle or re-write it from scratch in colab, i get this error when trying to run the fourth cell:

# searching for a batman photo
urls = search_images('batman photos', max_images = 1)
urls[0]

it comes with HTTP Error 403: Forbidden raised.

however, when I change the url of the previous cell from ‘duckduckgo.com’ to ‘google.com’, i got another type of error: HTTP Error 405: Method not allowed.

and when changed from ‘google.com’ to ‘yandex.com’ (russian-based search engine) it throws another error: AttributeError: 'NoneType' object has no attribute 'group'.

is something wrong with my colab environment?

3 Likes

Hey everyone

I too am getting a HTTP Error 403: Forbidden in lesson 1. Appreciate any help on this

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlread(url, data, headers, decode, return_json, return_headers, timeout, **kwargs)
    113         with urlopen(url, data=data, headers=headers, timeout=timeout, **kwargs) as u: res,hdrs = u.read(),u.headers
    114     except HTTPError as e:
--> 115         if 400 <= e.code < 500: raise ExceptionsHTTP[e.code](e.url, e.hdrs, e.fp) from None
    116         else: raise
    117 

HTTP403ForbiddenError: HTTP Error 403: Forbidden
4 Likes

@svrmnnk @seiger I’m also getting these issues inside the Kaggle notebook itself, even when running it all vanilla, definitely not an issue with Colab.

Not exactly sure what the issue is, perhaps the notebook needs an update.

Hi Guys, I am seeing the same error and not sure what needs to be done. Can anyone help?

---------------------------------------------------------------------------
HTTP403ForbiddenError                     Traceback (most recent call last)
/tmp/ipykernel_17/2848931847.py in <module>
----> 1 urls = search_images('bird photos', max_images=1)
      2 urls[0]

/tmp/ipykernel_17/116543321.py in search_images(term, max_images)
     10     urls,data = set(),{'next':1}
     11     while len(urls)<max_images and 'next' in data:
---> 12         data = urljson(requestUrl,data=params)
     13         urls.update(L(data['results']).itemgot('image'))
     14         requestUrl = url + data['next']

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urljson(url, data, timeout)
    123 def urljson(url, data=None, timeout=None):
    124     "Retrieve `url` and decode json"
--> 125     res = urlread(url, data=data, timeout=timeout)
    126     return json.loads(res) if res else {}
    127 

/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlread(url, data, headers, decode, return_json, return_headers, timeout, **kwargs)
    113         with urlopen(url, data=data, headers=headers, timeout=timeout, **kwargs) as u: res,hdrs = u.read(),u.headers
    114     except HTTPError as e:
--> 115         if 400 <= e.code < 500: raise ExceptionsHTTP[e.code](e.url, e.hdrs, e.fp) from None
    116         else: raise
    117 

HTTP403ForbiddenError: HTTP Error 403: Forbidden

@chsheth @seiger @svrmnnk seems a solution has been found: Lesson 1 official topic - #288 by ltogniolli

1 Like

yeah, i saw it, thank you for mentioning!

Thanks @DylanWu

EDIT: Figured it out
timm has to be imported BEFORE fastbook


When using Colab, or Paperspace I cannot use timm models:

from fastai.vision.all import *
import timm

learn = vision_learner(dls, 'convnext_nano', metrics=accuracy)
learn.fine_tune(5)

gives me

/usr/local/lib/python3.7/dist-packages/fastai/vision/learner.py in create_timm_model(arch, n_out, cut, pretrained, n_in, init, custom_head, concat_pool, pool, lin_ftrs, ps, first_bn, bn_final, lin_first, y_range, **kwargs)
    181                      concat_pool=True, pool=True, lin_ftrs=None, ps=0.5, first_bn=True, bn_final=False, lin_first=False, y_range=None, **kwargs):
    182     "Create custom architecture using `arch`, `n_in` and `n_out` from the `timm` library"
--> 183     model = timm.create_model(arch, pretrained=pretrained, num_classes=0, in_chans=n_in, **kwargs)
    184     body = TimmBody(model, pretrained, None, n_in)
    185     nf = body.model.num_features

NameError: name 'timm' is not defined

I think that is not a correct conclusion.

I was already looking into this for you, so tried your solution, but still get the same error…

import timm
from fastai.vision.all import *
path = untar_data(URLs.MNIST_SAMPLE)
block = DataBlock(
        blocks=(ImageBlock, CategoryBlock),
        get_items=get_image_files,
        get_y=parent_label)
dls = block.dataloaders(path/"train")
#learn = vision_learner(dls, 'resnet18', metrics=accuracy)
learn = vision_learner(dls, 'convnext_nano', metrics=accuracy)
learn.fine_tune(1)

…so perhaps there was some other change you made?

Looking at Line 177 and researching here: https://timm.fast.ai
I found “How to use - Create a model” provides a better Minimum Reproducible Example…

import timm
model = timm.create_model('resnet18')
model = timm.create_model('convnext_nano')

image

Further down the page, “list_models()” looks useful…

import timm
models = timm.list_models()
[ s for s in models if 'convnext' in s ]

[‘convnext_base’,
‘convnext_base_384_in22ft1k’,
‘convnext_base_in22ft1k’,
‘convnext_base_in22k’,
‘convnext_large’,
‘convnext_large_384_in22ft1k’,
‘convnext_large_in22ft1k’,
‘convnext_large_in22k’,
‘convnext_nano_hnf’,
‘convnext_small’,
‘convnext_small_384_in22ft1k’,
‘convnext_small_in22ft1k’,
‘convnext_small_in22k’,
‘convnext_tiny’,
‘convnext_tiny_384_in22ft1k’,
‘convnext_tiny_hnf’,
‘convnext_tiny_hnfd’,
‘convnext_tiny_in22ft1k’,
‘convnext_tiny_in22k’,
‘convnext_xlarge_384_in22ft1k’,
‘convnext_xlarge_in22ft1k’,
‘convnext_xlarge_in22k’]

which simply doesn’t list the model you were trying to use. So maybe its the version of timm installed?
So trying the following worked for me…

!pip install -U timm
import timm
model = timm.create_model('convnext_nano')

There are competitions in kaggle that they do not give training images without folders. Supposedly someone could use panda and match image with its category using image_id and image_category in cvs file that they give. (I do not know how to do it but I will figure this out, nice challenge to get more familiar with panda). However , I like to create subfolders and put those images in their folder so it would be way easier to use fastai and fastkaggle. Does kaggle allow me to do that in kaggle ? The data is 360G so I do not want to download it locally. I have M1 Mac. It does not have GPU.I am also not sure I could do this in paperspace. Any idea to create subfolders in train folder in kaggle? does kaggle has terminal we could manipulate data set. (Create subfolders and put each images to their subfolders)

@bahman_apl : Kaggle input folder is read-only, so you cannot just create folders and move images in place. You could copy in the working directory, but likely room is not sufficient. In general, you may execute shell commands in a notebook cell by prefixing them with ! .
However, since you refer to the Strip AI challenge, consider that they are extremely large digital slides that need tiling, possibly downsizing, etc.

1 Like

I can’t seem to get the ‘H’ hotkey to work in command mode in Kaggle.

To see a complete list of all of the functions available, press H

Any thoughts?

I have the same problem here. I tried running %config Completer.use_jedi = False, which worked the last few nights, but stopped working today. I’m keen to hear if anyone has the same problem.

I believe it was a correct solution, because

from fastai.vision.all import *
!pip install -U timm
import timm

doesn’t work, whereas

!pip install -U timm
import timm
from fastai.vision.all import *

does

the reason why I focused on this was I heard Jeremy pointing this out in one of the videos (live coding sessions I believe)

1 Like

Hi,

I had tinkered with the course a couple times before but didn’t get started in earnest. Before, it seemed like the course strongly suggested Google Colab, but now with the recent version of the course, it seems like the standard set up uses Kaggle notebooks instead? Is that correct?

Thanks

Yes that’s right.

3 Likes


in lesson 3 ,I am trying to launch gradio app after predicting the model in kaggle and see it in browser .
It is showing me “ERROR: Exception in ASGI application”.

can anyone help?

When I open colab notebook, it looks like somethings is not displaying properly.

While source is <<chapter_intro>>

source

But display <> only. I think it should work as a link but it doesn’t.

output

I’m excited for this course and book! One thing I’m curious about is why the course is written with examples in Kaggle notebooks, but the book is written in Colab notebooks. It looks like both are Jupyter notebooks. What are the main differences between Kaggle and Colab?