Giter Club home page Giter Club logo

noisy-fewshot-learning's Introduction

Noisy-Fewshot

This repository contains the code for the following paper:

A. Iscen, G. Tolias, Y. Avrithis, O. Chum, C. Schmid. "Graph convolutional networks for learning with few clean and many noisy labels", ECCV 2020

For the sake of simplicity, we only provide the code for GCN relevance weight computation for classification with prototypical classifiers.

Python 3, PyTorch, FAISS and pygcn are required.

Data:

Features

Pre-computed descriptors can be downloaded from here.

This directory contains features extracted with ResNet10 (as trained here: gidariss/FewShotWithoutForgetting) and ResNet50 (as trained here: facebookresearch/low-shot-shrink-hallucinate).

ResNet50 features are postprocessed by PCA and their dimensionality is reduced to 256 as described in the paper.

We provide ResNet10 and ResNet50 features for the ImageNet and Places-365 datasets. We also provide the features for the additional images retrieved from YFCC100M for these datasets (prefixed by yfcc*).

After downloading the features places them in the following directory:

>> mkdir data/features

Noisy Images

As described in the paper, we retrieve the additional noisy images from the YFCC100M dataset. Please follow this link for instructions on how to download the dataset.

We do not provide the raw images, but instead provide the indices of those images in the YFCC100M dataset. Index files can be found here.

As an example, yfcc_imagenet_test.txt refers to the list of additional noisy images that were retrieved for the test set of novel classes for Low-Shot ImageNet Benchmark. Each line contains:

<dataset_id, class_id>

e.g. 13, 795 means that the 13th image of the YFCC100M dataset was used for the 795th class of Shot ImageNet Benchmark.

Running the experiments:

We provide the code to run experiments with Protoype Classifier and our cleaning method. Low-Shot ImageNet Benchmark experiments can be run with the following command:

>> python run.py --dataset=imagenet --kshot=$KSHOT --network=$NETWORK

where $KSHOT is the number of clean images (1, 2, 5, 10 or 20) and $NETWORK is the ResNet model (resnet10 or resnet50pca).

Similarly, Low-Shot Places365 experiments can be run with the following command:

>> python run.py --dataset=places365 --kshot=$KSHOT --network=resnet10

Hyperparameters, such as gcnlambda, were tuned in the validation set which contains different set of novel classes compared to the test set. Add the commandline argument --valset in order to run the experiments in the validation set of novel classes.

Disclaimer: Not an official Google product

noisy-fewshot-learning's People

Contributors

ahmetius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

noisy-fewshot-learning's Issues

Definition of image ids for YFCC100M

Hi there,

Recently, I have a great interest in this work aiming at addressing such a few-shot-like task with additional noisy data.
Nevertheless, some problems about data pre-processing raised. As stated in this repository e.g. 13, 795 means that the 13th image of the YFCC100M dataset was used for the 795th class of Shot ImageNet Benchmark., I do not really understand what "13th" image exactly means. As I know, all images in YFCC100M are now stored in AWS s3 in a hierarchical manner, and there is no "image id" or something like that indicating "n-th" image.
May you have an instrument or clue to guide one to derive the "image id" for YFCC100M?

tabular data/ noisy instances

Hi,
thanks for sharing your implementation. I have two questions about it:

  1. Does it also work on tabular data?
  2. Is it possible to identify the noisy instances (return the noisy IDs or the clean set)?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.