Friends I am getting error while running the below command in Kaggle Jupyter !pip install -Uqq fastai duckduckgo_search
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: '/opt/conda/lib/python3.10/site-packages/nest_asyncio-1.5.8.dist-info/METADATA
I have created a spin-off from the bird vs. forest code that Jeremy provided.
I trained the model to detect a mouse, cat, dog, and eagle.
When I test the code using images of actual mice, cats, dogs, and eagles, it works perfectly fine.
However, when I test the model with an image of a computer, it tells me that the probability of it being a mouse is 0.9993.
Can someone explain why this is?
A couple of ways to get the notebook working:
(1) Replace ddg_images with search_images_ddg from the fastbook library. This is the quickest way to get it going. The fix with a code example is originally mentioned here: Lesson 1 official topic - #608 by SergeyF
(2) Rewrite the search_images function using the updated DDGS class. Example:
from duckduckgo_search import DDGS
def search_img_urls(keywords: str, max_results: int) -> list:
"""
Searches DDG using the keywords string and returns a list of
matching image urls up to length max_results.
"""
with DDGS() as ddgs:
keywords = keywords
ddgs_images_gen = ddgs.images(
keywords,
max_results=max_results
)
r = [result["image"] for result in ddgs_images_gen]
return r
is_mario_or_luigi,_,probs = learn.predict(PILImage.create('mario.jpg'))
print(f"This is a: {is_mario_or_luigi}.")
print(f"Probability it's Mario or Luigi: {probs[0]:.4f}")
This is a: mario.
Probability it's Mario or Luigi: 0.0353
The reason is that you are retrieving the element at the 0-th index of probs, with probs[0], but the index corresponding to the prediction, which is the second value return by learn.predict, is 1:
Here is an example using your code. In the second cell, I store the second value returned by learn.predict in idx which has a value of tensor(1)—the element in probs at that index is 0.9976, which is the probability for the mario prediction.
apparently this occurs when the search does not return enough results and there is no ‘next’ item to iterate though. I reduced the number of requested queries and removed the rarer requests
Trying to run this in 2024, I found I have to replace ‘pip’ in the birds notebook with ‘pip3’ or I get a lot of dependency errors. But, then I get to the next section where it tries to use ‘search_images’ to get bird photos, but it gets:
NameError: name 'ddg_images' is not defined
I can update the code for the current DDG library, but I’m just wondering whether the course is still maintained? Should I continue with it and is most of it likely to work?
It’s hard to be sure without seeing your whole notebook. If you have downloaded all new images and retrained the models my guess would be you are still using the bird/forest folder names which are then being used as the labels input for the training.
If you are just trying to run the car image through the model without making any changes then it would be because the model has been fine-tuned to only detect birds and forests?
(also, the last print statement has bird hardcoded in the string).
After Lesson 1 and Lesson 2, I built a Kaiju Classifier on HuggingFace Space, in which I trained resnet18 to recognize five types of Kaiju of Monster Universe, Godzilla, King Ghidorah, King Kong, Mothra, and Rodan.
It was a fun project to me because I want to download the datasets myself using the duckduckgo function from Lesson 1 and clean the original images manually. I acutally tried to use the Cleaner function from the vision.widget and then unlink from path. But it turns out really bad given I had downloaded 300 images to each kind of Kaiju. After cleaning data, I use DataBlock of Lesson 1 to store all images and train them. And use learner export of Lesson 2 to export the learner which ultimately integrates into Gradio using HuggingFace Space.
Enjoy it and try to play it with image you downloaded. Give it a like! And tell me if you like to see other Kaiju to be added!
I am starting the course in April 2024. I am facing lots of errors due to deprecated/not working code in the kaggle notebooks. Also there are even may differences between the code mentioned in the beginning of the video - the presentation part before talking about how to use the notebooks - and the code in the notebooks on kaggle!
Somehow, I managed to get the code to work by mixing both the updated and non updated version. But I think it may be confusing, very difficult and disappointing for others!
So, I would like to contribute about that and I wonder is the the right place to report these issues in details.