Transformers 文件

ResNet

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

ResNet

PyTorch TensorFlow Flax

概述

ResNet 模型由 Kaiming He、Xiangyu Zhang、Shaoqing Ren 和 Jian Sun 在論文 Deep Residual Learning for Image Recognition 中提出。我們的實現遵循了 Nvidia 所做的一些小改動,我們將 `stride=2` 應用於 bottleneck 模組的 `3x3` 卷積中,而不是在第一個 `1x1` 卷積中進行下采樣。這通常被稱為“ResNet v1.5”。

ResNet 引入了殘差連線,這使得訓練層數前所未有的網路(多達 1000 層)成為可能。ResNet 贏得了 2015 年 ILSVRC 和 COCO 競賽,是深度計算機視覺領域的一個重要里程碑。

論文摘要如下:

更深的神經網路更難訓練。我們提出了一種殘差學習框架,以簡化比以往使用的網路更深層次的網路的訓練。我們明確地將網路層重構為學習相對於層輸入的殘差函式,而不是學習無參照的函式。我們提供了全面的經驗證據,表明這些殘差網路更容易最佳化,並且可以透過顯著增加深度來提高準確性。在 ImageNet 資料集上,我們評估了深度高達 152 層的殘差網路——比 VGG 網路深 8 倍,但複雜度仍然更低。這些殘差網路的整合在 ImageNet 測試集上實現了 3.57% 的錯誤率。這一結果在 ILSVRC 2015 分類任務中獲得了第一名。我們還分析了在 CIFAR-10 上使用 100 層和 1000 層的網路。表徵的深度對於許多視覺識別任務至關重要。僅憑我們極深的表徵,我們就在 COCO 目標檢測資料集上獲得了 28% 的相對改進。深度殘差網路是我們參加 ILSVRC 和 COCO 2015 競賽的基礎,我們在 ImageNet 檢測、ImageNet 定位、COCO 檢測和 COCO 分割等任務中也獲得了第一名。

下圖展示了 ResNet 的架構。圖片來自原始論文

該模型由 Francesco 貢獻。該模型的 TensorFlow 版本由 amyeroberts 新增。原始程式碼可以在這裡找到。

資源

一份官方 Hugging Face 和社群(由 🌎 表示)資源列表,幫助您開始使用 ResNet。

影像分類

如果您有興趣在此處提交資源,請隨時開啟 Pull Request,我們將對其進行審查!該資源最好能展示一些新內容,而不是重複現有資源。

ResNetConfig

class transformers.ResNetConfig

< >

( num_channels = 3 embedding_size = 64 hidden_sizes = [256, 512, 1024, 2048] depths = [3, 4, 6, 3] layer_type = 'bottleneck' hidden_act = 'relu' downsample_in_first_stage = False downsample_in_bottleneck = False out_features = None out_indices = None **kwargs )

引數

  • num_channels (int, 可選, 預設為 3) — 輸入通道數。
  • embedding_size (int, 可選, 預設為 64) — 嵌入層的維度(隱藏層大小)。
  • hidden_sizes (list[int], 可選, 預設為 [256, 512, 1024, 2048]) — 每個階段的維度(隱藏層大小)。
  • depths (list[int], 可選, 預設為 [3, 4, 6, 3]) — 每個階段的深度(層數)。
  • layer_type (str, 可選, 預設為 "bottleneck") — 要使用的層,可以是 "basic"(用於較小的模型,如 resnet-18 或 resnet-34)或 "bottleneck"(用於較大的模型,如 resnet-50 及以上)。
  • hidden_act (str, 可選, 預設為 "relu") — 每個塊中的非線性啟用函式。如果是字串,則支援 "gelu""relu""selu""gelu_new"
  • downsample_in_first_stage (bool, 可選, 預設為 False) — 如果為 True,第一階段將使用步長為 2 對輸入進行下采樣。
  • downsample_in_bottleneck (bool, 可選, 預設為 False) — 如果為 True,ResNetBottleNeckLayer 中的第一個 1x1 卷積將使用步長為 2 對輸入進行下采樣。
  • out_features (list[str], 可選) — 如果用作骨幹網路,則為要輸出的特徵列表。可以是 "stem""stage1""stage2" 等中的任何一個(取決於模型有多少個階段)。如果未設定且 out_indices 已設定,則預設為相應的階段。如果未設定且 out_indices 也未設定,則預設為最後一個階段。必須與 stage_names 屬性中定義的順序相同。
  • out_indices (list[int], 可選) — 如果用作骨幹網路,則為要輸出的特徵的索引列表。可以是 0、1、2 等中的任何一個(取決於模型有多少個階段)。如果未設定且 out_features 已設定,則預設為相應的階段。如果未設定且 out_features 也未設定,則預設為最後一個階段。必須與 stage_names 屬性中定義的順序相同。

