{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import sys\nsys.path.append(\"../input/timmmaster/\")\nimport timm\nimport os\nimport torch\nfrom zipfile import ZipFile\nimport torch.nn as nn\nfrom torchvision import models\nfrom torchvision import transforms","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"if not os.path.exists('/root/.cache/torch/hub/checkpoints/'):\n    os.makedirs('/root/.cache/torch/hub/checkpoints/')\n!cp '../input/convnext-weights/convnext/convnext_xlarge_22k_224.pth' '/root/.cache/torch/hub/checkpoints/convnext_xlarge_22k_224.pth'","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"base_model = timm.create_model(\"convnext_xlarge_in22k\", pretrained=True)    ","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"class MyModel(nn.Module):\n  def __init__(self):\n    super().__init__()\n    this_model = base_model\n    this_model.head.fc = nn.AdaptiveAvgPool1d(64)\n\n    self.feature_extractor = this_model\n\n  def forward(self, x):\n    x = transforms.functional.resize(x,size=[224, 224])\n    x = x/255.0\n    x = transforms.functional.normalize(x, \n                                            mean=[0.485, 0.456, 0.406], \n                                            std=[0.229, 0.224, 0.225])\n    return self.feature_extractor(x)\n\nmodel = MyModel()\n\nmodel.eval()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"saved_model = torch.jit.script(model)\nsaved_model.save('saved_model.pt')\n\nwith ZipFile('submission.zip','w') as zip:           \n  zip.write(\"./saved_model.pt\", arcname='saved_model.pt') ","metadata":{},"execution_count":null,"outputs":[]}]}