sicara / easy-few-shot-learning

Ready-to-use code and tutorial notebooks to boost your way into few-shot learning for image classification.
MIT License
1.03k stars 141 forks source link

hard time trying on new dataset #131

Closed AvivTahar closed 6 months ago

AvivTahar commented 9 months ago

Problem I'm trying to make a quick checkup on this project using my own dataset. I cant seem to understand what exactly do I need to be the file system and how and where should the specs.json file should be situated in what format.

Considered solutions I've seen notebook examples but you download datasets that are not explainable and does not seem to have any clear logix

How can we help Please help me understand how can I quickly setup a prototype with my own images. I have a simple set, 2 classes, about 60 images (i saw you can use less than 10) I'm using colab.

What is the best way to do so?

I have been using your EasySet class with no success. I feel it is because i dont fully understand the file structure that it expects and the way the specs.json file should be written

I'm using your my_first_few_shot_classifier.ipynb notebook as a base example

And also, once I've trained my model on my specific class, do I need to give it the support set and labels every time I need to query for an image?

How do I query an unseen image, make predictions?

Thank you

ebennequin commented 9 months ago

Following the documentation for EasySet:

class EasySet(FewShotDataset):
    """
    A ready-to-use dataset. Will work for any dataset where the images are
    grouped in directories by class. It expects a JSON file defining the
    classes and where to find them. It must have the following shape:
        {
            "class_names": [
                "class_1",
                "class_2"
            ],
            "class_roots": [
                "path/to/class_1_folder",
                "path/to/class_2_folder"
            ]
        }
    """

Can you further develop on what is unclear to you, and also report what you tried and what unexpected behaviour it caused?

AvivTahar commented 9 months ago

Hi Thanks for helping I think my problem was related to that it was not clear to me what is train and test set (that is not related to support and query.. right?)

So the function knows by itself to split the train set (or the test set) that i give it to support and query sets?

ebennequin commented 9 months ago

It is unclear to me what problem you are trying to solve / what experiments you are trying to make.