TypeError: `model` 必须是 `LightningModule` 或 `torch._dynamo.OptimizedModule`,得到 `SegformerForSemanticSegmentation`

问题描述 投票:0回答:0

这是我的第一个可执行程序。我认为顶部和底部之间存在相关性。

import torch
import torch.nn as nn
import pytorch_lightning as pl

class LightningSegformerForSemanticSegmentation(pl.LightningModule):
    def __init__(self, segformer):
        super().__init__()
        self.segformer = segformer
        self.criterion = nn.CrossEntropyLoss()

    def forward(self, x):
        return self.segformer(x)

    def training_step(self, batch, batch_idx):
        x, y = batch
        out = self.segformer(x)
        loss = self.criterion(out, y)
        self.log('train_loss', loss)
        return loss

    def validation_step(self, batch, batch_idx):
        x, y = batch
        out = self.segformer(x)
        loss = self.criterion(out, y)
        self.log('val_loss', loss)

    def configure_optimizers(self):
        optimizer = torch.optim.Adam(self.parameters(), lr=1e-3)
        return optimizer

这是我的第二个程序,但是当我尝试执行它时出现错误

early_stop_callback = EarlyStopping(
    monitor="val_loss", 
    min_delta=0.00, 
    patience=10, 
    verbose=False, 
    mode="min",
)

checkpoint_callback = ModelCheckpoint(save_top_k=1, monitor="val_loss")

trainer = pl.Trainer(
    #gpus='1',  
    accelerator='auto',
    callbacks=[early_stop_callback, checkpoint_callback],
    max_epochs=500,
    val_check_interval=len(train_dataloader),
)
trainer.fit(segformer_finetuner)

错误信息

**INFO:pytorch_lightning.utilities.rank_zero:GPU available: True (cuda), used: True
INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores
INFO:pytorch_lightning.utilities.rank_zero:IPU available: False, using: 0 IPUs
INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-a821d9e5ddff> in <cell line: 19>()
     17 )
     18 #trainer.fit(segformer_finetuner)
---> 19 trainer.fit(segformer_finetuner)

1 frames
/usr/local/lib/python3.9/dist-packages/pytorch_lightning/utilities/compile.py in _maybe_unwrap_optimized(model)
    123     if isinstance(model, pl.LightningModule):
    124         return model
--> 125     raise TypeError(
    126         f"`model` must be a `LightningModule` or `torch._dynamo.OptimizedModule`, got `{type(model).__qualname__}`"
    127     )

TypeError: `model` must be a `LightningModule` or `torch._dynamo.OptimizedModule`, got `SegformerForSemanticSegmentation`**

所有程序均在 Colab GPU 环境中执行。如果您需要任何详细信息,请告诉我。我真的需要一个答案。帮我翻译一下

我向ChatGPT寻求建议并相应地更改了我的程序,但没有帮助。

python google-colaboratory image-segmentation
© www.soinside.com 2019 - 2024. All rights reserved.