这是我的第一个可执行程序。我认为顶部和底部之间存在相关性。
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寻求建议并相应地更改了我的程序,但没有帮助。