diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..ee602e56d403d0a8f9f476529a40ddea730693bf
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,53 @@
+# This is example dockerfile for Food Recognition Benchmark @ AIcrowd
+
+FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+# Install needed apt packages
+COPY apt.txt apt.txt
+RUN apt -qq update && xargs -a apt.txt apt -qq install -y --no-install-recommends \
+ && rm -rf /var/cache/*
+
+# Create user home directory
+ENV USER aicrowd
+ENV HOME_DIR /home/$USER
+
+# Replace HOST_UID/HOST_GUID with your user / group id
+ENV HOST_UID 1001
+ENV HOST_GID 1001
+
+# Use bash as default shell, rather than sh
+ENV SHELL /bin/bash
+
+# Set up user
+RUN adduser --disabled-password \
+    --gecos "Default user" \
+    --uid ${HOST_UID} \
+    ${USER}
+USER ${USER}
+WORKDIR ${HOME_DIR}
+ENV CONDA_DIR ${HOME_DIR}/.conda
+ENV PATH ${CONDA_DIR}/bin:${PATH}
+
+# Download miniconda for python
+RUN wget -nv -O miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh \
+ && bash miniconda.sh -b -p ${CONDA_DIR} \
+ && . ${CONDA_DIR}/etc/profile.d/conda.sh \
+ && rm -rf miniconda.sh \
+ && conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.1 -c pytorch \
+ && conda clean -a -y
+ENV FORCE_CUDA="1"
+
+# Install needed pypi packages
+USER ${USER}
+RUN pip install numpy cython --no-cache-dir
+COPY --chown=1001:1001 requirements.txt requirements.txt
+RUN pip install --no-cache-dir -r requirements.txt
+
+# (optional)
+# (either add below as dependency in requirements.txt or uncomment below line)
+# RUN pip install -U git+https://github.com/open-mmlab/mmdetection.git@v2.3.0
+
+# Copy user files
+COPY --chown=1001:1001 . ${HOME_DIR}
diff --git a/aicrowd.json b/aicrowd.json
index a3d14ca14ef6180ee644ffc00db836b0297db5f8..87d9d22ad76d371b576348c3762fd90f3a2f3fa5 100644
--- a/aicrowd.json
+++ b/aicrowd.json
@@ -3,5 +3,6 @@
   "authors" : ["aicrowd-bot"],
   "description" : "Food Recognition Benchmark Submission",
   "license" : "MIT",
-  "gpu": false
-}
\ No newline at end of file
+  "gpu": true,
+  "debug": true 
+}
diff --git a/configs/solo.py b/configs/solo.py
new file mode 100644
index 0000000000000000000000000000000000000000..b7ebafeee5ba18f8c995218be24d2643cbc7ed54
--- /dev/null
+++ b/configs/solo.py
@@ -0,0 +1,820 @@
+dataset_type = 'CocoDataset'
+data_root = 'data/coco/'
+img_norm_cfg = dict(
+    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+train_pipeline = [
+    dict(type='LoadImageFromFile'),
+    dict(type='LoadAnnotations', with_bbox=True, with_mask=True),
+    dict(
+        type='Resize',
+        img_scale=[(1333, 800), (1333, 768), (1333, 736), (1333, 704),
+                   (1333, 672), (1333, 640)],
+        multiscale_mode='value',
+        keep_ratio=True),
+    dict(type='RandomFlip', flip_ratio=0.5),
+    dict(
+        type='Normalize',
+        mean=[123.675, 116.28, 103.53],
+        std=[58.395, 57.12, 57.375],
+        to_rgb=True),
+    dict(type='Pad', size_divisor=32),
+    dict(type='DefaultFormatBundle'),
+    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks'])
+]
+test_pipeline = [
+    dict(type='LoadImageFromFile'),
+    dict(
+        type='MultiScaleFlipAug',
+        img_scale=(1333, 800),
+        flip=False,
+        transforms=[
+            dict(type='Resize', keep_ratio=True),
+            dict(type='RandomFlip'),
+            dict(
+                type='Normalize',
+                mean=[123.675, 116.28, 103.53],
+                std=[58.395, 57.12, 57.375],
+                to_rgb=True),
+            dict(type='Pad', size_divisor=32),
+            dict(type='ImageToTensor', keys=['img']),
+            dict(type='Collect', keys=['img'])
+        ])
+]
+data = dict(
+    samples_per_gpu=8,
+    workers_per_gpu=1,
+    train=dict(
+        type='CocoDataset',
+        ann_file='/home/nick/iggotsul/mmdetection/data/train/annotations.json',
+        img_prefix='/home/nick/iggotsul/mmdetection/data/train/images',
+        pipeline=[
+            dict(type='LoadImageFromFile'),
+            dict(type='LoadAnnotations', with_bbox=True, with_mask=True),
+            dict(
+                type='Resize',
+                img_scale=[(1333, 800), (1333, 768), (1333, 736), (1333, 704),
+                           (1333, 672), (1333, 640)],
+                multiscale_mode='value',
+                keep_ratio=True),
+            dict(type='RandomFlip', flip_ratio=0.5),
+            dict(
+                type='Normalize',
+                mean=[123.675, 116.28, 103.53],
+                std=[58.395, 57.12, 57.375],
+                to_rgb=True),
+            dict(type='Pad', size_divisor=32),
+            dict(type='DefaultFormatBundle'),
+            dict(
+                type='Collect',
+                keys=['img', 'gt_bboxes', 'gt_labels', 'gt_masks'])
+        ],
+        seg_prefix='/home/nick/iggotsul/mmdetection/data/train/images',
+        classes=
+        ('bread-wholemeal', 'jam', 'water', 'bread-sourdough', 'banana',
+         'soft-cheese', 'ham-raw', 'hard-cheese', 'cottage-cheese',
+         'bread-half-white', 'coffee-with-caffeine', 'fruit-salad', 'pancakes',
+         'tea', 'salmon-smoked', 'avocado', 'spring-onion-scallion',
+         'ristretto-with-caffeine', 'ham', 'egg', 'bacon-frying',
+         'chips-french-fries', 'juice-apple', 'chicken', 'tomato-raw',
+         'broccoli', 'shrimp-boiled',
+         'beetroot-steamed-without-addition-of-salt', 'carrot-raw',
+         'chickpeas', 'french-salad-dressing', 'pasta-hornli', 'sauce-cream',
+         'meat-balls', 'pasta', 'tomato-sauce', 'cheese', 'pear', 'cashew-nut',
+         'almonds', 'lentils', 'mixed-vegetables', 'peanut-butter', 'apple',
+         'blueberries', 'cucumber', 'cocoa-powder',
+         'greek-yaourt-yahourt-yogourt-ou-yoghourt', 'maple-syrup-concentrate',
+         'buckwheat-grain-peeled', 'butter', 'herbal-tea', 'mayonnaise',
+         'soup-vegetable', 'wine-red', 'wine-white',
+         'green-bean-steamed-without-addition-of-salt', 'sausage',
+         'pizza-margherita-baked', 'salami', 'mushroom',
+         'bread-meat-substitute-lettuce-sauce', 'tart', 'tea-verveine', 'rice',
+         'white-coffee-with-caffeine', 'linseeds', 'sunflower-seeds',
+         'ham-cooked', 'bell-pepper-red-raw', 'zucchini', 'green-asparagus',
+         'tartar-sauce', 'lye-pretzel-soft', 'cucumber-pickled',
+         'curry-vegetarian', 'yaourt-yahourt-yogourt-ou-yoghourt-natural',
+         'soup-of-lentils-dahl-dhal', 'soup-cream-of-vegetables',
+         'balsamic-vinegar', 'salmon', 'salt-cake-vegetables-filled', 'bacon',
+         'orange', 'pasta-noodles', 'cream', 'cake-chocolate',
+         'pasta-spaghetti', 'black-olives', 'parmesan', 'spaetzle',
+         'salad-lambs-ear', 'salad-leaf-salad-green', 'potatoes-steamed',
+         'white-cabbage', 'halloumi', 'beetroot-raw', 'bread-grain',
+         'applesauce-unsweetened-canned', 'cheese-for-raclette', 'mushrooms',
+         'bread-white', 'curds-natural-with-at-most-10-fidm',
+         'bagel-without-filling', 'quiche-with-cheese-baked-with-puff-pastry',
+         'soup-potato', 'bouillon-vegetable', 'beef-sirloin-steak',
+         'taboule-prepared-with-couscous', 'eggplant', 'bread',
+         'turnover-with-meat-small-meat-pie-empanadas', 'mungbean-sprouts',
+         'mozzarella', 'pasta-penne', 'lasagne-vegetable-prepared',
+         'mandarine', 'kiwi', 'french-beans', 'tartar-meat',
+         'spring-roll-fried', 'pork-chop', 'caprese-salad-tomato-mozzarella',
+         'leaf-spinach', 'roll-of-half-white-or-white-flour-with-large-void',
+         'pasta-ravioli-stuffing', 'omelette-plain', 'tuna', 'dark-chocolate',
+         'sauce-savoury', 'dried-raisins', 'ice-tea', 'kaki', 'macaroon',
+         'smoothie', 'crepe-plain', 'chicken-nuggets',
+         'chili-con-carne-prepared', 'veggie-burger', 'cream-spinach', 'cod',
+         'chinese-cabbage', 'hamburger-bread-meat-ketchup', 'soup-pumpkin',
+         'sushi', 'chestnuts', 'coffee-decaffeinated', 'sauce-soya',
+         'balsamic-salad-dressing', 'pasta-twist', 'bolognaise-sauce', 'leek',
+         'fajita-bread-only', 'potato-gnocchi',
+         'beef-cut-into-stripes-only-meat', 'rice-noodles-vermicelli',
+         'tea-ginger', 'tea-green', 'bread-whole-wheat', 'onion', 'garlic',
+         'hummus', 'pizza-with-vegetables-baked', 'beer', 'glucose-drink-50g',
+         'chicken-wing', 'ratatouille', 'peanut',
+         'high-protein-pasta-made-of-lentils-peas', 'cauliflower',
+         'quiche-with-spinach-baked-with-cake-dough', 'green-olives',
+         'brazil-nut', 'eggplant-caviar', 'bread-pita', 'pasta-wholemeal',
+         'sauce-pesto', 'oil', 'couscous', 'sauce-roast', 'prosecco',
+         'crackers', 'bread-toast', 'shrimp-prawn-small', 'panna-cotta',
+         'romanesco', 'water-with-lemon-juice', 'espresso-with-caffeine',
+         'egg-scrambled-prepared', 'juice-orange', 'ice-cubes',
+         'braided-white-loaf', 'emmental-cheese', 'croissant-wholegrain',
+         'hazelnut-chocolate-spread-nutella-ovomaltine-caotina', 'tomme',
+         'water-mineral', 'hazelnut', 'bacon-raw', 'bread-nut',
+         'black-forest-tart', 'soup-miso', 'peach', 'figs', 'beef-filet',
+         'mustard-dijon', 'rice-basmati',
+         'mashed-potatoes-prepared-with-full-fat-milk-with-butter',
+         'dumplings', 'pumpkin', 'swiss-chard', 'red-cabbage', 'spinach-raw',
+         'naan-indien-bread',
+         'chicken-curry-cream-coconut-milk-curry-spices-paste',
+         'crunch-muesli', 'biscuits', 'bread-french-white-flour', 'meatloaf',
+         'fresh-cheese', 'honey', 'vegetable-mix-peas-and-carrots', 'parsley',
+         'brownie', 'dairy-ice-cream', 'tea-black', 'carrot-cake',
+         'fish-fingers-breaded', 'salad-dressing', 'dried-meat',
+         'chicken-breast', 'mixed-salad-chopped-without-sauce', 'feta',
+         'praline', 'tea-peppermint', 'walnut',
+         'potato-salad-with-mayonnaise-yogurt-dressing', 'kebab-in-pita-bread',
+         'kolhrabi', 'alfa-sprouts', 'brussel-sprouts', 'bacon-cooking',
+         'gruyere', 'bulgur', 'grapes', 'pork-escalope', 'chocolate-egg-small',
+         'cappuccino',
+         'zucchini-stewed-without-addition-of-fat-without-addition-of-salt',
+         'crisp-bread-wasa', 'bread-black', 'perch-fillets-lake', 'rosti',
+         'mango', 'sandwich-ham-cheese-and-butter', 'muesli',
+         'spinach-steamed-without-addition-of-salt', 'fish',
+         'risotto-without-cheese-cooked', 'milk-chocolate-with-hazelnuts',
+         'cake-oblong', 'crisps', 'pork', 'pomegranate', 'sweet-corn-canned',
+         'flakes-oat', 'greek-salad', 'cantonese-fried-rice', 'sesame-seeds',
+         'bouillon', 'baked-potato', 'fennel', 'meat', 'bread-olive',
+         'croutons', 'philadelphia',
+         'mushroom-average-stewed-without-addition-of-fat-without-addition-of-salt',
+         'bell-pepper-red-stewed-without-addition-of-fat-without-addition-of-salt',
+         'white-chocolate', 'mixed-nuts', 'breadcrumbs-unspiced', 'fondue',
+         'sauce-mushroom', 'tea-spice', 'strawberries', 'tea-rooibos',
+         'pie-plum-baked-with-cake-dough',
+         'potatoes-au-gratin-dauphinois-prepared', 'capers', 'vegetables',
+         'bread-wholemeal-toast', 'red-radish', 'fruit-tart', 'beans-kidney',
+         'sauerkraut', 'mustard', 'country-fries', 'ketchup',
+         'pasta-linguini-parpadelle-tagliatelle',
+         'chicken-cut-into-stripes-only-meat', 'cookies', 'sun-dried-tomatoe',
+         'bread-ticino', 'semi-hard-cheese', 'margarine',
+         'porridge-prepared-with-partially-skimmed-milk',
+         'soya-drink-soy-milk', 'juice-multifruit', 'popcorn-salted',
+         'chocolate-filled', 'milk-chocolate', 'bread-fruit',
+         'mix-of-dried-fruits-and-nuts', 'corn', 'tete-de-moine', 'dates',
+         'pistachio', 'celery', 'white-radish', 'oat-milk', 'cream-cheese',
+         'bread-rye', 'witloof-chicory', 'apple-crumble', 'goat-cheese-soft',
+         'grapefruit-pomelo', 'risotto-with-mushrooms-cooked',
+         'blue-mould-cheese', 'biscuit-with-butter', 'guacamole', 'pecan-nut',
+         'tofu', 'cordon-bleu-from-pork-schnitzel-fried', 'paprika-chips',
+         'quinoa', 'kefir-drink', 'm-m-s', 'salad-rocket', 'bread-spelt',
+         'pizza-with-ham-with-mushrooms-baked', 'fruit-coulis', 'plums',
+         'beef-minced-only-meat', 'pizza-with-ham-baked', 'pineapple',
+         'soup-tomato', 'cheddar', 'tea-fruit', 'rice-jasmin', 'seeds',
+         'focaccia', 'milk', 'coleslaw-chopped-without-sauce', 'pastry-flaky',
+         'curd', 'savoury-puff-pastry-stick', 'sweet-potato', 'chicken-leg',
+         'croissant', 'sour-cream', 'ham-turkey', 'processed-cheese',
+         'fruit-compotes', 'cheesecake', 'pasta-tortelloni-stuffing',
+         'sauce-cocktail', 'croissant-with-chocolate-filling', 'pumpkin-seeds',
+         'artichoke', 'champagne', 'grissini', 'sweets-candies', 'brie',
+         'wienerli-swiss-sausage', 'syrup-diluted-ready-to-drink', 'apple-pie',
+         'white-bread-with-butter-eggs-and-milk', 'savoury-puff-pastry',
+         'anchovies', 'tuna-in-oil-drained', 'lemon-pie', 'meat-terrine-pate',
+         'coriander', 'falafel-balls', 'berries',
+         'latte-macchiato-with-caffeine', 'faux-mage-cashew-vegan-chers',
+         'beans-white', 'sugar-melon', 'mixed-seeds', 'hamburger',
+         'hamburger-bun', 'oil-vinegar-salad-dressing',
+         'soya-yaourt-yahourt-yogourt-ou-yoghourt',
+         'chocolate-milk-chocolate-drink', 'celeriac', 'chocolate-mousse',
+         'cenovis-yeast-spread', 'thickened-cream-35', 'meringue', 'lamb-chop',
+         'shrimp-prawn-large', 'beef', 'lemon', 'croque-monsieur', 'chives',
+         'chocolate-cookies', 'birchermuesli-prepared-no-sugar-added',
+         'fish-crunchies-battered', 'muffin',
+         'savoy-cabbage-steamed-without-addition-of-salt', 'pine-nuts',
+         'chorizo', 'chia-grains', 'frying-sausage',
+         'french-pizza-from-alsace-baked', 'chocolate', 'cooked-sausage',
+         'grits-polenta-maize-flour',
+         'gummi-bears-fruit-jellies-jelly-babies-with-fruit-essence',
+         'wine-rose', 'coca-cola', 'raspberries',
+         'roll-with-pieces-of-chocolate', 'goat-average-raw', 'lemon-cake',
+         'coconut-milk', 'rice-wild', 'gluten-free-bread', 'pearl-onions',
+         'buckwheat-pancake', 'bread-5-grain', 'light-beer', 'sugar-glazing',
+         'tzatziki', 'butter-herb', 'ham-croissant', 'corn-crisps',
+         'lentils-green-du-puy-du-berry', 'cocktail', 'rice-whole-grain',
+         'veal-sausage', 'cervelat', 'sorbet',
+         'aperitif-with-alcohol-aperol-spritz', 'dips', 'corn-flakes', 'peas',
+         'tiramisu', 'apricots', 'cake-marble', 'lamb',
+         'lasagne-meat-prepared', 'coca-cola-zero', 'cake-salted',
+         'dough-puff-pastry-shortcrust-bread-pizza-dough', 'rice-waffels',
+         'sekt', 'brioche', 'vegetable-au-gratin-baked', 'mango-dried',
+         'processed-meat-charcuterie', 'mousse', 'sauce-sweet-sour', 'basil',
+         'butter-spread-puree-almond', 'pie-apricot-baked-with-cake-dough',
+         'rusk-wholemeal', 'beef-roast',
+         'vanille-cream-cooked-custard-creme-dessert', 'pasta-in-conch-form',
+         'nuts', 'sauce-carbonara', 'fig-dried',
+         'pasta-in-butterfly-form-farfalle', 'minced-meat',
+         'carrot-steamed-without-addition-of-salt', 'ebly', 'damson-plum',
+         'shoots', 'bouquet-garni', 'coconut', 'banana-cake', 'waffle',
+         'apricot-dried', 'sauce-curry', 'watermelon-fresh',
+         'sauce-sweet-salted-asian', 'pork-roast', 'blackberry',
+         'smoked-cooked-sausage-of-pork-and-beef-meat-sausag', 'bean-seeds',
+         'italian-salad-dressing', 'white-asparagus',
+         'pie-rhubarb-baked-with-cake-dough',
+         'tomato-stewed-without-addition-of-fat-without-addition-of-salt',
+         'cherries', 'nectarine')),
+    val=dict(
+        type='CocoDataset',
+        ann_file='/home/nick/iggotsul/mmdetection/data/val/annotations.json',
+        img_prefix='/home/nick/iggotsul/mmdetection/data/val/images',
+        pipeline=[
+            dict(type='LoadImageFromFile'),
+            dict(
+                type='MultiScaleFlipAug',
+                img_scale=(1333, 800),
+                flip=False,
+                transforms=[
+                    dict(type='Resize', keep_ratio=True),
+                    dict(type='RandomFlip'),
+                    dict(
+                        type='Normalize',
+                        mean=[123.675, 116.28, 103.53],
+                        std=[58.395, 57.12, 57.375],
+                        to_rgb=True),
+                    dict(type='Pad', size_divisor=32),
+                    dict(type='ImageToTensor', keys=['img']),
+                    dict(type='Collect', keys=['img'])
+                ])
+        ],
+        classes=
+        ('bread-wholemeal', 'jam', 'water', 'bread-sourdough', 'banana',
+         'soft-cheese', 'ham-raw', 'hard-cheese', 'cottage-cheese',
+         'bread-half-white', 'coffee-with-caffeine', 'fruit-salad', 'pancakes',
+         'tea', 'salmon-smoked', 'avocado', 'spring-onion-scallion',
+         'ristretto-with-caffeine', 'ham', 'egg', 'bacon-frying',
+         'chips-french-fries', 'juice-apple', 'chicken', 'tomato-raw',
+         'broccoli', 'shrimp-boiled',
+         'beetroot-steamed-without-addition-of-salt', 'carrot-raw',
+         'chickpeas', 'french-salad-dressing', 'pasta-hornli', 'sauce-cream',
+         'meat-balls', 'pasta', 'tomato-sauce', 'cheese', 'pear', 'cashew-nut',
+         'almonds', 'lentils', 'mixed-vegetables', 'peanut-butter', 'apple',
+         'blueberries', 'cucumber', 'cocoa-powder',
+         'greek-yaourt-yahourt-yogourt-ou-yoghourt', 'maple-syrup-concentrate',
+         'buckwheat-grain-peeled', 'butter', 'herbal-tea', 'mayonnaise',
+         'soup-vegetable', 'wine-red', 'wine-white',
+         'green-bean-steamed-without-addition-of-salt', 'sausage',
+         'pizza-margherita-baked', 'salami', 'mushroom',
+         'bread-meat-substitute-lettuce-sauce', 'tart', 'tea-verveine', 'rice',
+         'white-coffee-with-caffeine', 'linseeds', 'sunflower-seeds',
+         'ham-cooked', 'bell-pepper-red-raw', 'zucchini', 'green-asparagus',
+         'tartar-sauce', 'lye-pretzel-soft', 'cucumber-pickled',
+         'curry-vegetarian', 'yaourt-yahourt-yogourt-ou-yoghourt-natural',
+         'soup-of-lentils-dahl-dhal', 'soup-cream-of-vegetables',
+         'balsamic-vinegar', 'salmon', 'salt-cake-vegetables-filled', 'bacon',
+         'orange', 'pasta-noodles', 'cream', 'cake-chocolate',
+         'pasta-spaghetti', 'black-olives', 'parmesan', 'spaetzle',
+         'salad-lambs-ear', 'salad-leaf-salad-green', 'potatoes-steamed',
+         'white-cabbage', 'halloumi', 'beetroot-raw', 'bread-grain',
+         'applesauce-unsweetened-canned', 'cheese-for-raclette', 'mushrooms',
+         'bread-white', 'curds-natural-with-at-most-10-fidm',
+         'bagel-without-filling', 'quiche-with-cheese-baked-with-puff-pastry',
+         'soup-potato', 'bouillon-vegetable', 'beef-sirloin-steak',
+         'taboule-prepared-with-couscous', 'eggplant', 'bread',
+         'turnover-with-meat-small-meat-pie-empanadas', 'mungbean-sprouts',
+         'mozzarella', 'pasta-penne', 'lasagne-vegetable-prepared',
+         'mandarine', 'kiwi', 'french-beans', 'tartar-meat',
+         'spring-roll-fried', 'pork-chop', 'caprese-salad-tomato-mozzarella',
+         'leaf-spinach', 'roll-of-half-white-or-white-flour-with-large-void',
+         'pasta-ravioli-stuffing', 'omelette-plain', 'tuna', 'dark-chocolate',
+         'sauce-savoury', 'dried-raisins', 'ice-tea', 'kaki', 'macaroon',
+         'smoothie', 'crepe-plain', 'chicken-nuggets',
+         'chili-con-carne-prepared', 'veggie-burger', 'cream-spinach', 'cod',
+         'chinese-cabbage', 'hamburger-bread-meat-ketchup', 'soup-pumpkin',
+         'sushi', 'chestnuts', 'coffee-decaffeinated', 'sauce-soya',
+         'balsamic-salad-dressing', 'pasta-twist', 'bolognaise-sauce', 'leek',
+         'fajita-bread-only', 'potato-gnocchi',
+         'beef-cut-into-stripes-only-meat', 'rice-noodles-vermicelli',
+         'tea-ginger', 'tea-green', 'bread-whole-wheat', 'onion', 'garlic',
+         'hummus', 'pizza-with-vegetables-baked', 'beer', 'glucose-drink-50g',
+         'chicken-wing', 'ratatouille', 'peanut',
+         'high-protein-pasta-made-of-lentils-peas', 'cauliflower',
+         'quiche-with-spinach-baked-with-cake-dough', 'green-olives',
+         'brazil-nut', 'eggplant-caviar', 'bread-pita', 'pasta-wholemeal',
+         'sauce-pesto', 'oil', 'couscous', 'sauce-roast', 'prosecco',
+         'crackers', 'bread-toast', 'shrimp-prawn-small', 'panna-cotta',
+         'romanesco', 'water-with-lemon-juice', 'espresso-with-caffeine',
+         'egg-scrambled-prepared', 'juice-orange', 'ice-cubes',
+         'braided-white-loaf', 'emmental-cheese', 'croissant-wholegrain',
+         'hazelnut-chocolate-spread-nutella-ovomaltine-caotina', 'tomme',
+         'water-mineral', 'hazelnut', 'bacon-raw', 'bread-nut',
+         'black-forest-tart', 'soup-miso', 'peach', 'figs', 'beef-filet',
+         'mustard-dijon', 'rice-basmati',
+         'mashed-potatoes-prepared-with-full-fat-milk-with-butter',
+         'dumplings', 'pumpkin', 'swiss-chard', 'red-cabbage', 'spinach-raw',
+         'naan-indien-bread',
+         'chicken-curry-cream-coconut-milk-curry-spices-paste',
+         'crunch-muesli', 'biscuits', 'bread-french-white-flour', 'meatloaf',
+         'fresh-cheese', 'honey', 'vegetable-mix-peas-and-carrots', 'parsley',
+         'brownie', 'dairy-ice-cream', 'tea-black', 'carrot-cake',
+         'fish-fingers-breaded', 'salad-dressing', 'dried-meat',
+         'chicken-breast', 'mixed-salad-chopped-without-sauce', 'feta',
+         'praline', 'tea-peppermint', 'walnut',
+         'potato-salad-with-mayonnaise-yogurt-dressing', 'kebab-in-pita-bread',
+         'kolhrabi', 'alfa-sprouts', 'brussel-sprouts', 'bacon-cooking',
+         'gruyere', 'bulgur', 'grapes', 'pork-escalope', 'chocolate-egg-small',
+         'cappuccino',
+         'zucchini-stewed-without-addition-of-fat-without-addition-of-salt',
+         'crisp-bread-wasa', 'bread-black', 'perch-fillets-lake', 'rosti',
+         'mango', 'sandwich-ham-cheese-and-butter', 'muesli',
+         'spinach-steamed-without-addition-of-salt', 'fish',
+         'risotto-without-cheese-cooked', 'milk-chocolate-with-hazelnuts',
+         'cake-oblong', 'crisps', 'pork', 'pomegranate', 'sweet-corn-canned',
+         'flakes-oat', 'greek-salad', 'cantonese-fried-rice', 'sesame-seeds',
+         'bouillon', 'baked-potato', 'fennel', 'meat', 'bread-olive',
+         'croutons', 'philadelphia',
+         'mushroom-average-stewed-without-addition-of-fat-without-addition-of-salt',
+         'bell-pepper-red-stewed-without-addition-of-fat-without-addition-of-salt',
+         'white-chocolate', 'mixed-nuts', 'breadcrumbs-unspiced', 'fondue',
+         'sauce-mushroom', 'tea-spice', 'strawberries', 'tea-rooibos',
+         'pie-plum-baked-with-cake-dough',
+         'potatoes-au-gratin-dauphinois-prepared', 'capers', 'vegetables',
+         'bread-wholemeal-toast', 'red-radish', 'fruit-tart', 'beans-kidney',
+         'sauerkraut', 'mustard', 'country-fries', 'ketchup',
+         'pasta-linguini-parpadelle-tagliatelle',
+         'chicken-cut-into-stripes-only-meat', 'cookies', 'sun-dried-tomatoe',
+         'bread-ticino', 'semi-hard-cheese', 'margarine',
+         'porridge-prepared-with-partially-skimmed-milk',
+         'soya-drink-soy-milk', 'juice-multifruit', 'popcorn-salted',
+         'chocolate-filled', 'milk-chocolate', 'bread-fruit',
+         'mix-of-dried-fruits-and-nuts', 'corn', 'tete-de-moine', 'dates',
+         'pistachio', 'celery', 'white-radish', 'oat-milk', 'cream-cheese',
+         'bread-rye', 'witloof-chicory', 'apple-crumble', 'goat-cheese-soft',
+         'grapefruit-pomelo', 'risotto-with-mushrooms-cooked',
+         'blue-mould-cheese', 'biscuit-with-butter', 'guacamole', 'pecan-nut',
+         'tofu', 'cordon-bleu-from-pork-schnitzel-fried', 'paprika-chips',
+         'quinoa', 'kefir-drink', 'm-m-s', 'salad-rocket', 'bread-spelt',
+         'pizza-with-ham-with-mushrooms-baked', 'fruit-coulis', 'plums',
+         'beef-minced-only-meat', 'pizza-with-ham-baked', 'pineapple',
+         'soup-tomato', 'cheddar', 'tea-fruit', 'rice-jasmin', 'seeds',
+         'focaccia', 'milk', 'coleslaw-chopped-without-sauce', 'pastry-flaky',
+         'curd', 'savoury-puff-pastry-stick', 'sweet-potato', 'chicken-leg',
+         'croissant', 'sour-cream', 'ham-turkey', 'processed-cheese',
+         'fruit-compotes', 'cheesecake', 'pasta-tortelloni-stuffing',
+         'sauce-cocktail', 'croissant-with-chocolate-filling', 'pumpkin-seeds',
+         'artichoke', 'champagne', 'grissini', 'sweets-candies', 'brie',
+         'wienerli-swiss-sausage', 'syrup-diluted-ready-to-drink', 'apple-pie',
+         'white-bread-with-butter-eggs-and-milk', 'savoury-puff-pastry',
+         'anchovies', 'tuna-in-oil-drained', 'lemon-pie', 'meat-terrine-pate',
+         'coriander', 'falafel-balls', 'berries',
+         'latte-macchiato-with-caffeine', 'faux-mage-cashew-vegan-chers',
+         'beans-white', 'sugar-melon', 'mixed-seeds', 'hamburger',
+         'hamburger-bun', 'oil-vinegar-salad-dressing',
+         'soya-yaourt-yahourt-yogourt-ou-yoghourt',
+         'chocolate-milk-chocolate-drink', 'celeriac', 'chocolate-mousse',
+         'cenovis-yeast-spread', 'thickened-cream-35', 'meringue', 'lamb-chop',
+         'shrimp-prawn-large', 'beef', 'lemon', 'croque-monsieur', 'chives',
+         'chocolate-cookies', 'birchermuesli-prepared-no-sugar-added',
+         'fish-crunchies-battered', 'muffin',
+         'savoy-cabbage-steamed-without-addition-of-salt', 'pine-nuts',
+         'chorizo', 'chia-grains', 'frying-sausage',
+         'french-pizza-from-alsace-baked', 'chocolate', 'cooked-sausage',
+         'grits-polenta-maize-flour',
+         'gummi-bears-fruit-jellies-jelly-babies-with-fruit-essence',
+         'wine-rose', 'coca-cola', 'raspberries',
+         'roll-with-pieces-of-chocolate', 'goat-average-raw', 'lemon-cake',
+         'coconut-milk', 'rice-wild', 'gluten-free-bread', 'pearl-onions',
+         'buckwheat-pancake', 'bread-5-grain', 'light-beer', 'sugar-glazing',
+         'tzatziki', 'butter-herb', 'ham-croissant', 'corn-crisps',
+         'lentils-green-du-puy-du-berry', 'cocktail', 'rice-whole-grain',
+         'veal-sausage', 'cervelat', 'sorbet',
+         'aperitif-with-alcohol-aperol-spritz', 'dips', 'corn-flakes', 'peas',
+         'tiramisu', 'apricots', 'cake-marble', 'lamb',
+         'lasagne-meat-prepared', 'coca-cola-zero', 'cake-salted',
+         'dough-puff-pastry-shortcrust-bread-pizza-dough', 'rice-waffels',
+         'sekt', 'brioche', 'vegetable-au-gratin-baked', 'mango-dried',
+         'processed-meat-charcuterie', 'mousse', 'sauce-sweet-sour', 'basil',
+         'butter-spread-puree-almond', 'pie-apricot-baked-with-cake-dough',
+         'rusk-wholemeal', 'beef-roast',
+         'vanille-cream-cooked-custard-creme-dessert', 'pasta-in-conch-form',
+         'nuts', 'sauce-carbonara', 'fig-dried',
+         'pasta-in-butterfly-form-farfalle', 'minced-meat',
+         'carrot-steamed-without-addition-of-salt', 'ebly', 'damson-plum',
+         'shoots', 'bouquet-garni', 'coconut', 'banana-cake', 'waffle',
+         'apricot-dried', 'sauce-curry', 'watermelon-fresh',
+         'sauce-sweet-salted-asian', 'pork-roast', 'blackberry',
+         'smoked-cooked-sausage-of-pork-and-beef-meat-sausag', 'bean-seeds',
+         'italian-salad-dressing', 'white-asparagus',
+         'pie-rhubarb-baked-with-cake-dough',
+         'tomato-stewed-without-addition-of-fat-without-addition-of-salt',
+         'cherries', 'nectarine')),
+    test=dict(
+        type='CocoDataset',
+        ann_file='/home/nick/iggotsul/mmdetection/data/test/annotations.json',        
+        img_prefix='/home/nick/iggotsul/mmdetection/data/test/images',
+        pipeline=[
+            dict(type='LoadImageFromFile'),
+            dict(
+                type='MultiScaleFlipAug',
+                img_scale=(1333, 800),
+                flip=False,
+                transforms=[
+                    dict(type='Resize', keep_ratio=True),
+                    dict(type='RandomFlip'),
+                    dict(
+                        type='Normalize',
+                        mean=[123.675, 116.28, 103.53],
+                        std=[58.395, 57.12, 57.375],
+                        to_rgb=True),
+                    dict(type='Pad', size_divisor=32),
+                    dict(type='ImageToTensor', keys=['img']),
+                    dict(type='Collect', keys=['img'])
+                ])
+        ],
+        classes=
+        ('bread-wholemeal', 'jam', 'water', 'bread-sourdough', 'banana',
+         'soft-cheese', 'ham-raw', 'hard-cheese', 'cottage-cheese',
+         'bread-half-white', 'coffee-with-caffeine', 'fruit-salad', 'pancakes',
+         'tea', 'salmon-smoked', 'avocado', 'spring-onion-scallion',
+         'ristretto-with-caffeine', 'ham', 'egg', 'bacon-frying',
+         'chips-french-fries', 'juice-apple', 'chicken', 'tomato-raw',
+         'broccoli', 'shrimp-boiled',
+         'beetroot-steamed-without-addition-of-salt', 'carrot-raw',
+         'chickpeas', 'french-salad-dressing', 'pasta-hornli', 'sauce-cream',
+         'meat-balls', 'pasta', 'tomato-sauce', 'cheese', 'pear', 'cashew-nut',
+         'almonds', 'lentils', 'mixed-vegetables', 'peanut-butter', 'apple',
+         'blueberries', 'cucumber', 'cocoa-powder',
+         'greek-yaourt-yahourt-yogourt-ou-yoghourt', 'maple-syrup-concentrate',
+         'buckwheat-grain-peeled', 'butter', 'herbal-tea', 'mayonnaise',
+         'soup-vegetable', 'wine-red', 'wine-white',
+         'green-bean-steamed-without-addition-of-salt', 'sausage',
+         'pizza-margherita-baked', 'salami', 'mushroom',
+         'bread-meat-substitute-lettuce-sauce', 'tart', 'tea-verveine', 'rice',
+         'white-coffee-with-caffeine', 'linseeds', 'sunflower-seeds',
+         'ham-cooked', 'bell-pepper-red-raw', 'zucchini', 'green-asparagus',
+         'tartar-sauce', 'lye-pretzel-soft', 'cucumber-pickled',
+         'curry-vegetarian', 'yaourt-yahourt-yogourt-ou-yoghourt-natural',
+         'soup-of-lentils-dahl-dhal', 'soup-cream-of-vegetables',
+         'balsamic-vinegar', 'salmon', 'salt-cake-vegetables-filled', 'bacon',
+         'orange', 'pasta-noodles', 'cream', 'cake-chocolate',
+         'pasta-spaghetti', 'black-olives', 'parmesan', 'spaetzle',
+         'salad-lambs-ear', 'salad-leaf-salad-green', 'potatoes-steamed',
+         'white-cabbage', 'halloumi', 'beetroot-raw', 'bread-grain',
+         'applesauce-unsweetened-canned', 'cheese-for-raclette', 'mushrooms',
+         'bread-white', 'curds-natural-with-at-most-10-fidm',
+         'bagel-without-filling', 'quiche-with-cheese-baked-with-puff-pastry',
+         'soup-potato', 'bouillon-vegetable', 'beef-sirloin-steak',
+         'taboule-prepared-with-couscous', 'eggplant', 'bread',
+         'turnover-with-meat-small-meat-pie-empanadas', 'mungbean-sprouts',
+         'mozzarella', 'pasta-penne', 'lasagne-vegetable-prepared',
+         'mandarine', 'kiwi', 'french-beans', 'tartar-meat',
+         'spring-roll-fried', 'pork-chop', 'caprese-salad-tomato-mozzarella',
+         'leaf-spinach', 'roll-of-half-white-or-white-flour-with-large-void',
+         'pasta-ravioli-stuffing', 'omelette-plain', 'tuna', 'dark-chocolate',
+         'sauce-savoury', 'dried-raisins', 'ice-tea', 'kaki', 'macaroon',
+         'smoothie', 'crepe-plain', 'chicken-nuggets',
+         'chili-con-carne-prepared', 'veggie-burger', 'cream-spinach', 'cod',
+         'chinese-cabbage', 'hamburger-bread-meat-ketchup', 'soup-pumpkin',
+         'sushi', 'chestnuts', 'coffee-decaffeinated', 'sauce-soya',
+         'balsamic-salad-dressing', 'pasta-twist', 'bolognaise-sauce', 'leek',
+         'fajita-bread-only', 'potato-gnocchi',
+         'beef-cut-into-stripes-only-meat', 'rice-noodles-vermicelli',
+         'tea-ginger', 'tea-green', 'bread-whole-wheat', 'onion', 'garlic',
+         'hummus', 'pizza-with-vegetables-baked', 'beer', 'glucose-drink-50g',
+         'chicken-wing', 'ratatouille', 'peanut',
+         'high-protein-pasta-made-of-lentils-peas', 'cauliflower',
+         'quiche-with-spinach-baked-with-cake-dough', 'green-olives',
+         'brazil-nut', 'eggplant-caviar', 'bread-pita', 'pasta-wholemeal',
+         'sauce-pesto', 'oil', 'couscous', 'sauce-roast', 'prosecco',
+         'crackers', 'bread-toast', 'shrimp-prawn-small', 'panna-cotta',
+         'romanesco', 'water-with-lemon-juice', 'espresso-with-caffeine',
+         'egg-scrambled-prepared', 'juice-orange', 'ice-cubes',
+         'braided-white-loaf', 'emmental-cheese', 'croissant-wholegrain',
+         'hazelnut-chocolate-spread-nutella-ovomaltine-caotina', 'tomme',
+         'water-mineral', 'hazelnut', 'bacon-raw', 'bread-nut',
+         'black-forest-tart', 'soup-miso', 'peach', 'figs', 'beef-filet',
+         'mustard-dijon', 'rice-basmati',
+         'mashed-potatoes-prepared-with-full-fat-milk-with-butter',
+         'dumplings', 'pumpkin', 'swiss-chard', 'red-cabbage', 'spinach-raw',
+         'naan-indien-bread',
+         'chicken-curry-cream-coconut-milk-curry-spices-paste',
+         'crunch-muesli', 'biscuits', 'bread-french-white-flour', 'meatloaf',
+         'fresh-cheese', 'honey', 'vegetable-mix-peas-and-carrots', 'parsley',
+         'brownie', 'dairy-ice-cream', 'tea-black', 'carrot-cake',
+         'fish-fingers-breaded', 'salad-dressing', 'dried-meat',
+         'chicken-breast', 'mixed-salad-chopped-without-sauce', 'feta',
+         'praline', 'tea-peppermint', 'walnut',
+         'potato-salad-with-mayonnaise-yogurt-dressing', 'kebab-in-pita-bread',
+         'kolhrabi', 'alfa-sprouts', 'brussel-sprouts', 'bacon-cooking',
+         'gruyere', 'bulgur', 'grapes', 'pork-escalope', 'chocolate-egg-small',
+         'cappuccino',
+         'zucchini-stewed-without-addition-of-fat-without-addition-of-salt',
+         'crisp-bread-wasa', 'bread-black', 'perch-fillets-lake', 'rosti',
+         'mango', 'sandwich-ham-cheese-and-butter', 'muesli',
+         'spinach-steamed-without-addition-of-salt', 'fish',
+         'risotto-without-cheese-cooked', 'milk-chocolate-with-hazelnuts',
+         'cake-oblong', 'crisps', 'pork', 'pomegranate', 'sweet-corn-canned',
+         'flakes-oat', 'greek-salad', 'cantonese-fried-rice', 'sesame-seeds',
+         'bouillon', 'baked-potato', 'fennel', 'meat', 'bread-olive',
+         'croutons', 'philadelphia',
+         'mushroom-average-stewed-without-addition-of-fat-without-addition-of-salt',
+         'bell-pepper-red-stewed-without-addition-of-fat-without-addition-of-salt',
+         'white-chocolate', 'mixed-nuts', 'breadcrumbs-unspiced', 'fondue',
+         'sauce-mushroom', 'tea-spice', 'strawberries', 'tea-rooibos',
+         'pie-plum-baked-with-cake-dough',
+         'potatoes-au-gratin-dauphinois-prepared', 'capers', 'vegetables',
+         'bread-wholemeal-toast', 'red-radish', 'fruit-tart', 'beans-kidney',
+         'sauerkraut', 'mustard', 'country-fries', 'ketchup',
+         'pasta-linguini-parpadelle-tagliatelle',
+         'chicken-cut-into-stripes-only-meat', 'cookies', 'sun-dried-tomatoe',
+         'bread-ticino', 'semi-hard-cheese', 'margarine',
+         'porridge-prepared-with-partially-skimmed-milk',
+         'soya-drink-soy-milk', 'juice-multifruit', 'popcorn-salted',
+         'chocolate-filled', 'milk-chocolate', 'bread-fruit',
+         'mix-of-dried-fruits-and-nuts', 'corn', 'tete-de-moine', 'dates',
+         'pistachio', 'celery', 'white-radish', 'oat-milk', 'cream-cheese',
+         'bread-rye', 'witloof-chicory', 'apple-crumble', 'goat-cheese-soft',
+         'grapefruit-pomelo', 'risotto-with-mushrooms-cooked',
+         'blue-mould-cheese', 'biscuit-with-butter', 'guacamole', 'pecan-nut',
+         'tofu', 'cordon-bleu-from-pork-schnitzel-fried', 'paprika-chips',
+         'quinoa', 'kefir-drink', 'm-m-s', 'salad-rocket', 'bread-spelt',
+         'pizza-with-ham-with-mushrooms-baked', 'fruit-coulis', 'plums',
+         'beef-minced-only-meat', 'pizza-with-ham-baked', 'pineapple',
+         'soup-tomato', 'cheddar', 'tea-fruit', 'rice-jasmin', 'seeds',
+         'focaccia', 'milk', 'coleslaw-chopped-without-sauce', 'pastry-flaky',
+         'curd', 'savoury-puff-pastry-stick', 'sweet-potato', 'chicken-leg',
+         'croissant', 'sour-cream', 'ham-turkey', 'processed-cheese',
+         'fruit-compotes', 'cheesecake', 'pasta-tortelloni-stuffing',
+         'sauce-cocktail', 'croissant-with-chocolate-filling', 'pumpkin-seeds',
+         'artichoke', 'champagne', 'grissini', 'sweets-candies', 'brie',
+         'wienerli-swiss-sausage', 'syrup-diluted-ready-to-drink', 'apple-pie',
+         'white-bread-with-butter-eggs-and-milk', 'savoury-puff-pastry',
+         'anchovies', 'tuna-in-oil-drained', 'lemon-pie', 'meat-terrine-pate',
+         'coriander', 'falafel-balls', 'berries',
+         'latte-macchiato-with-caffeine', 'faux-mage-cashew-vegan-chers',
+         'beans-white', 'sugar-melon', 'mixed-seeds', 'hamburger',
+         'hamburger-bun', 'oil-vinegar-salad-dressing',
+         'soya-yaourt-yahourt-yogourt-ou-yoghourt',
+         'chocolate-milk-chocolate-drink', 'celeriac', 'chocolate-mousse',
+         'cenovis-yeast-spread', 'thickened-cream-35', 'meringue', 'lamb-chop',
+         'shrimp-prawn-large', 'beef', 'lemon', 'croque-monsieur', 'chives',
+         'chocolate-cookies', 'birchermuesli-prepared-no-sugar-added',
+         'fish-crunchies-battered', 'muffin',
+         'savoy-cabbage-steamed-without-addition-of-salt', 'pine-nuts',
+         'chorizo', 'chia-grains', 'frying-sausage',
+         'french-pizza-from-alsace-baked', 'chocolate', 'cooked-sausage',
+         'grits-polenta-maize-flour',
+         'gummi-bears-fruit-jellies-jelly-babies-with-fruit-essence',
+         'wine-rose', 'coca-cola', 'raspberries',
+         'roll-with-pieces-of-chocolate', 'goat-average-raw', 'lemon-cake',
+         'coconut-milk', 'rice-wild', 'gluten-free-bread', 'pearl-onions',
+         'buckwheat-pancake', 'bread-5-grain', 'light-beer', 'sugar-glazing',
+         'tzatziki', 'butter-herb', 'ham-croissant', 'corn-crisps',
+         'lentils-green-du-puy-du-berry', 'cocktail', 'rice-whole-grain',
+         'veal-sausage', 'cervelat', 'sorbet',
+         'aperitif-with-alcohol-aperol-spritz', 'dips', 'corn-flakes', 'peas',
+         'tiramisu', 'apricots', 'cake-marble', 'lamb',
+         'lasagne-meat-prepared', 'coca-cola-zero', 'cake-salted',
+         'dough-puff-pastry-shortcrust-bread-pizza-dough', 'rice-waffels',
+         'sekt', 'brioche', 'vegetable-au-gratin-baked', 'mango-dried',
+         'processed-meat-charcuterie', 'mousse', 'sauce-sweet-sour', 'basil',
+         'butter-spread-puree-almond', 'pie-apricot-baked-with-cake-dough',
+         'rusk-wholemeal', 'beef-roast',
+         'vanille-cream-cooked-custard-creme-dessert', 'pasta-in-conch-form',
+         'nuts', 'sauce-carbonara', 'fig-dried',
+         'pasta-in-butterfly-form-farfalle', 'minced-meat',
+         'carrot-steamed-without-addition-of-salt', 'ebly', 'damson-plum',
+         'shoots', 'bouquet-garni', 'coconut', 'banana-cake', 'waffle',
+         'apricot-dried', 'sauce-curry', 'watermelon-fresh',
+         'sauce-sweet-salted-asian', 'pork-roast', 'blackberry',
+         'smoked-cooked-sausage-of-pork-and-beef-meat-sausag', 'bean-seeds',
+         'italian-salad-dressing', 'white-asparagus',
+         'pie-rhubarb-baked-with-cake-dough',
+         'tomato-stewed-without-addition-of-fat-without-addition-of-salt',
+         'cherries', 'nectarine')))
+evaluation = dict(interval=1, metric=['segm'])
+optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001)
+optimizer_config = dict(grad_clip=None)
+lr_config = dict(
+    policy='CosineAnnealing',
+    by_epoch=False,
+    warmup='linear',
+    warmup_iters=2000,
+    warmup_ratio=0.001,
+    min_lr=1e-07)
+runner = dict(type='EpochBasedRunner', max_epochs=20)
+checkpoint_config = dict(interval=1)
+log_config = dict(
+    interval=1,
+    hooks=[dict(type='TextLoggerHook'),
+           dict(type='TensorboardLoggerHook')])
+custom_hooks = [dict(type='NumClassCheckHook')]
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = '/home/nick/iggotsul/mmdetection/checkpoints/decoupled_solo_r50_fpn_3x_coco.pth'
+resume_from = None
+workflow = [('train', 1)]
+model = dict(
+    type='SOLO',
+    backbone=dict(
+        type='ResNet',
+        depth=50,
+        num_stages=4,
+        out_indices=(0, 1, 2, 3),
+        frozen_stages=1,
+        init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50'),
+        style='pytorch'),
+    neck=dict(
+        type='FPN',
+        in_channels=[256, 512, 1024, 2048],
+        out_channels=256,
+        start_level=0,
+        num_outs=5),
+    mask_head=dict(
+        type='DecoupledSOLOHead',
+        num_classes=498,
+        in_channels=256,
+        stacked_convs=7,
+        feat_channels=256,
+        strides=[8, 8, 16, 32, 32],
+        scale_ranges=((1, 96), (48, 192), (96, 384), (192, 768), (384, 2048)),
+        pos_scale=0.2,
+        num_grids=[40, 36, 24, 16, 12],
+        cls_down_index=0,
+        loss_mask=dict(
+            type='DiceLoss', use_sigmoid=True, loss_weight=3.0,
+            activate=False),
+        loss_cls=dict(
+            type='FocalLoss',
+            use_sigmoid=True,
+            gamma=2.0,
+            alpha=0.25,
+            loss_weight=1.0),
+        norm_cfg=dict(type='GN', num_groups=32, requires_grad=True)),
+    test_cfg=dict(
+        nms_pre=500,
+        score_thr=0.1,
+        mask_thr=0.5,
+        filter_thr=0.05,
+        kernel='gaussian',
+        sigma=2.0,
+        max_per_img=100))
+work_dir = './training_files/solo'
+seed = 666
+total_epochs = 20
+classes = (
+    'bread-wholemeal', 'jam', 'water', 'bread-sourdough', 'banana',
+    'soft-cheese', 'ham-raw', 'hard-cheese', 'cottage-cheese',
+    'bread-half-white', 'coffee-with-caffeine', 'fruit-salad', 'pancakes',
+    'tea', 'salmon-smoked', 'avocado', 'spring-onion-scallion',
+    'ristretto-with-caffeine', 'ham', 'egg', 'bacon-frying',
+    'chips-french-fries', 'juice-apple', 'chicken', 'tomato-raw', 'broccoli',
+    'shrimp-boiled', 'beetroot-steamed-without-addition-of-salt', 'carrot-raw',
+    'chickpeas', 'french-salad-dressing', 'pasta-hornli', 'sauce-cream',
+    'meat-balls', 'pasta', 'tomato-sauce', 'cheese', 'pear', 'cashew-nut',
+    'almonds', 'lentils', 'mixed-vegetables', 'peanut-butter', 'apple',
+    'blueberries', 'cucumber', 'cocoa-powder',
+    'greek-yaourt-yahourt-yogourt-ou-yoghourt', 'maple-syrup-concentrate',
+    'buckwheat-grain-peeled', 'butter', 'herbal-tea', 'mayonnaise',
+    'soup-vegetable', 'wine-red', 'wine-white',
+    'green-bean-steamed-without-addition-of-salt', 'sausage',
+    'pizza-margherita-baked', 'salami', 'mushroom',
+    'bread-meat-substitute-lettuce-sauce', 'tart', 'tea-verveine', 'rice',
+    'white-coffee-with-caffeine', 'linseeds', 'sunflower-seeds', 'ham-cooked',
+    'bell-pepper-red-raw', 'zucchini', 'green-asparagus', 'tartar-sauce',
+    'lye-pretzel-soft', 'cucumber-pickled', 'curry-vegetarian',
+    'yaourt-yahourt-yogourt-ou-yoghourt-natural', 'soup-of-lentils-dahl-dhal',
+    'soup-cream-of-vegetables', 'balsamic-vinegar', 'salmon',
+    'salt-cake-vegetables-filled', 'bacon', 'orange', 'pasta-noodles', 'cream',
+    'cake-chocolate', 'pasta-spaghetti', 'black-olives', 'parmesan',
+    'spaetzle', 'salad-lambs-ear', 'salad-leaf-salad-green',
+    'potatoes-steamed', 'white-cabbage', 'halloumi', 'beetroot-raw',
+    'bread-grain', 'applesauce-unsweetened-canned', 'cheese-for-raclette',
+    'mushrooms', 'bread-white', 'curds-natural-with-at-most-10-fidm',
+    'bagel-without-filling', 'quiche-with-cheese-baked-with-puff-pastry',
+    'soup-potato', 'bouillon-vegetable', 'beef-sirloin-steak',
+    'taboule-prepared-with-couscous', 'eggplant', 'bread',
+    'turnover-with-meat-small-meat-pie-empanadas', 'mungbean-sprouts',
+    'mozzarella', 'pasta-penne', 'lasagne-vegetable-prepared', 'mandarine',
+    'kiwi', 'french-beans', 'tartar-meat', 'spring-roll-fried', 'pork-chop',
+    'caprese-salad-tomato-mozzarella', 'leaf-spinach',
+    'roll-of-half-white-or-white-flour-with-large-void',
+    'pasta-ravioli-stuffing', 'omelette-plain', 'tuna', 'dark-chocolate',
+    'sauce-savoury', 'dried-raisins', 'ice-tea', 'kaki', 'macaroon',
+    'smoothie', 'crepe-plain', 'chicken-nuggets', 'chili-con-carne-prepared',
+    'veggie-burger', 'cream-spinach', 'cod', 'chinese-cabbage',
+    'hamburger-bread-meat-ketchup', 'soup-pumpkin', 'sushi', 'chestnuts',
+    'coffee-decaffeinated', 'sauce-soya', 'balsamic-salad-dressing',
+    'pasta-twist', 'bolognaise-sauce', 'leek', 'fajita-bread-only',
+    'potato-gnocchi', 'beef-cut-into-stripes-only-meat',
+    'rice-noodles-vermicelli', 'tea-ginger', 'tea-green', 'bread-whole-wheat',
+    'onion', 'garlic', 'hummus', 'pizza-with-vegetables-baked', 'beer',
+    'glucose-drink-50g', 'chicken-wing', 'ratatouille', 'peanut',
+    'high-protein-pasta-made-of-lentils-peas', 'cauliflower',
+    'quiche-with-spinach-baked-with-cake-dough', 'green-olives', 'brazil-nut',
+    'eggplant-caviar', 'bread-pita', 'pasta-wholemeal', 'sauce-pesto', 'oil',
+    'couscous', 'sauce-roast', 'prosecco', 'crackers', 'bread-toast',
+    'shrimp-prawn-small', 'panna-cotta', 'romanesco', 'water-with-lemon-juice',
+    'espresso-with-caffeine', 'egg-scrambled-prepared', 'juice-orange',
+    'ice-cubes', 'braided-white-loaf', 'emmental-cheese',
+    'croissant-wholegrain',
+    'hazelnut-chocolate-spread-nutella-ovomaltine-caotina', 'tomme',
+    'water-mineral', 'hazelnut', 'bacon-raw', 'bread-nut', 'black-forest-tart',
+    'soup-miso', 'peach', 'figs', 'beef-filet', 'mustard-dijon',
+    'rice-basmati', 'mashed-potatoes-prepared-with-full-fat-milk-with-butter',
+    'dumplings', 'pumpkin', 'swiss-chard', 'red-cabbage', 'spinach-raw',
+    'naan-indien-bread', 'chicken-curry-cream-coconut-milk-curry-spices-paste',
+    'crunch-muesli', 'biscuits', 'bread-french-white-flour', 'meatloaf',
+    'fresh-cheese', 'honey', 'vegetable-mix-peas-and-carrots', 'parsley',
+    'brownie', 'dairy-ice-cream', 'tea-black', 'carrot-cake',
+    'fish-fingers-breaded', 'salad-dressing', 'dried-meat', 'chicken-breast',
+    'mixed-salad-chopped-without-sauce', 'feta', 'praline', 'tea-peppermint',
+    'walnut', 'potato-salad-with-mayonnaise-yogurt-dressing',
+    'kebab-in-pita-bread', 'kolhrabi', 'alfa-sprouts', 'brussel-sprouts',
+    'bacon-cooking', 'gruyere', 'bulgur', 'grapes', 'pork-escalope',
+    'chocolate-egg-small', 'cappuccino',
+    'zucchini-stewed-without-addition-of-fat-without-addition-of-salt',
+    'crisp-bread-wasa', 'bread-black', 'perch-fillets-lake', 'rosti', 'mango',
+    'sandwich-ham-cheese-and-butter', 'muesli',
+    'spinach-steamed-without-addition-of-salt', 'fish',
+    'risotto-without-cheese-cooked', 'milk-chocolate-with-hazelnuts',
+    'cake-oblong', 'crisps', 'pork', 'pomegranate', 'sweet-corn-canned',
+    'flakes-oat', 'greek-salad', 'cantonese-fried-rice', 'sesame-seeds',
+    'bouillon', 'baked-potato', 'fennel', 'meat', 'bread-olive', 'croutons',
+    'philadelphia',
+    'mushroom-average-stewed-without-addition-of-fat-without-addition-of-salt',
+    'bell-pepper-red-stewed-without-addition-of-fat-without-addition-of-salt',
+    'white-chocolate', 'mixed-nuts', 'breadcrumbs-unspiced', 'fondue',
+    'sauce-mushroom', 'tea-spice', 'strawberries', 'tea-rooibos',
+    'pie-plum-baked-with-cake-dough', 'potatoes-au-gratin-dauphinois-prepared',
+    'capers', 'vegetables', 'bread-wholemeal-toast', 'red-radish',
+    'fruit-tart', 'beans-kidney', 'sauerkraut', 'mustard', 'country-fries',
+    'ketchup', 'pasta-linguini-parpadelle-tagliatelle',
+    'chicken-cut-into-stripes-only-meat', 'cookies', 'sun-dried-tomatoe',
+    'bread-ticino', 'semi-hard-cheese', 'margarine',
+    'porridge-prepared-with-partially-skimmed-milk', 'soya-drink-soy-milk',
+    'juice-multifruit', 'popcorn-salted', 'chocolate-filled', 'milk-chocolate',
+    'bread-fruit', 'mix-of-dried-fruits-and-nuts', 'corn', 'tete-de-moine',
+    'dates', 'pistachio', 'celery', 'white-radish', 'oat-milk', 'cream-cheese',
+    'bread-rye', 'witloof-chicory', 'apple-crumble', 'goat-cheese-soft',
+    'grapefruit-pomelo', 'risotto-with-mushrooms-cooked', 'blue-mould-cheese',
+    'biscuit-with-butter', 'guacamole', 'pecan-nut', 'tofu',
+    'cordon-bleu-from-pork-schnitzel-fried', 'paprika-chips', 'quinoa',
+    'kefir-drink', 'm-m-s', 'salad-rocket', 'bread-spelt',
+    'pizza-with-ham-with-mushrooms-baked', 'fruit-coulis', 'plums',
+    'beef-minced-only-meat', 'pizza-with-ham-baked', 'pineapple',
+    'soup-tomato', 'cheddar', 'tea-fruit', 'rice-jasmin', 'seeds', 'focaccia',
+    'milk', 'coleslaw-chopped-without-sauce', 'pastry-flaky', 'curd',
+    'savoury-puff-pastry-stick', 'sweet-potato', 'chicken-leg', 'croissant',
+    'sour-cream', 'ham-turkey', 'processed-cheese', 'fruit-compotes',
+    'cheesecake', 'pasta-tortelloni-stuffing', 'sauce-cocktail',
+    'croissant-with-chocolate-filling', 'pumpkin-seeds', 'artichoke',
+    'champagne', 'grissini', 'sweets-candies', 'brie',
+    'wienerli-swiss-sausage', 'syrup-diluted-ready-to-drink', 'apple-pie',
+    'white-bread-with-butter-eggs-and-milk', 'savoury-puff-pastry',
+    'anchovies', 'tuna-in-oil-drained', 'lemon-pie', 'meat-terrine-pate',
+    'coriander', 'falafel-balls', 'berries', 'latte-macchiato-with-caffeine',
+    'faux-mage-cashew-vegan-chers', 'beans-white', 'sugar-melon',
+    'mixed-seeds', 'hamburger', 'hamburger-bun', 'oil-vinegar-salad-dressing',
+    'soya-yaourt-yahourt-yogourt-ou-yoghourt',
+    'chocolate-milk-chocolate-drink', 'celeriac', 'chocolate-mousse',
+    'cenovis-yeast-spread', 'thickened-cream-35', 'meringue', 'lamb-chop',
+    'shrimp-prawn-large', 'beef', 'lemon', 'croque-monsieur', 'chives',
+    'chocolate-cookies', 'birchermuesli-prepared-no-sugar-added',
+    'fish-crunchies-battered', 'muffin',
+    'savoy-cabbage-steamed-without-addition-of-salt', 'pine-nuts', 'chorizo',
+    'chia-grains', 'frying-sausage', 'french-pizza-from-alsace-baked',
+    'chocolate', 'cooked-sausage', 'grits-polenta-maize-flour',
+    'gummi-bears-fruit-jellies-jelly-babies-with-fruit-essence', 'wine-rose',
+    'coca-cola', 'raspberries', 'roll-with-pieces-of-chocolate',
+    'goat-average-raw', 'lemon-cake', 'coconut-milk', 'rice-wild',
+    'gluten-free-bread', 'pearl-onions', 'buckwheat-pancake', 'bread-5-grain',
+    'light-beer', 'sugar-glazing', 'tzatziki', 'butter-herb', 'ham-croissant',
+    'corn-crisps', 'lentils-green-du-puy-du-berry', 'cocktail',
+    'rice-whole-grain', 'veal-sausage', 'cervelat', 'sorbet',
+    'aperitif-with-alcohol-aperol-spritz', 'dips', 'corn-flakes', 'peas',
+    'tiramisu', 'apricots', 'cake-marble', 'lamb', 'lasagne-meat-prepared',
+    'coca-cola-zero', 'cake-salted',
+    'dough-puff-pastry-shortcrust-bread-pizza-dough', 'rice-waffels', 'sekt',
+    'brioche', 'vegetable-au-gratin-baked', 'mango-dried',
+    'processed-meat-charcuterie', 'mousse', 'sauce-sweet-sour', 'basil',
+    'butter-spread-puree-almond', 'pie-apricot-baked-with-cake-dough',
+    'rusk-wholemeal', 'beef-roast',
+    'vanille-cream-cooked-custard-creme-dessert', 'pasta-in-conch-form',
+    'nuts', 'sauce-carbonara', 'fig-dried', 'pasta-in-butterfly-form-farfalle',
+    'minced-meat', 'carrot-steamed-without-addition-of-salt', 'ebly',
+    'damson-plum', 'shoots', 'bouquet-garni', 'coconut', 'banana-cake',
+    'waffle', 'apricot-dried', 'sauce-curry', 'watermelon-fresh',
+    'sauce-sweet-salted-asian', 'pork-roast', 'blackberry',
+    'smoked-cooked-sausage-of-pork-and-beef-meat-sausag', 'bean-seeds',
+    'italian-salad-dressing', 'white-asparagus',
+    'pie-rhubarb-baked-with-cake-dough',
+    'tomato-stewed-without-addition-of-fat-without-addition-of-salt',
+    'cherries', 'nectarine')
+gpu_ids = [2]
diff --git a/run.sh b/run.sh
index 23778bbcf62fdc6ec52aedc8087fcd89a69e054b..ec73fca1931ab042ae68d67d030f0df67b1a45dc 100755
--- a/run.sh
+++ b/run.sh
@@ -1,2 +1,3 @@
 #!/bin/bash
-python predict.py
+python test.py ./configs/solo.py ./models/epoch_20.pth --json_out $AICROWD_PREDICTIONS_OUTPUT_PATH
+
diff --git a/test.py b/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..f16ac635cd518c15874d63e0d0d2239dc2913a09
--- /dev/null
+++ b/test.py
@@ -0,0 +1,238 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import argparse
+import os
+import os.path as osp
+import time
+import warnings
+
+import mmcv
+import torch
+from mmcv import Config, DictAction
+from mmcv.cnn import fuse_conv_bn
+from mmcv.parallel import MMDataParallel, MMDistributedDataParallel
+from mmcv.runner import (get_dist_info, init_dist, load_checkpoint,
+                         wrap_fp16_model)
+
+from mmdet.apis import multi_gpu_test, single_gpu_test
+from mmdet.datasets import (build_dataloader, build_dataset,
+                            replace_ImageToTensor)
+from mmdet.models import build_detector
+
+
+def parse_args():
+    parser = argparse.ArgumentParser(
+        description='MMDet test (and eval) a model')
+    parser.add_argument('config', help='test config file path')
+    parser.add_argument('checkpoint', help='checkpoint file')
+    parser.add_argument(
+        '--work-dir',
+        help='the directory to save the file containing evaluation metrics')
+    parser.add_argument('--out', help='output result file in pickle format')
+    parser.add_argument(
+        '--fuse-conv-bn',
+        action='store_true',
+        help='Whether to fuse conv and bn, this will slightly increase'
+        'the inference speed')
+    parser.add_argument(
+        '--format-only',
+        action='store_true',
+        help='Format the output results without perform evaluation. It is'
+        'useful when you want to format the result to a specific format and '
+        'submit it to the test server')
+    parser.add_argument(
+        '--eval',
+        type=str,
+        nargs='+',
+        help='evaluation metrics, which depends on the dataset, e.g., "bbox",'
+        ' "segm", "proposal" for COCO, and "mAP", "recall" for PASCAL VOC')
+    parser.add_argument('--show', action='store_true', help='show results')
+    parser.add_argument(
+        '--show-dir', help='directory where painted images will be saved')
+    parser.add_argument(
+        '--show-score-thr',
+        type=float,
+        default=0.3,
+        help='score threshold (default: 0.3)')
+    parser.add_argument(
+        '--gpu-collect',
+        action='store_true',
+        help='whether to use gpu to collect results.')
+    parser.add_argument(
+        '--tmpdir',
+        help='tmp directory used for collecting results from multiple '
+        'workers, available when gpu-collect is not specified')
+    parser.add_argument(
+        '--cfg-options',
+        nargs='+',
+        action=DictAction,
+        help='override some settings in the used config, the key-value pair '
+        'in xxx=yyy format will be merged into config file. If the value to '
+        'be overwritten is a list, it should be like key="[a,b]" or key=a,b '
+        'It also allows nested list/tuple values, e.g. key="[(a,b),(c,d)]" '
+        'Note that the quotation marks are necessary and that no white space '
+        'is allowed.')
+    parser.add_argument(
+        '--options',
+        nargs='+',
+        action=DictAction,
+        help='custom options for evaluation, the key-value pair in xxx=yyy '
+        'format will be kwargs for dataset.evaluate() function (deprecate), '
+        'change to --eval-options instead.')
+    parser.add_argument(
+        '--eval-options',
+        nargs='+',
+        action=DictAction,
+        help='custom options for evaluation, the key-value pair in xxx=yyy '
+        'format will be kwargs for dataset.evaluate() function')
+    parser.add_argument(
+        '--launcher',
+        choices=['none', 'pytorch', 'slurm', 'mpi'],
+        default='none',
+        help='job launcher')
+    parser.add_argument('--local_rank', type=int, default=0)
+    args = parser.parse_args()
+    if 'LOCAL_RANK' not in os.environ:
+        os.environ['LOCAL_RANK'] = str(args.local_rank)
+
+    if args.options and args.eval_options:
+        raise ValueError(
+            '--options and --eval-options cannot be both '
+            'specified, --options is deprecated in favor of --eval-options')
+    if args.options:
+        warnings.warn('--options is deprecated in favor of --eval-options')
+        args.eval_options = args.options
+    return args
+
+
+def main():
+    args = parse_args()
+
+    assert args.out or args.eval or args.format_only or args.show \
+        or args.show_dir, \
+        ('Please specify at least one operation (save/eval/format/show the '
+         'results / save the results) with the argument "--out", "--eval"'
+         ', "--format-only", "--show" or "--show-dir"')
+
+    if args.eval and args.format_only:
+        raise ValueError('--eval and --format_only cannot be both specified')
+
+    if args.out is not None and not args.out.endswith(('.pkl', '.pickle')):
+        raise ValueError('The output file must be a pkl file.')
+
+    cfg = Config.fromfile(args.config)
+    if args.cfg_options is not None:
+        cfg.merge_from_dict(args.cfg_options)
+    # import modules from string list.
+    if cfg.get('custom_imports', None):
+        from mmcv.utils import import_modules_from_strings
+        import_modules_from_strings(**cfg['custom_imports'])
+    # set cudnn_benchmark
+    if cfg.get('cudnn_benchmark', False):
+        torch.backends.cudnn.benchmark = True
+
+    cfg.model.pretrained = None
+    if cfg.model.get('neck'):
+        if isinstance(cfg.model.neck, list):
+            for neck_cfg in cfg.model.neck:
+                if neck_cfg.get('rfp_backbone'):
+                    if neck_cfg.rfp_backbone.get('pretrained'):
+                        neck_cfg.rfp_backbone.pretrained = None
+        elif cfg.model.neck.get('rfp_backbone'):
+            if cfg.model.neck.rfp_backbone.get('pretrained'):
+                cfg.model.neck.rfp_backbone.pretrained = None
+
+    # in case the test dataset is concatenated
+    samples_per_gpu = 1
+    if isinstance(cfg.data.test, dict):
+        cfg.data.test.test_mode = True
+        samples_per_gpu = cfg.data.test.pop('samples_per_gpu', 1)
+        if samples_per_gpu > 1:
+            # Replace 'ImageToTensor' to 'DefaultFormatBundle'
+            cfg.data.test.pipeline = replace_ImageToTensor(
+                cfg.data.test.pipeline)
+    elif isinstance(cfg.data.test, list):
+        for ds_cfg in cfg.data.test:
+            ds_cfg.test_mode = True
+        samples_per_gpu = max(
+            [ds_cfg.pop('samples_per_gpu', 1) for ds_cfg in cfg.data.test])
+        if samples_per_gpu > 1:
+            for ds_cfg in cfg.data.test:
+                ds_cfg.pipeline = replace_ImageToTensor(ds_cfg.pipeline)
+
+    # init distributed env first, since logger depends on the dist info.
+    if args.launcher == 'none':
+        distributed = False
+    else:
+        distributed = True
+        init_dist(args.launcher, **cfg.dist_params)
+
+    rank, _ = get_dist_info()
+    # allows not to create
+    if args.work_dir is not None and rank == 0:
+        mmcv.mkdir_or_exist(osp.abspath(args.work_dir))
+        timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime())
+        json_file = osp.join(args.work_dir, f'eval_{timestamp}.json')
+
+    # build the dataloader
+    dataset = build_dataset(cfg.data.test)
+    data_loader = build_dataloader(
+        dataset,
+        samples_per_gpu=samples_per_gpu,
+        workers_per_gpu=cfg.data.workers_per_gpu,
+        dist=distributed,
+        shuffle=False)
+
+    # build the model and load checkpoint
+    cfg.model.train_cfg = None
+    model = build_detector(cfg.model, test_cfg=cfg.get('test_cfg'))
+    fp16_cfg = cfg.get('fp16', None)
+    if fp16_cfg is not None:
+        wrap_fp16_model(model)
+    checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu')
+    if args.fuse_conv_bn:
+        model = fuse_conv_bn(model)
+    # old versions did not save class info in checkpoints, this walkaround is
+    # for backward compatibility
+    if 'CLASSES' in checkpoint.get('meta', {}):
+        model.CLASSES = checkpoint['meta']['CLASSES']
+    else:
+        model.CLASSES = dataset.CLASSES
+
+    if not distributed:
+        model = MMDataParallel(model, device_ids=[0])
+        outputs = single_gpu_test(model, data_loader, args.show, args.show_dir,
+                                  args.show_score_thr)
+    else:
+        model = MMDistributedDataParallel(
+            model.cuda(),
+            device_ids=[torch.cuda.current_device()],
+            broadcast_buffers=False)
+        outputs = multi_gpu_test(model, data_loader, args.tmpdir,
+                                 args.gpu_collect)
+
+    rank, _ = get_dist_info()
+    if rank == 0:
+        if args.out:
+            print(f'\nwriting results to {args.out}')
+            mmcv.dump(outputs, args.out)
+        kwargs = {} if args.eval_options is None else args.eval_options
+        if args.format_only:
+            dataset.format_results(outputs, **kwargs)
+        if args.eval:
+            eval_kwargs = cfg.get('evaluation', {}).copy()
+            # hard-code way to remove EvalHook args
+            for key in [
+                    'interval', 'tmpdir', 'start', 'gpu_collect', 'save_best',
+                    'rule'
+            ]:
+                eval_kwargs.pop(key, None)
+            eval_kwargs.update(dict(metric=args.eval, **kwargs))
+            metric = dataset.evaluate(outputs, **eval_kwargs)
+            print(metric)
+            metric_dict = dict(config=args.config, metric=metric)
+            if args.work_dir is not None and rank == 0:
+                mmcv.dump(metric_dict, json_file)
+
+
+if __name__ == '__main__':
+    main()