Transformers documentation
مستخرج الميزات
مستخرج الميزات
يتولى مستخرج الميزات مسؤولية تجهيز ميزات الإدخال لنماذج الصوت. ويشمل ذلك استخراج الميزات من التسلسلات، على سبيل المثال معالجة ملفات الصوت مسبقاً لتوليد ميزات طيف اللوغ-ميل، والتحويل إلى متجهات NumPy وPyTorch.
FeatureExtractionMixin
هذا امتزاج لاستخراج الميزات يُستخدم لتوفير وظيفة الحفظ/التحميل لمستخرجي الميزات التسلسلية والصوتية.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
المعاملات
- pretrained_model_name_or_path (
strأوos.PathLike) — يمكن أن يكون هذا:- سلسلة نصية، وهي معرّف النموذج لمُستخرج ميزات مُدرَّب مسبقاً مستضاف داخل مستودع نموذج على huggingface.co.
- مسار إلى مجلد يحتوي على ملف مستخرج الميزات المحفوظ باستخدام طريقة
save_pretrained()، على سبيل المثال
./my_model_directory/. - مسار إلى ملف JSON لمُستخرج ميزات محفوظ، على سبيل المثال:
./my_model_directory/preprocessor_config.json.
- cache_dir (
strأوos.PathLike، اختياري) — المسار إلى مجلد يُخزَّن فيه مستخرج ميزات النموذج المُسبَق التدريب الذي تم تنزيله، في حال عدم استخدام المجلد المؤقت القياسي. - force_download (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إجبار (إعادة) تنزيل ملفات مستخرج الميزات وتجاوز النسخ المخزنة مؤقتًا إذا كانت موجودة. - proxies (
dict[str, str], اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.تُستخدم هذه الوكلاء في كل طلب. - token (
strأوbool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كانTrue، أو لم يُحدد، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيلhf auth login(المخزَّن في~/.huggingface). - revision (
str، اختياري، القيمة الافتراضية"main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، نظرًا لاستخدامنا نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكونrevisionأي معرّف يسمح به git.
أنشئ كائنًا من نوع FeatureExtractionMixin من مستخرج الميزات، مثلًا فئة مشتقة من SequenceFeatureExtractor.
أمثلة:
# We can't instantiate directly the base class *FeatureExtractionMixin* nor *SequenceFeatureExtractor* so let's show the examples on a
# derived class: *Wav2Vec2FeatureExtractor*
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h"
) # Download feature_extraction_config from huggingface.co and cache.
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"./test/saved_model/"
) # E.g. feature_extractor (or model) was saved using *save_pretrained('./test/saved_model/')*
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("./test/saved_model/preprocessor_config.json")
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h", return_attention_mask=False, foo=False
)
assert feature_extractor.return_attention_mask is False
feature_extractor, unused_kwargs = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h", return_attention_mask=False, foo=False, return_unused_kwargs=True
)
assert feature_extractor.return_attention_mask is False
assert unused_kwargs == {"foo": False}save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
المعاملات
- save_directory (
strأوos.PathLike) — المجلد الذي سيُحفظ فيه ملف JSON الخاص بمستخرج الميزات (سيتم إنشاؤه إذا لم يكن موجودًا). - push_to_hub (
bool، اختياري، الافتراضيFalse) — ما إذا كان سيتم دفع نموذجك إلى مركز نماذج Hugging Face بعد حفظه. يمكنك تحديد المستودع الذي تريد الدفع إليه باستخدامrepo_id(سيكون الافتراضي هو اسمsave_directoryفي نطاقك). - kwargs (
dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().
Save a feature_extractor object to the directory save_directory, so that it can be re-loaded using the from_pretrained() class method.
SequenceFeatureExtractor
فئة transformers.SequenceFeatureExtractor
< source >( feature_size: intsampling_rate: intpadding_value: float**kwargs )
هذه فئة عامة لاستخراج الميزات للتعرف على الكلام.
pad
< source >( processed_features: transformers.feature_extraction_utils.BatchFeature | list[transformers.feature_extraction_utils.BatchFeature] | dict[str, transformers.feature_extraction_utils.BatchFeature] | dict[str, list[transformers.feature_extraction_utils.BatchFeature]] | list[dict[str, transformers.feature_extraction_utils.BatchFeature]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = None )
المعاملات
- processed_features (BatchFeature, قائمة من BatchFeature,
dict[str, list[float]],dict[str, list[list[float]]أوlist[dict[str, list[float]]]) — المدخلات المعالجة. يمكن أن تمثل مدخلًا واحدًا (BatchFeature أوdict[str, list[float]]) ) أو دفعة من قيم / متجهات المدخلات (قائمة من BatchFeature, dict[str, list[list[float]]] أو list[dict[str, list[float]]]) حتى تتمكن من استخدام هذه الطريقة أثناء المعالجة المسبقة وكذلك في دالة collate الخاصة بـ PyTorch Dataloader.بدلاً من
list[float]، يمكن أن تكون القيم تينسورات (مصفوفات numpy أو تينسورات PyTorch)، راجع الملاحظة أعلاه حول نوع الإرجاع. - padding (
bool,strأو PaddingStrategy, اختياري, الافتراضي هوTrue) — اختر استراتيجية لحشو التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:Trueأو'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجةmax_lengthأو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_pad'(الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
- max_length (
int، اختياري) — الحد الأقصى لطول القائمة المُعادَة وطول الحشو بشكل اختياري (انظر أعلاه). - truncation (
bool) — تفعيل القصّ لقطع تسلسلات الإدخال الأطول منmax_lengthإلىmax_length. - pad_to_multiple_of (
int, اختياري) — إذا تم تعيينه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة.يُعدّ هذا مفيدًا بشكل خاص لتفعيل استخدام نوى التينسور (Tensor Cores) على أجهزة NVIDIA التي تتمتع بقابلية معالجة
>= 7.5(Volta)، أو على وحدات TPU التي تستفيد من أن تكون أطوال التسلسلات مضاعفات للعدد 128. - return_attention_mask (
bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمعالج الميزات (feature_extractor) المعني. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن نوع Numpy.
ملء قيم الإدخال / متجهات الإدخال أو دفعة من قيم الإدخال / متجهات الإدخال حتى طول محدد مسبقاً أو حتى أقصى طول تسلسل في الدفعة.
تُعرَّف قيم الحشو (يسار/يمين) على مستوى مستخرج الميزات (باستخدام self.padding_side، self.padding_value)
إذا كانت
processed_featuresالمُمرَّرة عبارة عن قاموس من مصفوفات numpy أو تينسورات PyTorch، فسيستخدم الناتج نفس النوع ما لم تُقدِّم نوع تينسور مختلفًا عبرreturn_tensors. في حالة تينسورات PyTorch، ستفقد الجهاز المحدد الخاص بتنسوراتك.
BatchFeature
فئة transformers.BatchFeature
< source >( data: dict[str, typing.Any] | None = Nonetensor_type: None | str | transformers.utils.generic.TensorType = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
المعاملات
- data (
dict, اختياري) — قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طرائق call/pad (مثل ‘input_values’، ‘attention_mask’، وما إلى ذلك). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة. - skip_tensor_conversion (
list[str]أوset[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديدtensor_type.
يحتوي على مخرجات طريقة pad() وطريقة __call__ الخاصة بمستخرج الميزات.
تُشتق هذه الفئة من قاموس بايثون ويمكن استخدامها كقاموس.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
المعاملات
- tensor_type (
strأو TensorType، اختياري) — نوع المصفوفات (tensors) المراد استخدامه. إذا كانstr، فيجب أن يكون أحد قيم التعداد TensorType. إذا كانNone، فلا يتم إجراء أي تعديل. - skip_tensor_conversion (
list[str]أوset[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديدtensor_type.
قم بتحويل المحتوى الداخلي إلى متجهات.
ملاحظة: تُتجاهل تلقائيًا القيم التي لا تملك بنية تشبه المصفوفة (مثل السلاسل النصية، والقواميس، وقوائم السلاسل النصية) ولن يتم تحويلها إلى متجهات. أما المصفوفات غير المنتظمة (قوائم من المصفوفات بطول مختلف) فيُحاول تحويلها، لكنها قد تثير أخطاء أثناء عملية التحويل.
إلى
< source >( *args**kwargs ) → BatchFeature
أرسل جميع القيم إلى الجهاز عن طريق استدعاء v.to(*args, **kwargs) (PyTorch فقط). يجب أن يدعم هذا التحويل إلى أنواع بيانات dtypes مختلفة وإرسال BatchFeature إلى جهاز device مختلف.
ImageFeatureExtractionMixin
خلطة تحتوي على أدوات لتحضير ميزات الصور.
center_crop
< source >( imagesize ) → new_image
المعاملات
- image (
PIL.Image.Imageأوnp.ndarrayأوtorch.Tensorمن الشكل (n_channels, height, width) أو (height, width, n_channels)) — الصورة التي سيتم تغيير حجمها. - size (
intأوtuple[int, int]) — الحجم الذي يجب قصّ الصورة إليه.
يعيد
new_image
صورة مقصوصة من المنتصف من نوع PIL.Image.Image أو np.ndarray أو torch.Tensor بأبعاد: (n_channels,
height, width).
يقوم image بقص الصورة إلى الحجم المحدد باستخدام قص مركزي. لاحظ أنه إذا كانت الصورة صغيرة جداً بحيث لا يمكن قصها إلى الحجم المحدد، فسيتم ملؤها (لذا فإن النتيجة المُعادّة ستكون بالحجم المطلوب).
يحوّل PIL.Image.Image إلى تنسيق RGB.
expand_dims
< source >( image )
يوسّع image ثنائي الأبعاد إلى ثلاثة أبعاد.
flip_channel_order
< source >( image )
يعكس ترتيب قنوات image من RGB إلى BGR، أو العكس. لاحظ أن هذا سيؤدي إلى تحويل image إلى مصفوفة NumPy إذا كانت صورة PIL.
normalize
< source >( imagemeanstdrescale = False )
المعاملات
- image (
PIL.Image.Imageأوnp.ndarrayأوtorch.Tensor) — الصورة المراد تطبيعها. - mean (
list[float]أوnp.ndarrayأوtorch.Tensor) — المتوسط (لكل قناة) المستخدم في عملية التطبيع. - std (
list[float]أوnp.ndarrayأوtorch.Tensor) — الانحراف المعياري (لكل قناة) المستخدم في عملية التطبيع. - rescale (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إعادة تحجيم الصورة لتقع بين 0 و1. إذا تم توفير صورة بصيغة PIL، فسيتم التحجيم تلقائيًا.
يقوم بتطبيع image باستخدام mean وstd. يُرجى ملاحظة أن هذا سيؤدي إلى تحويل image إلى مصفوفة NumPy إذا كانت صورة PIL.
إعادة قياس صورة numpy بمقدار التحديد
resize
< source >( imagesizeresample = Nonedefault_to_square = Truemax_size = None ) → image
المعاملات
- image (
PIL.Image.Imageأوnp.ndarrayأوtorch.Tensor) — الصورة التي سيتم تغيير حجمها. - size (
intأوtuple[int, int]) — الحجم المستخدم لتغيير حجم الصورة. إذا كانsizeتسلسلاً مثل (h, w)، فسيتم مطابقة حجم الإخراج مع هذا التسلسل.إذا كان
sizeعددًا صحيحًا وكانdefault_to_squareهوTrue، فسيتم تغيير حجم الصورة إلى (size, size). وإذا كانsizeعددًا صحيحًا وكانdefault_to_squareهوFalse، فسيتم مطابقة الحافة الأصغر للصورة مع هذا الرقم. أي، إذا كان الارتفاع > العرض، فسيتم إعادة تحجيم الصورة إلى (size * height / width, size). - resample (
int، اختياري، الافتراضيPILImageResampling.BILINEAR) — المرشّح المستخدم لإعادة أخذ العينات. - default_to_square (
bool، اختياري، القيمة الافتراضيةTrue) — كيفية تحويلsizeعندما يكون عددًا صحيحًا واحدًا. إذا تم ضبطه علىTrue، فسيتم تحويلsizeإلى مربع (size،size). إذا تم ضبطه علىFalse، فسيحاكيtorchvision.transforms.Resizeمع دعم تغيير حجم الحافة الأصغر فقط وتوفيرmax_sizeاختياري. - max_size (
int، اختياري، القيمة الافتراضيةNone) — الحد الأقصى المسموح به للضلع الأطول للصورة بعد تغيير حجمها: إذا كان الضلع الأطول للصورة أكبر منmax_sizeبعد تغيير حجمها وفقاً لـsize، يتم تغيير حجم الصورة مرة أخرى بحيث يساوي الضلع الأطولmax_size. ونتيجة لذلك، قد يتم تجاوزsize، أي أن الضلع الأصغر قد يكون أقصر منsize. يُستخدم فقط إذا كانتdefault_to_squareهيFalse.
يعيد
صورة
صورة PIL.Image.Image مُعاد تحديدها.
يُعيد تحديد حجم image. يفرض تحويل المدخل إلى PIL.Image.
rotate
< source >( imageangleresample = Noneexpand = 0center = Nonetranslate = Nonefillcolor = None ) → image
يعيد نسخة مُدوَّرة من image. تُعيد هذه الطريقة نسخة من image، مُدوَّرةً بعدد الدرجات المحدد باتجاه عكس عقارب الساعة حول مركزها.
to_numpy_array
< source >( imagerescale = Nonechannel_first = True )
المعاملات
- image (
PIL.Image.Imageأوnp.ndarrayأوtorch.Tensor) — الصورة التي سيتم تحويلها إلى مصفوفة NumPy. - rescale (
bool, اختياري) — ما إذا كان سيتم تطبيق عامل التحجيم (لتحويل قيم البكسل إلى أرقام عشرية بين 0. و 1.) أم لا. سيكون الافتراضيTrueإذا كانت الصورة صورة PIL أو مصفوفة/متنصّل من الأعداد الصحيحة، وإلا فسيكونFalse. - channel_first (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تبديل أبعاد الصورة لجعل بُعد القناة في المقدمة.
يحوّل image إلى مصفوفة numpy. ويمكن اختيارياً إعادة تحجيمه وجعل بُعد القناة البُعد الأول.
to_pil_image
< source >( imagerescale = None )
يحوّل image إلى صورة PIL. ويمكنه إعادة تحجيم الصورة اختيارياً، وإعادة بُعد القناة ليكون المحور الأخير عند الحاجة.