這是用於儲存 ResNetModel 配置的配置類。它用於根據指定的引數例項化一個 ResNet 模型,定義模型架構。使用預設值例項化配置將產生與 ResNet microsoft/resnet-50 架構相似的配置。

配置物件繼承自 PretrainedConfig,可用於控制模型輸出。有關更多資訊,請閱讀 PretrainedConfig 的文件。

示例

>>> from transformers import ResNetConfig, ResNetModel

>>> # Initializing a ResNet resnet-50 style configuration
>>> configuration = ResNetConfig()

>>> # Initializing a model (with random weights) from the resnet-50 style configuration
>>> model = ResNetModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
Pytorch
隱藏 Pytorch 內容

ResNetModel

class transformers.ResNetModel

< >

( config )

引數

  • config (ResNetModel) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法以載入模型權重。

基礎的 Resnet 模型,輸出原始的隱藏狀態,頂部沒有任何特定的頭部。

該模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

該模型也是 PyTorch 的 torch.nn.Module 子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與常規用法和行為相關的事項。

forward

< >

( pixel_values: Tensor output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_outputs.BaseModelOutputWithPoolingAndNoAttentiontuple(torch.FloatTensor)

引數

  • pixel_values (torch.Tensor,形狀為 (batch_size, num_channels, image_size, image_size)) — 對應於輸入影像的張量。畫素值可以使用 {image_processor_class} 獲得。有關詳細資訊,請參見 {image_processor_class}.__call__{processor_class} 使用 {image_processor_class} 處理影像)。
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 `hidden_states`。
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.modeling_outputs.BaseModelOutputWithPoolingAndNoAttentiontuple(torch.FloatTensor)

