Python Pytorch中的图像分类

Python Pytorch中的图像分类,python,neural-network,pytorch,face-recognition,Python,Neural Network,Pytorch,Face Recognition,我在Pytorch的图书馆工作,我想知道 数据扩充应在列车数据集或测试数据集中 我应该在测试数据集中放置多少图像至少我使用了测试数据集中2%的图像 我有21个班级21个人的脸,有评估模式的vggface2数据集,这对于训练和测试数据集来说足够了吗 如何可视化测试数据集中的图像以显示人脸是否匹配 我试过了,但会出现以下错误: TypeError:图像数据的形状3、160、160无效 图像的形状是:10、3、160、160 dataiter = iter(test_loader) images, l

我在Pytorch的图书馆工作,我想知道

数据扩充应在列车数据集或测试数据集中

我应该在测试数据集中放置多少图像至少我使用了测试数据集中2%的图像

我有21个班级21个人的脸,有评估模式的vggface2数据集,这对于训练和测试数据集来说足够了吗

如何可视化测试数据集中的图像以显示人脸是否匹配 我试过了,但会出现以下错误:

TypeError:图像数据的形状3、160、160无效

图像的形状是:10、3、160、160

dataiter = iter(test_loader)
images, labels = dataiter.next()
# get predictions
preds = np.squeeze(net(images).data.max(1, keepdim=True)[1].numpy())
images = images.numpy()

# plot the images in the batch, along with predicted and true labels
fig = plt.figure(figsize=(25, 4))
for idx in np.arange(batch_size):
    ax = fig.add_subplot(2, batch_size/2, idx+1, xticks=[], yticks=[])
    ax.imshow(np.squeeze(images[idx]), cmap='gray')
    ax.set_title("{} ({})".format(classes[preds[idx]], classes[labels[idx]]),
             color=("green" if preds[idx]==labels[idx] else "red"))
在检测到人脸预测功能后,如何从网络摄像头获取输入人脸? 但是我不知道如何实现predict\u draw\u bounding\u box函数


谢谢你的建议,有很多问题;你可能应该把这些问题分成多个问题。无论如何,我会试着回答一些问题

数据扩充通常应在列车数据集上进行 只有典型的增强包括随机轮换、调整作物大小、, 水平翻转、剪切等。所有这些都只在列车上进行

除此之外,在我的脑海里,我只能想到频道 规范化是您通常应用于这两个方面的唯一增强 培训和测试集。你计算x-x_平均值/西格玛通道 对于数据集中的所有图像

测试数据集中图像的百分比完全是经验性的,取决于实际拥有的图像数量。对于包含一百万张以上图像的非常大的数据集,2%这样的小百分比是可以的。但是,如果您的图像数量在一万、几千甚至更少,最好将20%左右作为测试集

我不明白你的问题

您的图像是形状3、160、160。这是pytorch的nn.Module系统使用的通道优先语法,但在matplotlib中绘制RGB图像需要通道处于最后一个维度,即160160,3。如果图像是形状为10,3160160的一批图像,则执行以下操作:

...
images = images.numpy()
images = images.swapaxes(1,2).swapaxes(2,3)
...
这会将其重塑为10160160,3,而不会损害轴顺序

没有线索

...
images = images.numpy()
images = images.swapaxes(1,2).swapaxes(2,3)
...