Benutzer-Werkzeuge

Webseiten-Werkzeuge


transformers

Dies ist eine alte Version des Dokuments!


Transformers ist eine spezielle Architektur von LLM Modellen sowie eine Python Bibliothek für Machine learning. Siehe auch Generative pretrained transformers (GPT).

Text generation

from transformers import GPT2Tokenizer, GPT2LMHeadModel, pipeline
 
tokenizer = GPT2Tokenizer.from_pretrained("gpt2-large", cache_dir="cache")
model = GPT2LMHeadModel.from_pretrained("gpt2-large", cache_dir="cache")
 
generator = pipeline(model=model, tokenizer=tokenizer, task="text-generation", max_new_tokens=10, early_stopping=True)
 
result = generator("algebra is the science of")
 
print(result)
#pip install einops
 
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
 
model = "tiiuae/falcon-40b"
 
tokenizer = AutoTokenizer.from_pretrained(model, cache_dir="falcon40b")
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto",
)
sequences = pipeline(
   "AI is going to replace humans because",
    max_length=100,
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

Object detection

Siehe auch Yolov5.

from transformers import DetrImageProcessor, DetrForObjectDetection
import torch
from PIL import Image
import requests
 
url = "https://bilder.ottoversand.at/i/empiriecom/c6d7b41b9382cccd4b131c48a1306ac4"
image = Image.open(requests.get(url, stream=True).raw)
 
processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-101")
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-101")
 
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
 
# convert outputs (bounding boxes and class logits) to COCO API
# let's only keep detections with score > 0.9
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]
 
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
    box = [round(i, 2) for i in box.tolist()]
    print(f"Detected {model.config.id2label[label.item()]} with confidence {round(score.item(), 3)} at location {box}")
from transformers import pipeline
from PIL import Image, ImageDraw, ImageFont
from transformers import DetrFeatureExtractor, DetrForObjectDetection
 
#classifier = pipeline("sentiment-analysis")
#classifier = pipeline("feature-extraction")
#classifier = pipeline("question-answering")
#classifier = pipeline("text-generation", model="gpt2")
 
feature_extractor = DetrFeatureExtractor.from_pretrained('facebook/detr-resnet-101')
model = DetrForObjectDetection.from_pretrained('facebook/detr-resnet-101')
object_detector = pipeline("object-detection", model = model, feature_extractor = feature_extractor)
 
def draw_bounding_box(im, score, label, xmin, ymin, xmax, ymax, index, num_boxes):
    im_with_rectangle = ImageDraw.Draw(im)  
    im_with_rectangle.rounded_rectangle((xmin, ymin, xmax, ymax), outline = "red", width = 5, radius = 10)
    im_with_rectangle.text((xmin+10, ymin+10), label, fill="white", stroke_fill = "red")
    return im, label
 
with Image.open("test.jpg") as im:
    bounding_boxes = object_detector(im)
    num_boxes = len(bounding_boxes)
    index = 0
    labels = []
    for bounding_box in bounding_boxes:
        box = bounding_box["box"]
        im, label = draw_bounding_box(im, bounding_box["score"], bounding_box["label"], box["xmin"], box["ymin"], box["xmax"], box["ymax"], index, num_boxes)
        #if label not in labels:
        labels.append(label)
        index += 1
    #im.save("boxes.jpg")
    im.show()
    print(labels)
from transformers import ViTImageProcessor, ViTForImageClassification
from PIL import Image
import requests
 
url = 'https://rothys.com/cdn/shop/files/05.31_HP_3_Desktop_9nsINbZq8H.jpg?v=1685080183&width=1024'
image = Image.open(requests.get(url, stream=True).raw)
 
processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')
 
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# model predicts one of the 1000 ImageNet classes
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
transformers.1761775684.txt.gz · Zuletzt geändert: 2025/10/29 23:08 von jango