一個 transformers.modeling_outputs.BaseModelOutputWithPoolingAndNoAttention 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),包含各種元素,具體取決於配置(ResNetConfig)和輸入。

  • last_hidden_state (torch.FloatTensor, 形狀為 (batch_size, num_channels, height, width)) — 模型最後一層輸出的隱藏狀態序列。

  • pooler_output (torch.FloatTensor, 形狀為 (batch_size, hidden_size)) — 經過空間維度池化操作後的最後一層隱藏狀態。

  • hidden_states (tuple(torch.FloatTensor), 可選, 在傳遞 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(如果模型有嵌入層,則第一個為嵌入層的輸出,加上每個層的輸出),形狀為 (batch_size, num_channels, height, width)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

ResNetModel 的前向方法,重寫了 `__call__` 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

ResNetForImageClassification

class transformers.ResNetForImageClassification

< >

( config )

引數

  • config (ResNetForImageClassification) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法以載入模型權重。

ResNet 模型頂部帶有一個影像分類頭(在池化特徵之上加一個線性層),例如用於 ImageNet。

該模型繼承自 PreTrainedModel。請檢視超類文件,瞭解庫為所有模型實現的通用方法(例如下載或儲存、調整輸入嵌入大小、修剪頭部等)。

該模型也是 PyTorch 的 torch.nn.Module 子類。可以像常規 PyTorch 模組一樣使用它,並參考 PyTorch 文件瞭解所有與常規用法和行為相關的事項。

forward

< >

( pixel_values: typing.Optional[torch.FloatTensor] = None labels: typing.Optional[torch.LongTensor] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_outputs.ImageClassifierOutputWithNoAttentiontuple(torch.FloatTensor)

引數

  • pixel_values (torch.FloatTensor,形狀為 (batch_size, num_channels, image_size, image_size), 可選) — 對應於輸入影像的張量。畫素值可以使用 {image_processor_class} 獲得。有關詳細資訊,請參見 {image_processor_class}.__call__{processor_class} 使用 {image_processor_class} 處理影像)。
  • labels (torch.LongTensor,形狀為 (batch_size,), 可選) — 用於計算影像分類/迴歸損失的標籤。索引應在 [0, ..., config.num_labels - 1] 範圍內。如果 config.num_labels > 1,則計算分類損失(交叉熵)。
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 `hidden_states`。
  • return_dict (bool, 可選) — 是否返回 ModelOutput 而不是普通元組。

返回

transformers.modeling_outputs.ImageClassifierOutputWithNoAttentiontuple(torch.FloatTensor)

一個 transformers.modeling_outputs.ImageClassifierOutputWithNoAttention 或一個 torch.FloatTensor 元組(如果傳遞了 return_dict=False 或當 config.return_dict=False 時),包含各種元素,具體取決於配置(ResNetConfig)和輸入。

  • loss (形狀為 (1,)torch.FloatTensor可選,當提供 labels 時返回) — 分類損失(如果 config.num_labels==1,則為迴歸損失)。
  • logits (形狀為 (batch_size, config.num_labels)torch.FloatTensor) — 分類(如果 config.num_labels==1,則為迴歸)分數(SoftMax 之前)。
  • hidden_states (tuple(torch.FloatTensor), 可選, 在傳遞 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — torch.FloatTensor 的元組(如果模型有嵌入層,則第一個為嵌入層的輸出,加上每個階段的輸出),形狀為 (batch_size, num_channels, height, width)。模型在每個階段輸出的隱藏狀態(也稱為特徵圖)。

ResNetForImageClassification 的前向方法,重寫了 `__call__` 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, ResNetForImageClassification
>>> import torch
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = ResNetForImageClassification.from_pretrained("microsoft/resnet-50")

>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...
TensorFlow
隱藏 TensorFlow 內容

TFResNetModel

class transformers.TFResNetModel

< >

( config: ResNetConfig **kwargs )

引數

  • config (ResNetConfig) — 包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法以載入模型權重。

基礎的 ResNet 模型,輸出原始特徵,頂部沒有任何特定的頭部。該模型是 TensorFlow 的 keras.layers.Layer 子類。可以像常規 TensorFlow 模組一樣使用它,並參考 TensorFlow 文件瞭解所有與常規用法和行為相關的事項。

呼叫

< >

( pixel_values: Tensor output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None training: bool = False ) transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndNoAttentiontuple(tf.Tensor)

引數

  • pixel_values (tf.Tensor,形狀為 (batch_size, num_channels, height, width)) — 畫素值。畫素值可以使用 AutoImageProcessor 獲得。有關詳細資訊,請參見 ConvNextImageProcessor.__call__()
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回張量下的 `hidden_states`。
  • return_dict (bool, 可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。

返回

transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndNoAttentiontuple(tf.Tensor)

一個 transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndNoAttention 或一個 tf.Tensor 的元組(如果傳遞了 return_dict=Falseconfig.return_dict=False),包含根據配置(ResNetConfig)和輸入決定的各種元素。

  • last_hidden_state (形狀為 (batch_size, num_channels, height, width)tf.Tensor) — 模型最後一層輸出的隱藏狀態序列。

  • pooler_output (形狀為 (batch_size, hidden_size)tf.Tensor) — 在空間維度上進行池化操作後最後一層的隱藏狀態。

  • hidden_states (tuple(tf.Tensor), 可選,當傳遞 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — tf.Tensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 每個層的輸出各一個),形狀為 (batch_size, num_channels, height, width)

    模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

TFResNetModel 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, TFResNetModel
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = TFResNetModel.from_pretrained("microsoft/resnet-50")

>>> inputs = image_processor(image, return_tensors="tf")
>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 2048, 7, 7]

TFResNetForImageClassification

class transformers.TFResNetForImageClassification

< >

( config: ResNetConfig **kwargs )

引數

  • config (ResNetConfig) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。

ResNet 模型頂部帶有一個影像分類頭(在池化特徵之上加一個線性層),例如用於 ImageNet。

此模型是 TensorFlow keras.layers.Layer 的子類。請將其用作常規的 TensorFlow Module,並參考 TensorFlow 文件瞭解所有與常規用法和行為相關的事項。

呼叫

< >

( pixel_values: typing.Optional[tensorflow.python.framework.tensor.Tensor] = None labels: typing.Optional[tensorflow.python.framework.tensor.Tensor] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None training: bool = False ) transformers.modeling_tf_outputs.TFImageClassifierOutputWithNoAttentiontuple(tf.Tensor)

引數

  • pixel_values (tf.Tensor,形狀為 (batch_size, num_channels, height, width)) — 畫素值。畫素值可以透過 AutoImageProcessor 獲得。詳情請參閱 ConvNextImageProcessor.call()
  • output_hidden_states (bool, 可選) — 是否返回所有層的隱藏狀態。有關更多詳細資訊,請參閱返回的張量下的 hidden_states
  • return_dict (bool, 可選) — 是否返回一個 ModelOutput 而不是一個普通的元組。
  • labels (tf.Tensor,形狀為 (batch_size,)可選) — 用於計算影像分類/迴歸損失的標籤。索引應在 [0, ..., config.num_labels - 1] 範圍內。如果 config.num_labels > 1,則計算分類損失(交叉熵)。

返回

transformers.modeling_tf_outputs.TFImageClassifierOutputWithNoAttentiontuple(tf.Tensor)

一個 transformers.modeling_tf_outputs.TFImageClassifierOutputWithNoAttention 或一個 tf.Tensor 的元組(如果傳遞了 return_dict=Falseconfig.return_dict=False),包含根據配置(ResNetConfig)和輸入決定的各種元素。

  • loss (形狀為 (1,)tf.Tensor可選,當提供 labels 時返回) — 分類(如果 config.num_labels==1,則為迴歸)損失。
  • logits (tf.Tensor,形狀為 (batch_size, config.num_labels)) — 分類(或迴歸,如果 config.num_labels==1)分數(SoftMax 之前)。
  • hidden_states (tuple(tf.Tensor), 可選,當傳遞 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — tf.Tensor 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 每個階段的輸出各一個),形狀為 (batch_size, num_channels, height, width)。模型在每個階段輸出的隱藏狀態(也稱為特徵圖)。

TFResNetForImageClassification 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, TFResNetForImageClassification
>>> import tensorflow as tf
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image"))
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = TFResNetForImageClassification.from_pretrained("microsoft/resnet-50")

>>> inputs = image_processor(image, return_tensors="tf")
>>> logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = int(tf.math.argmax(logits, axis=-1))
>>> print(model.config.id2label[predicted_label])
tiger cat
JAX
隱藏 JAX 內容

FlaxResNetModel

class transformers.FlaxResNetModel

< >

( config: ResNetConfig input_shape = (1, 224, 224, 3) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True **kwargs )

引數

  • config (ResNetConfig) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。
  • dtype (jax.numpy.dtype, 可選, 預設為 jax.numpy.float32) — 計算的資料型別。可以是 jax.numpy.float32jax.numpy.float16 (在 GPU 上) 和 jax.numpy.bfloat16 (在 TPU 上) 之一。

    這可用於在 GPU 或 TPU 上啟用混合精度訓練或半精度推理。如果指定,所有計算都將使用給定的 dtype 執行。

    請注意,這僅指定計算的 dtype,不影響模型引數的 dtype。

    如果你希望更改模型引數的 dtype,請參閱 to_fp16()to_bf16()

一個基礎的 ResNet 模型,輸出原始特徵,頂部沒有任何特定的頭部。

此模型繼承自 FlaxPreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載、儲存和轉換 PyTorch 模型的權重)。

此模型也是 flax.linen.Module 的子類。請將其用作常規的 Flax linen Module,並參考 Flax 文件瞭解所有與常規用法和行為相關的事項。

最後,此模型支援固有的 JAX 功能,例如

__call__

< >

( pixel_values params: typing.Optional[dict] = None train: bool = False output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPoolingAndNoAttentiontuple(torch.FloatTensor)

返回

transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPoolingAndNoAttentiontuple(torch.FloatTensor)

一個 transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPoolingAndNoAttention 或一個 torch.FloatTensor 的元組(如果傳遞了 return_dict=Falseconfig.return_dict=False),包含根據配置(<class 'transformers.models.resnet.configuration_resnet.ResNetConfig'>)和輸入決定的各種元素。

  • last_hidden_state (jnp.ndarray,形狀為 (batch_size, num_channels, height, width)) — 模型最後一層輸出的隱藏狀態序列。
  • pooler_output (jnp.ndarray,形狀為 (batch_size, hidden_size)) — 最後一層隱藏狀態在空間維度上進行池化操作後的結果。
  • hidden_states (tuple(jnp.ndarray), 可選,當傳遞 output_hidden_states=Trueconfig.output_hidden_states=True 時返回) — jnp.ndarray 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 每個層的輸出各一個),形狀為 (batch_size, num_channels, height, width)。模型在每個層輸出的隱藏狀態以及可選的初始嵌入輸出。

FlaxResNetPreTrainedModel 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, FlaxResNetModel
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)
>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = FlaxResNetModel.from_pretrained("microsoft/resnet-50")
>>> inputs = image_processor(images=image, return_tensors="np")
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state

