{
  "fetched_at": "2026-10-20T10:12:30Z",
  "source_url": "https://www.kaggle.com/competitions/deep-learning-thu-2020/data",
  "pages": [
    {
      "name": "data-description",
      "content": "You can download the Tiny ImageNet dataset from the link below or [BaiduYun].\n[BaiduYun]:https://pan.baidu.com/s/1YwxH5DBqkZv_6EeIVT_1ZQ\n\nAfter unzip the TinyImageNet.zip, there are several files and folders:\n\n- `train`: training set, each subfolder contains 1000 images.\n- `val`: validation set, each subfolder contains 100 images.\n- `test`: test set, contains 10,000 images in total.\n- `train.txt`: training list, contains `image_name label` pairs.\n- `val.txt`: validation list, contains `image_name label` pairs.\nAll images has been resized to 64\\*64 pixels.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "Tiny ImageNet Challenge is the first course project of Introduction to Deep Learning. It runs similar to the [ImageNet challenge] and [Stanford CS231n].\n[ImageNet challenge]:http://www.image-net.org/challenges/LSVRC/2014/\n[Stanford CS231n]:https://tiny-imagenet.herokuapp.com/\n\n## Dataset\nThe Tiny ImageNet dataset has 100 classes. Each class has 1,000 training images, 100 validation images. The test set contains 10,000 images in total. We have released the training and validation sets with images and labels. The test set is released without labels. You are asked to predict the class label of each test image.\n\nIn detail, all training and validation images are from ImageNet training set. For test set, 5,000 images (id 0~4999) are selected from ImageNet validation set, while another 5,000 images (id 5000-9999) from [ImageNet-A]dataset, which called **Natural Adversarial Examples**. Modern deep CNNs achieve very low accuracy on these natural adversarial examples. ImageNet-A examples cause mistakes due to occlusion, weather, and other complications encountered in the long tail of scene configurations. You are recommended to read the [original paper] for more information.\n[ImageNet-A]:https://arxiv.org/pdf/1907.07174.pdf\n[original paper]:https://arxiv.org/pdf/1907.07174.pdf\n\nFor this course project, you need to consider how to achieve high classification accuracy on both general ImageNet images and natural adversarial examples.\n\n## Submission\nWe use the test set accuracy to measure the performance. To submit your predictions on the test set, you need to upload a CSV file, which should be a two-column file with 10,001 lines (the first row is a header). Each line contains a pair of test image filename and its predicted class id (0-99). An example might look like:\n```\nId,Category\n0.jpg,0\n1.jpg,1\n2.jpg,2\n...\n9999.jpg,99\n```\nAfter the deadline, you are required to submit all codes and a short report (no less than one page). Plagiarism and labeling test images manually will be penalized.\n\n##Evaluation\nCompetition scoring and ranking are based on two leaderboards : public and private. These two leaderboards are created by randomly splitting the test dataset. Public leaderboard is based on a subset of 40% of observations in test dataset you are submitting while the private leaderboard is based on the remaining 60% of data. The private leaderboard remains secret until the end of the competititon. It will determine the final competition ranking!\n \nSo far, all your submissions are based on the public leaderboard dataset. Using it, you are receiving a feedback about your performance. It can tell you how good you model is and how it is generalizing on unseen data.\n \nHowever, the final leaderboard (60% of test dataset) will determine final result. Before the end of competition ranking (Submissions dead line : 08 November 2020 23:59, UTC+8), you will have to select your three favorite submissions. By default, Kaggle chooses the three submissions that have performed the best on public leaderboard. However you are free to select the three submissions you want.\n \nFinally, these three submissions will result in the private leaderboard and so final ranking. In a Kaggle competition, the purpose of this division is to prevent people from winning by overfitting to the public leaderboard. Participants then are motivated to make sure their models will generalize well to the private leaderboard test set.\n \nTherefore, your results on public and private leaderboard could be slightly different. \n\n## Grading Policy\nTotal marks for this project is 20:\n- 14 marks based on rankings\n   - 1st place: 14 marks\n   - 2nd - last place: between 7 and 14 marks, in descending order\nlast place: 7 marks\n- 6 marks based on the final report\n   - correctness\n   - novelty\n\nMembers in the same group get the same grade.\n\n## References\nNatural Adversarial Examples. https://arxiv.org/abs/1907.07174.\nImageNet LSVRC challenge. http://www.image-net.org/challenges/LSVRC.\nTiny ImageNet Visual Recognition Challenge. https://tiny-imagenet.herokuapp.com/.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Tips",
      "content": "You are highly recommended to follow the [PyTorch ImageNet classification] example to start your project.\n[PyTorch ImageNet classification]:https://github.com/pytorch/examples/tree/master/imagenet\nThere are some useful tips for you:\n\n- Forget all codes dealing with 'distributed'/'dist' in the official example.\n- Note the image resolution (64\\*64) and number of classes (100), since [torchvision models] often use 224\\*224 (e.g. resnet) for 1000 classes. You need to modify the model architecture properly.\n[torchvision models]:https://pytorch.org/docs/stable/torchvision/models.html\n- We provide an example of Tiny ImangeNet Dataloader, note that [ImageFolder] may lead to label mismatch.\n[ImageFolder]:https://pytorch.org/docs/stable/torchvision/datasets.html#imagefolder\n- ResNet-18 model can achieve about 30% accuracy on test set. Random guess is about 1%.\n```\n# Tiny ImangeNet Dataloader\nimport numpy as np\nfrom PIL import Image\ndef default_loader(path):\n    return Image.open(path).convert('RGB')\nclass TinyImageNetDataset(torch.utils.data.Dataset):\n    def __init__(self, root, data_list, transform = None, loader = default_loader):\n        # root: your_path/TinyImageNet/\n        # data_list: your_path/TinyImageNet/train.txt etc.\n        images = []\n        labels = open(data_list).readlines()\n        for line in labels:\n            items = line.strip('\\n').split()\n            img_name = items[0]\n\n            # test list contains only image name\n            test_flag = True if len(items) == 1 else False\n            label = None if test_flag == True else np.array(int(items[1]))\n\n            if os.path.isfile(os.path.join(root, img_name)):\n                images.append((img_name, label))\n            else:\n                print(os.path.join(root, img_name) + 'Not Found.')\n\n        self.root = root\n        self.images = images\n        self.transform = transform\n        self.loader = loader\n\n    def __getitem__(self, index):\n        img_name, label = self.images[index]\n        img = self.loader(os.path.join(self.root, img_name))\n        raw_img = img.copy()\n        if self.transform is not None:\n            img = self.transform(img)\n        return (img, label) if label is not None else img\n\n    def __len__(self):\n        return len(self.images)\n```",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "No private sharing outside teams\nPrivately sharing code or data outside of teams is not permitted.\n\nSubmission Limits\nYou may submit a maximum of 20 entries per day.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}