我需要在数据集之间找到重复的图像。所以我尝试将它们哈希到桶中。使用内置的哈希函数我得到大约1000个重复,但使用hashlib.md5()我得到没有重复? 这是为什么? 我使用的数据集是noMNIST,从那里取出2个数据集,一个比另一个大得多,即大小200000和10000
这是我的代码:
# check for duplicates in the 2 dataset images
import hashlib
def checkDuplicates(data1, data2):
data1.flags.writeable = False
data2.flags.writeable = False
duplicates = 0
table = {}
for i in range(0,len(data1),1):
h = hashlib.md5(data1[i,:,:].data)
table[h] = i
for id,image in enumerate(data2):
h = hashlib.md5(image.data)
if (h in table) and (data1[table[h],:,:].data == image.data):
duplicates += 1
print (duplicates)
return duplicates
如果我用hash()函数替换这个hashlib.md5(),它会给我1000-1200个重复!为什么会有这样的差异呢?