如何使用pytorch传输训练预训练模型的数据?

时间:2021-06-05 17:38:01

标签: computer-vision pytorch pre-trained-model

我想使用带有 Pytorch 的预训练模型 ResNet50 对图像进行分类。我面临着将数据从数据集传输到模型的问题。

据我所知,需要在张量中传输图像进行训练,维度如下:(N, 4, 512,512),其中 N 是图像数,4 是通道数,512是图片的宽度和高度。而且您还需要将“目标”作为数组传递。现在我有一个带有“图像”、“标签”列的 Pandas DataFrame。在“图像”列中,我有一个尺寸列表(512、512、4)。 我尝试将数据写入数组,但时间太长,占用大量内存。有没有其他方法可以做到这一点? 所以,我的问题是“如何将数据传输到模型中?”

这是我数据库的一部分:

<头>
数字 图片 标签
0 [[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0... 0
1 [[[4, 3, 0, 18], [82, 0, 0, 27], [11, 4, 0, 20... 14
2 [[[2, 2, 0, 0], [1, 5, 0, 1], [0, 5, 0, 0], [2... 14
3 [[[7, 1, 0, 24], [31, 0, 0, 14], [23, 3, 0, 13... 3
... ... ...

我尝试通过以下方式做到这一点:

x_train = []
y_train = []
for data in range(N):
    x_train.append(train_df['Image'].iloc[data])
    y_train.append(train_df['Label'].iloc[data])
x_train = torch.tensor(x_train)
y_train = torch.tensor(y_train)
y_train = y_train.view(-1)
x_train = x_train.permute(0, 3, 1, 2)

0 个答案:

没有答案