我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
- 調整尺寸:它將輸入圖像調整為模型預期的尺寸,在本例中,圖像已經是 224 x 224 大小
- 標準化:特徵提取器將圖像的像素值從 [0, 255] 標準化到較小的範圍,例如 [0, 1] 或 [-1, 1],並針對每個色彩通道進行
- 轉換為 PyTorch 張量:模型需要使用張量來處理數據
- 分割區塊:圖像被劃分為方形區塊,這是該創新的重要部分,特徵提取器產生 16 x 16 大小的圖像“詞”區塊作為其詞彙,每個區塊在系統的詞彙中成為一個 Token
- 展平和嵌入:區塊不能直接輸入至 Transformer,每個區塊被展平成一維數組,並轉換為嵌入向量,將詞元、圖像和區塊表示為一體的嵌入
總結來說,特徵提取器負責所有必要的預處理工作,將原始圖像轉換成模型可理解的格式,如以下程式碼所示,展示了實際運行中的特徵提取器:
from transformers import ViTFeatureExtractor, ViTForImageClassification
from PIL import Image
import requests
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224')