首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Skorch预测单个图像?

如何使用Skorch预测单个图像?
EN

Stack Overflow用户
提问于 2019-12-03 23:55:58
回答 1查看 113关注 0票数 1

我刚刚用Skorch创建了一个神经网络来检测图片上的飞机,并用一个形状为(40000, 64, 64, 3)的训练数据集对其进行了训练。

然后我用(15000, 64, 64, 3)的测试数据集对其进行了测试。

代码语言:javascript
复制
module = nn.Sequential(
    nn.Conv2d(3, 64, 3),
    nn.BatchNorm2d(64),
    nn.ReLU(),
    nn.MaxPool2d(2),
    nn.Conv2d(64, 64, 3),
    nn.BatchNorm2d(64),
    nn.ReLU(),
    nn.MaxPool2d(2),
    nn.Conv2d(64, 64, 3),
    nn.BatchNorm2d(64),
    nn.ReLU(),
    nn.MaxPool2d(2),
    nn.Flatten(),
    nn.Linear(6 * 6 * 64, 256),
    nn.Linear(256, 256),
    nn.ReLU(),
    nn.Linear(256, 2),
    nn.Softmax(),
)

early_stopping = EarlyStopping(monitor='valid_loss', lower_is_better=True)
net = NeuralNetClassifier(
    module,
    max_epochs=20,
    lr=1e-4,
    callbacks=[early_stopping],
    # Shuffle training data on each epoch
    iterator_train__shuffle=True,
    device="cuda" if torch.cuda.is_available() else "cpu",
    optimizer=optim.Adam
)
net.fit(
    train_images_balanced.transpose((0, 3, 1, 2)).astype(np.float32),
    train_labels_balanced
)

现在我需要在512*512张图片上测试它,所以我有一个新的(30, 512, 512, 3)数据集。

所以我取了一个滑动窗口代码,它允许我将图片分成64*64个部分。

代码语言:javascript
复制
def sliding_window(image, stepSize, windowSize):
# slide a window across the image
for y in range(0, image.shape[0], stepSize):
    for x in range(0, image.shape[1], stepSize):
        # yield the current window
        yield (x, y, image[y:y + windowSize[1], x:x + windowSize[0]])

现在我希望能够预测是否每一张64*64图像都包含一架飞机,但我不知道如何做到这一点,因为net.predict()将数据集作为参数(arg : dim 4)

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 18:12:50

net.predict()将数据集作为参数(arg : dim 4)

net.predict接受许多数据格式,其中包括数据集。但是,对于您的情况,如果它接受torch张量或numpy数组就最好了--它确实是这样做的!只需将64x64块传递给net.predict,如下所示:

代码语言:javascript
复制
# (n, 512, 512, 3)
X = my_data
# (n, 4096, 64, 64, 3)
X = sliding_window(X, 64, 64)
# (n * 4096, 64, 64, 3)
X = X.reshape(-1, 64, 64, 3)
y = net.predict(X)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59160864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档