Transformers documentation
CHMv2
Mô hình này được công bố trên HF papers vào ngày 06-03-2026 và được đóng góp cho Hugging Face Transformers vào ngày 11-03-2026.
CHMv2
Tổng quan
Mô hình Canopy Height Maps v2 (CHMv2) được đề xuất trong CHMv2: Improvements in Global Canopy Height Mapping using DINOv3. Dựa trên bản đồ độ cao tán cây độ phân giải cao ban đầu của chúng tôi được phát hành vào năm 2024, CHMv2 mang lại những cải thiện đáng kể về độ chính xác, chi tiết và tính nhất quán toàn cầu nhờ tận dụng DINOv3, mô hình thị giác tự giám sát của Meta.
Bạn có thể tìm thêm thông tin tại đây, và mã nguồn gốc tại đây.
Tóm tắt từ bài báo như sau:
Thông tin chính xác về độ cao tán cây là thiết yếu để định lượng carbon rừng, giám sát phục hồi và suy thoái, cũng như đánh giá cấu trúc môi trường sống, trong khi các phép đo độ trung thực cao từ quét laser trên không (ALS) vẫn chưa được phân bố đồng đều trên toàn cầu. Ở đây, chúng tôi giới thiệu CHMv2, một bản đồ độ cao tán cây toàn cầu, độ phân giải theo mét, được suy ra từ ảnh vệ tinh quang học độ phân giải cao bằng cách sử dụng mô hình ước lượng độ sâu được xây dựng trên DINOv3 và huấn luyện đối chiếu với các mô hình độ cao tán cây ALS. So với các sản phẩm hiện có, CHMv2 cải thiện đáng kể độ chính xác, giảm sai lệch trong các khu rừng cao và bảo tồn tốt hơn cấu trúc quy mô nhỏ như mép tán và các khoảng trống. Những cải thiện này được hỗ trợ bởi việc mở rộng lớn dữ liệu huấn luyện đa dạng về địa lý, quy trình tự động hóa việc tuyển chọn và đăng ký dữ liệu, cùng với một công thức hóa tổn thất và chiến lược lấy mẫu dữ liệu được điều chỉnh phù hợp với phân bố độ cao tán cây. Chúng tôi xác thực CHMv2 đối với các bộ kiểm thử ALS độc lập và đối với hàng chục triệu quan sát từ GEDI và ICESat-2, chứng minh hiệu suất nhất quán trên các hệ sinh thái rừng chính.
Ví dụ sử dụng
Chạy suy luận trên một hình ảnh bằng đoạn mã sau:
import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForDepthEstimation
processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
model = AutoModelForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head", device_map="auto")
image = Image.open("image.tif")
inputs = processor(images=image, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
depth = processor.post_process_depth_estimation(
outputs, target_sizes=[(image.height, image.width)]
)[0]["predicted_depth"]CHMv2Config
lớp transformers.CHMv2Config
< 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 = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepatch_size: int = 16initializer_range: float = 0.02reassemble_factors: list[float | int] | None = Nonepost_process_channels: list[int] | None = Nonefusion_hidden_size: int = 256head_hidden_size: int = 128number_output_channels: int = 256readout_type: str = 'project'min_depth: float = 0.001max_depth: float = 96.0bins_strategy: typing.Literal['linear', 'log', 'chmv2_mixlog'] = 'chmv2_mixlog'norm_strategy: typing.Literal['linear', 'softmax', 'sigmoid', 'chmv2_mixlog'] = 'chmv2_mixlog' )
Tham số
- backbone_config (
Union[dict, "PreTrainedConfig"], tùy chọn) — Cấu hình của mô hình backbone. Hiện tại chỉ hỗ trợ DINOv3ViTConfig. - patch_size (
int, tùy chọn, mặc định là 16) — Kích thước patch được sử dụng bởi vision transformer của backbone. - initializer_range (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - reassemble_factors (
list[float], tuỳ chọn, mặc định là[4, 2, 1, 0.5]) — Các hệ số tăng/giảm mẫu của các lớp reassemble. - post_process_channels (
list[int], tùy chọn, mặc định là[128, 256, 512, 1024]) — Kích thước kênh đầu ra của giai đoạn reassemble cho mỗi mức đặc trưng của backbone. - fusion_hidden_size (
int, tùy chọn, mặc định là 256) — Số lượng kênh trước khi hợp nhất. - head_hidden_size (
int, tùy chọn, mặc định là 128) — Số lượng kênh trong lớp ẩn của đầu ước lượng độ sâu. - number_output_channels (
int, tùy chọn, mặc định là 256) — Số lượng kênh đầu ra cho đầu CHMv2 (số lượng bin độ sâu). - readout_type (
str, tùy chọn, mặc định là"project") — Loại thao tác đọc cho token CLS. Một trong số["ignore", "add", "project"]. - min_depth (
float, tùy chọn, mặc định là 0.001) — Giá trị độ sâu tối thiểu cho việc tính toán phân loại độ sâu. - max_depth (
float, tùy chọn, mặc định là 96.0) — Giá trị độ sâu tối đa cho việc tính toán phân loại độ sâu. - bins_strategy (
str, tùy chọn, mặc định là"chmv2_mixlog") — Chiến lược cho phân phối các bin độ sâu. Một trong số["linear", "log", "chmv2_mixlog"]. - norm_strategy (
str, tùy chọn, mặc định là"chmv2_mixlog") — Chiến lược chuẩn hóa cho dự đoán độ sâu. Một trong số["linear", "softmax", "sigmoid", "chmv2_mixlog"].
Đây là lớp cấu hình để lưu trữ cấu hình của một Chmv2Model. Nó được sử dụng để khởi tạo một mô hình Chmv2 theo các đối số được chỉ định, xác định kiến trúc của mô hình. Việc khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của facebook/dinov3-vitl16-chmv2-dpt-head
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
CHMv2ImageProcessor
lớp transformers.CHMv2ImageProcessor
< source >( **kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> )
Tham số
- do_convert_rgb (
bool, kwargs, optional) — Có nên chuyển đổi ảnh sang RGB hay không. - do_resize (
bool, kwargs, tuỳ chọn, mặc định làFalse) — Có nên thay đổi kích thước ảnh hay không. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định là{'height' -- 384, 'width': 384}): Mô tả kích thước đầu vào tối đa cho mô hình. - default_to_square (
bool, kwargs, tùy chọn, mặc định làTrue) — Có nên mặc định dùng ảnh vuông khi thay đổi kích thước không, nếu size là một số nguyên. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định làNone) — Kích thước của ảnh đầu ra sau khi áp dụngcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, mặc định là3) — Bộ lọc lấy mẫu lại (resampling filter) được sử dụng khi thay đổi kích thước ảnh. Giá trị này có thể là một trong các hằng số liệt kê (enum) củaPILImageResampling. Chỉ có hiệu lực khido_resizeđược đặt thànhTrue. - do_rescale (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên điều chỉnh lại tỷ lệ ảnh hay không. - rescale_factor (
float, kwargs, optional, mặc định là0.00392156862745098) — Hệ số rescale để rescale ảnh nếudo_rescaleđược đặt thànhTrue. - do_normalize (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên chuẩn hóa hình ảnh hay không. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là[0.42, 0.411, 0.296]) — Giá trị trung bình của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, tuỳ chọn, mặc định là[0.213, 0.156, 0.143]) — Độ lệch chuẩn của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - do_pad (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên đệm (pad) ảnh hay không. Việc đệm được thực hiện đến kích thước lớn nhất trong batch hoặc đến một kích thước vuông cố định cho mỗi ảnh. Chiến lược đệm cụ thể phụ thuộc vào mô hình. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước ở dạng{"height": int, "width" int}để đệm cho các hình ảnh. Phải lớn hơn kích thước bất kỳ hình ảnh nào được cung cấp để tiền xử lý. Nếu không cung cấppad_size, các hình ảnh sẽ được đệm đến chiều cao và chiều rộng lớn nhất trong lô. Chỉ được áp dụng khido_pad=True. - do_center_crop (
bool, kwargs, tuỳ chọn, mặc định làNone) — Có nên cắt ảnh theo tâm hay không. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Chỉ hỗ trợChannelDimension.FIRST. Được thêm vào để tương thích với các bộ xử lý chậm. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, tùy chọn) — Định dạng chiều kênh cho ảnh đầu vào. Nếu không được đặt, định dạng chiều kênh sẽ được suy ra từ ảnh đầu vào. Có thể là một trong các giá trị:"channels_first"hoặcChannelDimension.FIRST: ảnh ở định dạng (num_channels, height, width)."channels_last"hoặcChannelDimension.LAST: ảnh ở định dạng (height, width, num_channels)."none"hoặcChannelDimension.NONE: ảnh ở định dạng (chiều cao, chiều rộng).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Thiết bị để xử lý các video. Nếu không được đặt, thiết bị sẽ được suy ra từ các video đầu vào. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Trả về các tensor được xếp chồng nếu được đặt thành'pt', ngược lại trả về một danh sách các tensor. - disable_grouping (
bool, kwargs, tuỳ chọn) — Có nên vô hiệu hóa việc nhóm các hình ảnh theo kích thước để xử lý chúng riêng lẻ thay vì theo lô hay không. Nếu là None, giá trị sẽ được đặt thành True nếu các hình ảnh nằm trên CPU, và False trong các trường hợp khác. Lựa chọn này dựa trên các quan sát thực nghiệm, như được mô tả chi tiết tại đây: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Số lượng token hình ảnh sẽ được sử dụng cho mỗi hình ảnh trong đầu vào. Được thêm vào để đảm bảo tương thích ngược, nhưng trong các mô hình tương lai, giá trị này nên được đặt như một thuộc tính của bộ xử lý. - ensure_multiple_of (
int, kwargs, optional, mặc định là 1) — Nếudo_resizelàTrue, hình ảnh sẽ được thay đổi kích thước thành một kích thước là bội số của giá trị này. Có thể bị ghi đè bởiensure_multiple_oftrongpreprocess. - size_divisor (
int, kwargs, mặc định là16) — Kích thước dùng để đảm bảo cả chiều cao lẫn chiều rộng đều chia hết cho nó. - keep_aspect_ratio (
bool, kwargs, tuỳ chọn, mặc định làFalse) — NếuTrue, hình ảnh sẽ được thay đổi kích thước lên kích thước lớn nhất có thể sao cho tỷ lệ khung hình được giữ nguyên. Có thể bị ghi đè bởikeep_aspect_ratiotrongpreprocess. - do_reduce_labels (
bool, kwargs, tuỳ chọn, mặc định làself.do_reduce_labels) — Có giảm tất cả các giá trị nhãn của các bản đồ phân đoạn xuống 1 hay không. Thường được sử dụng cho các bộ dữ liệu mà 0 được dùng cho nền, và bản thân nền không được bao gồm trong tất cả các lớp của bộ dữ liệu (ví dụ ADE20k). Nhãn nền sẽ được thay thế bằng 255.
Tạo một trình xử lý ảnh CHMv2ImageProcessor.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Tham số
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ảnh cần tiền xử lý. Kỳ vọng một ảnh đơn hoặc một lô ảnh với giá trị pixel từ 0 đến 255. Nếu truyền vào các ảnh có giá trị pixel từ 0 đến 1, hãy đặtdo_rescale=False. - segmentation_maps (
ImageInput, tùy chọn) — Các bản đồ phân đoạn cần tiền xử lý. - do_convert_rgb (
bool, kwargs, optional) — Có nên chuyển đổi ảnh sang RGB hay không. - do_resize (
bool, kwargs, optional) — Có nên thay đổi kích thước ảnh hay không. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Mô tả các kích thước đầu vào tối đa của mô hình. - default_to_square (
bool, kwargs, tuỳ chọn) — Có mặc định thành ảnh vuông khi thay đổi kích thước hay không, nếu size là một số nguyên. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước của ảnh đầu ra sau khi áp dụngcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Bộ lọc lấy mẫu lại (resampling filter) được sử dụng khi thay đổi kích thước ảnh. Giá trị này có thể là một trong các hằng số liệt kê (enum) củaPILImageResampling. Chỉ có hiệu lực khido_resizeđược đặt thànhTrue. - do_rescale (
bool, kwargs, optional) — Có nên điều chỉnh lại tỷ lệ ảnh hay không. - rescale_factor (
float, kwargs, optional) — Hệ số rescale để rescale ảnh nếudo_rescaleđược đặt thànhTrue. - do_normalize (
bool, kwargs, optional) — Có nên chuẩn hóa ảnh hay không. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Giá trị trung bình của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — Độ lệch chuẩn của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - do_pad (
bool, kwargs, optional) — Có nên chèn padding cho ảnh hay không. Padding được thực hiện đến kích thước lớn nhất trong batch hoặc đến một kích thước vuông cố định cho mỗi ảnh. Chiến lược padding cụ thể phụ thuộc vào model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước ở dạng{"height": int, "width" int}để đệm cho các hình ảnh. Phải lớn hơn kích thước bất kỳ hình ảnh nào được cung cấp để tiền xử lý. Nếu không cung cấppad_size, các hình ảnh sẽ được đệm đến chiều cao và chiều rộng lớn nhất trong lô. Chỉ được áp dụng khido_pad=True. - do_center_crop (
bool, kwargs, optional) — Có nên cắt ảnh ở vị trí trung tâm hay không. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Chỉ hỗ trợChannelDimension.FIRST. Được thêm vào để tương thích với các bộ xử lý chậm. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, tùy chọn) — Định dạng chiều kênh cho ảnh đầu vào. Nếu không được đặt, định dạng chiều kênh sẽ được suy ra từ ảnh đầu vào. Có thể là một trong các giá trị:"channels_first"hoặcChannelDimension.FIRST: ảnh ở định dạng (num_channels, height, width)."channels_last"hoặcChannelDimension.LAST: ảnh ở định dạng (height, width, num_channels)."none"hoặcChannelDimension.NONE: ảnh ở định dạng (chiều cao, chiều rộng).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Thiết bị để xử lý các video. Nếu không được đặt, thiết bị sẽ được suy ra từ các video đầu vào. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Trả về các tensor được xếp chồng nếu được đặt thành'pt', ngược lại trả về một danh sách các tensor. - disable_grouping (
bool, kwargs, tuỳ chọn) — Có nên vô hiệu hóa việc nhóm các hình ảnh theo kích thước để xử lý chúng riêng lẻ thay vì theo lô hay không. Nếu là None, giá trị sẽ được đặt thành True nếu các hình ảnh nằm trên CPU, và False trong các trường hợp khác. Lựa chọn này dựa trên các quan sát thực nghiệm, như được mô tả chi tiết tại đây: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Số lượng token hình ảnh sẽ được sử dụng cho mỗi hình ảnh trong đầu vào. Được thêm vào để đảm bảo tương thích ngược, nhưng trong các mô hình tương lai, giá trị này nên được đặt như một thuộc tính của bộ xử lý. - ensure_multiple_of (
int, kwargs, optional, mặc định là 1) — Nếudo_resizelàTrue, hình ảnh sẽ được thay đổi kích thước thành một kích thước là bội số của giá trị này. Có thể bị ghi đè bởiensure_multiple_oftrongpreprocess. - size_divisor (
int, kwargs) — Kích thước để đảm bảo cả chiều cao và chiều rộng đều chia hết cho nó. - keep_aspect_ratio (
bool, kwargs, tuỳ chọn, mặc định làFalse) — NếuTrue, hình ảnh sẽ được thay đổi kích thước lên kích thước lớn nhất có thể sao cho tỷ lệ khung hình được giữ nguyên. Có thể bị ghi đè bởikeep_aspect_ratiotrongpreprocess. - do_reduce_labels (
bool, kwargs, tuỳ chọn, mặc định làself.do_reduce_labels) — Có giảm tất cả các giá trị nhãn của các bản đồ phân đoạn xuống 1 hay không. Thường được sử dụng cho các bộ dữ liệu mà 0 được dùng cho nền, và bản thân nền không được bao gồm trong tất cả các lớp của bộ dữ liệu (ví dụ ADE20k). Nhãn nền sẽ được thay thế bằng 255.
Trả về
~image_processing_base.BatchFeature
- data (
dict) — Từ điển chứa các danh sách/mảng/tensor được trả về bởi phương thức call (‘pixel_values’, v.v.). - tensor_type (
Union[None, str, TensorType], tùy chọn) — Bạn có thể cung cấp một tensor_type tại đây để chuyển đổi các danh sách số nguyên trong Tensor PyTorch/Numpy khi khởi tạo.
post_process_depth_estimation
< source >( outputs: DepthEstimatorOutputtarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None ) → List[Dict[str, TensorType]]
Tham số
- outputs (
DepthEstimatorOutput) — Đầu ra thô của mô hình. - target_sizes (
TensorTypehoặcList[Tuple[int, int]], tùy chọn) — Tensor có shape(batch_size, 2)hoặc danh sách các tuple (Tuple[int, int]) chứa kích thước đích (độ cao, độ rộng) của mỗi hình ảnh trong batch. Nếu để là None, các dự đoán sẽ không được thay đổi kích thước.
Trả về
List[Dict[str, TensorType]]
Một danh sách các từ điển của các tensor đại diện cho các dự đoán độ sâu đã được xử lý.
Chuyển đổi đầu ra thô của DepthEstimatorOutput thành các dự đoán độ sâu cuối cùng và các hình ảnh độ sâu PIL.
Chỉ hỗ trợ PyTorch.
CHMv2ForDepthEstimation
lớp transformers.CHMv2ForDepthEstimation
< source >( config: CHMv2Config )
Tham số
- config (CHMv2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.
Mô hình CHMv2 với một đầu ước lượng độ sâu phía trên (gồm các lớp tích chập), ví dụ để ước lượng độ cao tán cây.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DepthEstimatorOutput or tuple(torch.Tensor)
Tham số
- pixel_values (
torch.Tensorcó hình dạng(batch_size, num_channels, image_size, image_size)) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng CHMv2ImageProcessor. Xem CHMv2ImageProcessor.call() để biết chi tiết (processor_classsử dụng CHMv2ImageProcessor để xử lý hình ảnh). - labels (
torch.LongTensorcó hình dạng(batch_size, height, width), tùy chọn) — Bản đồ ước lượng độ sâu chuẩn để tính toán loss.
Trả về
DepthEstimatorOutput hoặc tuple(torch.Tensor)
Một DepthEstimatorOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (CHMv2Config) và đầu vào.
Phương thức forward của CHMv2ForDepthEstimation ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
loss (
torch.Tensorcó shape(1,), optional, được trả về khilabelsđược cung cấp) — Loss phân loại (hoặc hồi quy nếu config.num_labels==1).predicted_depth (
torch.Tensorcó hình dạng(batch_size, height, width)) — Độ sâu dự đoán cho từng pixel.hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, num_channels, height, width).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, patch_size, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
Ví dụ:
>>> from transformers import AutoImageProcessor, CHMv2ForDepthEstimation
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read())).convert("RGB")
>>> processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
>>> model = CHMv2ForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
>>> model.to(device)
>>> # prepare image for the model
>>> inputs = processor(images=image, return_tensors="pt").to(device)
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # interpolate to original size
>>> post_processed_output = processor.post_process_depth_estimation(
... outputs, [(image.height, image.width)],
... )
>>> predicted_depth = post_processed_output[0]["predicted_depth"]