Fine tune resnet-50

27 views Asked by At

I'm trying to fine-tune resnet-50, but I'm getting errors num_channels = pixel_values.shape[1] 'NoneType' object has no attribute 'shape' AttributeError: 'ConvNextImageProcessor' object has no attribute 'pad' return tokenizer.pad(*pad_args, **pad_kwargs)

from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader, Subset
import torch

from transformers import AutoImageProcessor, AutoModelForImageClassification
from transformers import TrainingArguments, Trainer
from transformers import pipeline

import evaluate

from datasets import load_dataset

from sklearn.metrics import accuracy_score

import numpy as np

dataset = load_dataset("fashion_mnist")
dataset["train"] = dataset["train"].shuffle(seed=42).select(range(1000))
dataset["test"] = dataset["test"].shuffle(seed=42).select(range(100))

processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
model = AutoModelForImageClassification.from_pretrained("microsoft/resnet-50")

metric = evaluate.load("accuracy")

def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = np.argmax(logits, axis=-1)
    return metric.compute(predictions=predictions, references=labels)


training_args = TrainingArguments(
    output_dir="test_trainer",
    evaluation_strategy="epoch"
)

trainer = Trainer(
    model=model,
    tokenizer=processor,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
    compute_metrics=compute_metrics,
)

trainer.train()

venv\Lib\site-packages\transformers\data\data_collator.py:59, in pad_without_fast_tokenizer_warning(tokenizer, *pad_args, **pad_kwargs)
     57 # To avoid errors when using Feature extractors
     58 if not hasattr(tokenizer, "deprecation_warnings"):
---> 59     return tokenizer.pad(*pad_args, **pad_kwargs)
     61 # Save the state of the warning, then disable it
     62 warning_state = tokenizer.deprecation_warnings.get("Asking-to-pad-a-fast-tokenizer", False)

AttributeError: 'ConvNextImageProcessor' object has no attribute 'pad'

without tokenizer=processor it als gives an error

venv\Lib\site-packages\transformers\models\resnet\modeling_resnet.py:94, in ResNetEmbeddings.forward(self, pixel_values)
     93 def forward(self, pixel_values: Tensor) -> Tensor:
---> 94     num_channels = pixel_values.shape[1]
     95     if num_channels != self.num_channels:
     96         raise ValueError(
     97             "Make sure that the channel dimension of the pixel values match with the one set in the configuration."
     98         )

AttributeError: 'NoneType' object has no attribute 'shape'
0

There are 0 answers