首次体验Pytorch,本文参考于: github and PyTorch 中文网人脸相似度对比 本文主要熟悉Pytorch大致流程,修改了读取数据部分。没有采用原作者的 ImageFolder 方法: ImageFolder(root, transform=None, target_transform=None, loader=default_loader)。而是采用了一种更自由的方法,利用了 Dataset 和 DataLoader 自由实现,更加适合于不同数据的预处理导入工作。 Siamese网络不用多说,就是两个共享参数的CNN。每次的输入是 一对图像+1个label ,共3个值。注意label=0或1(又称正负样本),表示输入的两张图片match(匹配、同一个人)或no-match(不匹配、非同一人)。 下图是Siamese基本结构,图是其他论文随便找的,输入看做两张图片就好。只不过下图是两个光普段而已。 1. 数据处理 数据采用的是AT&T人脸数据。共40个人,每个人有10张脸。数据下载: AT&T 首先解压后发现文件夹下共40个文件夹,每个文件夹里有10张pgm图片。这里生成一个包含图片路径的train.txt文件共后续调用: def convert(train= True): if (train): f =open(Config.txt_root, ' w ' )