330+ 個機器學習模型、庫探索工具!Papers With Code 重磅推出!

紅色石頭發表於2021-03-03

今天給大家推薦一個硬核乾貨:一個基於 PyTorch 的影像模型庫(PyTorch Image Models,TIMM),用於最新影像分類。

這個庫從 330+ 種預訓練的最新影像分類模型中進行選擇,方便我們使用提供的指令碼在 ImageNet 等研究資料集上重新訓練模型。而且,可以在自己的資料集上微調預訓練的模型,包括最新的前沿模型。

話不多說,直接放上 TIMM 的開源地址:

https://paperswithcode.com/lib/timm

TIMM 包含的模型很豐富,例如:

  • Vision Transformer
  • RexNet

  • CSP DarkNet

  • ResNeSt

  • TResNet

  • RegNetX

  • RegNetY

  • EfficientNet Pruned

  • Big Transfer

  • CSP ResNet

下面以 Vision Transformer 為例,看看這個庫包含了哪些內容!

Vision Transformer 將輸入圖片拆分成 16×16個patches,每個 patch 做一次線性變換降維同時嵌入位置資訊,然後送入 Transformer,避免了畫素級 attention 的運算。

https://paperswithcode.com/lib/timm/vision-transformer

Vision Transformer 支援的模型有 vit_base_patch16_224、vit_base_patch16_384、vit_base_resnet50_384 等等。vit_base_patch16_224 包含的引數為 87 million,FLOPs 為 67 billion,檔案大小為 330.25 Mb,訓練集為 ImageNet,訓練資源為 TPUv3。

詳細的訓練引數如下:

作者給出了 Paper 地址:

https://arxiv.org/abs/2010.11929v1

完整程式碼:

https://github.com/rwightman/pytorch-image-models/blob/5f9aff395c224492e9e44248b15f44b5cc095d9c/timm/models/vision_transformer.py#L503

權重檔案:

[https://github-releases.githubusercontent.com/168799526/65360900-1a09-11eb-8b86-f0a014a6f156?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210301T142533Z&X-Amz-Expires=300&X-Amz-Signature=dd5f6097d17aa535123ad040855f737354442b69683756b0dcdf8f5fda8da6d8&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=168799526&response-content-disposition=attachment%3B%20filename%3Djx_vit_base_p16_224-80ecf9dd.pth&response-content-type=application%2Foctet-stream](https://github-releases.githubusercontent.com/168799526/65360900-1a09-11eb-8b86-f0a014a6f156?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210301T142533Z&X-Amz-Expires=300&X-Amz-Signature=dd5f6097d17aa535123ad040855f737354442b69683756b0dcdf8f5fda8da6d8&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=168799526&response-content-disposition=attachment%3B%20filename%3Djx_vit_base_p16_224-80ecf9dd.pth&response-content-type=application%2Foctet-stream

如何使用?

匯入預訓練模型:

import timm
m = timm.create_model('vit_large_patch16_224', pretrained=True)
m.eval()

用你要使用的型號替換型號名稱,例如 vit_large_patch16_224。

如何訓練模型?

你可以使用 TIMM 的指令碼來重新訓練新模型,連結:

https://rwightman.github.io/pytorch-image-models/scripts/

結果比較

不同模型在 ImageNet 上測試的結果如下:

更多精彩的功能還等著大家去挖掘和發現!最後再次放上該庫的地址:

https://paperswithcode.com/lib/timm


相關文章