FlaxResNetForImageClassification

class transformers.FlaxResNetForImageClassification

< >

( config: ResNetConfig input_shape = (1, 224, 224, 3) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True **kwargs )

引數

  • config (ResNetConfig) — 包含模型所有引數的模型配置類。使用配置檔案進行初始化不會載入與模型相關的權重,只會載入配置。請檢視 from_pretrained() 方法來載入模型權重。
  • dtype (jax.numpy.dtype, 可選, 預設為 jax.numpy.float32) — 計算的資料型別。可以是 jax.numpy.float32jax.numpy.float16 (在 GPU 上) 和 jax.numpy.bfloat16 (在 TPU 上) 之一。

    這可用於在 GPU 或 TPU 上啟用混合精度訓練或半精度推理。如果指定,所有計算都將使用給定的 dtype 執行。

    請注意,這僅指定計算的 dtype,不影響模型引數的 dtype。

    如果你希望更改模型引數的 dtype,請參閱 to_fp16()to_bf16()

ResNet 模型頂部帶有一個影像分類頭(在池化特徵之上加一個線性層),例如用於 ImageNet。

此模型繼承自 FlaxPreTrainedModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載、儲存和轉換 PyTorch 模型的權重)。

此模型也是 flax.linen.Module 的子類。請將其用作常規的 Flax linen Module,並參考 Flax 文件瞭解所有與常規用法和行為相關的事項。

