【发布时间】:2022-08-14 14:59:12
【问题描述】:
当我尝试训练 cnn 时,对于同一个数据加载器,我得到了不同的形状,我不知道为什么。这是我输入模型的形状的输出:
可以看到我的验证形状是[batch size, 1, image height and width]。出于某种原因,图像大小在最后一步发生了变化,批量大小为 1。当我事先使用 pytorch 闪电的健全性检查时也会发生同样的情况,我暂时禁用了它。这是获取数据加载器的 pytorch 闪电数据模块的外观:
class MRIDataModule(pl.LightningDataModule):
def __init__(self, batch_size, data_paths):
super().__init__()
self.batch_size = batch_size
self.data_paths = data_paths
self.train_set = None
self.val_set = None
def setup(self, stage=None):
loader = get_data_loader()
self.train_set = loader(self.data_paths[\'train_dir\'], transform=None, dimension=DIMENSION, nslice=NSLICE)
self.val_set = loader(self.data_paths[\'val_dir\'], transform=None, dimension=DIMENSION, nslice=NSLICE)
def train_dataloader(self):
return DataLoader(self.train_set, batch_size=self.batch_size, num_workers=NUM_WORKERS, shuffle=True)
def val_dataloader(self):
return DataLoader(self.val_set, batch_size=self.batch_size, num_workers=NUM_WORKERS, shuffle=False)
这是完整的代码,打印语句直接来自我模型的 forward 函数: https://colab.research.google.com/drive/1yfbCZlwNMqaW1egaTF8HHRD4Ko8iMTxr?usp=sharing
-
您可以在引入打印语句的地方添加代码吗?以及
MRIDataModule模块的初始化? -
@Ivan 将其添加为 google colab 文件,它在 pytorch 闪电的 train/val 步骤和我的模型的前向函数中
-
很好,但请在此处包含相关代码而不是完整代码。还提供用于初始化
MRIDataModule的参数。
标签: pytorch conv-neural-network dataloader pytorch-lightning