Transformers documentation
SLANet
このモデルは2026年4月22日に Hugging Face Transformers に貢献されました。
SLANet
概要
SLANet と SLANet_plus は、文書や自然なシーンにおける表構造の正確な認識に焦点を当てた、表構造認識専用の軽量モデルシリーズの一部です。SLANet シリーズモデルの詳細については、公式ドキュメントを参照してください。
モデルアーキテクチャ
SLANetは、Baidu PaddlePaddle Vision Teamが開発したテーブル構造認識モデルです。このモデルは、CPUに優しい軽量バックボーンネットワークであるPP-LCNet、高次・低次特徴融合モジュールであるCSP-PAN、および構造情報と位置情報を整列させる特徴デコーディングモジュールであるSLA Headを採用することで、テーブル構造認識の精度と推論速度を大幅に向上させています。
使用方法
単一入力推論
以下の例では、AutoModelを使用してSLANetでテキストを検出する方法を示します。
from io import BytesIO
from huggingface_hub.utils import httpx
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForTableRecognition
model_path="PaddlePaddle/SLANet_plus_safetensors"
model = AutoModelForTableRecognition.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = Image.open(BytesIO(httpx.get(image_url).content))
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)
results = image_processor.post_process_table_recognition(outputs)
print(result['structure'])
print(result['structure_score'])SLANetConfig
クラス transformers.SLANetConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonepost_conv_out_channels: int = 96out_channels: int = 50hidden_size: int = 256max_text_length: int = 500backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonehidden_act: str = 'hardswish'csp_kernel_size: int = 5csp_num_blocks: int = 1 )
パラメータ
- post_conv_out_channels (
int、任意、デフォルト値は 96) — エンコーダー後の畳み込み層の出力チャネル数です。 - out_channels (
int, 任意、デフォルト値は 50) — テーブル構造トークン予測ヘッドの語彙サイズ、すなわちモデルが予測できる個別の構造トークンの数です。 - hidden_size (
int、任意、デフォルトは 256) — attention GRU セルおよび構造/位置予測ヘッドにおける隠れ状態の次元数。 - max_text_length (
int、任意、デフォルト値は 500) — 構造および位置デコーダーにおける自己回帰デコーディングの最大ステップ数(トークン数)。 - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], 任意) — バックボーンモデルの設定です。 - hidden_act (
str、任意、デフォルトはhardswish) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - csp_kernel_size (
int, 任意、デフォルト値は 5) — Cross Stage Partial (CSP) レイヤーのカーネルサイズです。 - csp_num_blocks (
int、任意、デフォルトは 1) — Cross Stage Partial (CSP) レイヤー内のブロック数。
これは SlanetModel の設定を保存するための設定クラスです。指定された引数に基づいて Slanet モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、PaddlePaddle/SLANet_plus_safetensors と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
SLANetForTableRecognition
class transformers.SLANetForTableRecognition
< source >( config: SLANetConfig )
パラメータ
- config (SLANetConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
用のSLANet Table Recognitionモデル。SLANetPreTrainedModelをラップし、Transformersのtable recognition APIと互換性のある出力を返します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values: FloatTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SLANetForTableRecognitionOutput or tuple(torch.FloatTensor)
パラメータ
- pixel_values (
torch.FloatTensor、shape(batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値はSLANeXtImageProcessorを使用して取得できます。詳細はSLANeXtImageProcessor.call()を参照してください(processor_classは画像の処理にSLANeXtImageProcessorを使用します)。
戻り値
SLANetForTableRecognitionOutput または tuple(torch.FloatTensor)
SLANetForTableRecognitionOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(SLANetConfig)と入力に応じて、さまざまな要素で構成されます。
SLANetForTableRecognitionのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, num_channels, height, width)) — モデルの最終層の出力における隠れ状態のシーケンス。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, num_channels, height, width)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
head_hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)— 各予測ステップにおける SLANetSLAHead の隠れ状態。早期終了に依存して、最大self.config.max_text_length個の状態まで変化します。head_attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) — 各予測ステップにおける SLANetSLAHead のアテンション。早期終了に依存して、最大self.config.max_text_length個のアテンションまで変化します。
SLANetBackbone
forward
< source >( hidden_states: FloatTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithNoAttention or tuple(torch.FloatTensor)
パラメータ
- hidden_states (
torch.FloatTensor) — 形状が `(batch, seq_len, embed_dim)` のレイヤーへの入力
戻り値
BaseModelOutputWithNoAttention または tuple(torch.FloatTensor)
BaseModelOutputWithNoAttention または、return_dict=False が渡された場合、または config.return_dict=False の場合、torch.FloatTensor のタプル。設定(SLANetConfig)や入力に応じて、さまざまな要素で構成されます。
SLANetBackboneのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.FloatTensor、shape(batch_size, num_channels, height, width)) — モデルの最終層の出力における隠れ状態のシーケンス。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返される) —torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, num_channels, height, width)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。