最後,此模型支援固有的 JAX 功能,例如

__call__

< >

( pixel_values params: typing.Optional[dict] = None train: bool = False output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None ) transformers.modeling_flax_outputs.FlaxImageClassifierOutputWithNoAttentiontuple(torch.FloatTensor)

返回

transformers.modeling_flax_outputs.FlaxImageClassifierOutputWithNoAttentiontuple(torch.FloatTensor)

一個 transformers.modeling_flax_outputs.FlaxImageClassifierOutputWithNoAttention 或一個 torch.FloatTensor 的元組(如果傳遞了 return_dict=Falseconfig.return_dict=False),包含根據配置(<class 'transformers.models.resnet.configuration_resnet.ResNetConfig'>)和輸入決定的各種元素。

  • logits (形狀為 (batch_size, config.num_labels)jnp.ndarray) — 分類(如果 config.num_labels==1,則為迴歸)分數(SoftMax 之前)。
  • hidden_states (tuple(jnp.ndarray), 可選,當傳遞 output_hidden_states=True 或當
  • config.output_hidden_states=True): jnp.ndarray 的元組(一個用於嵌入層的輸出,如果模型有嵌入層,+ 每個階段的輸出各一個),形狀為 (batch_size, num_channels, height, width)。模型在每個階段輸出的隱藏狀態(也稱為特徵圖)。

FlaxResNetPreTrainedModel 的前向方法,重寫了 __call__ 特殊方法。

儘管前向傳遞的邏輯需要在此函式內定義,但之後應呼叫 `Module` 例項而不是此函式,因為前者會處理預處理和後處理步驟,而後者會靜默地忽略它們。

示例

>>> from transformers import AutoImageProcessor, FlaxResNetForImageClassification
>>> from PIL import Image
>>> import jax
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = FlaxResNetForImageClassification.from_pretrained("microsoft/resnet-50")

>>> inputs = image_processor(images=image, return_tensors="np")
>>> outputs = model(**inputs)
>>> logits = outputs.logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_class_idx = jax.numpy.argmax(logits, axis=-1)
>>> print("Predicted class:", model.config.id2label[predicted_class_idx.item()])
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.