Spaces:
Runtime error
Runtime error
Update utils.py
Browse files
utils.py
CHANGED
|
@@ -69,44 +69,44 @@ def germanShepherdEvaluateSimilarity(germanShepherdRepresentative, germanShepher
|
|
| 69 |
|
| 70 |
germanShepherdDistance = germanShepherdRepresentative @ germanShepherdRepresentative[germanShepherdQueryIndex]
|
| 71 |
|
| 72 |
-
if
|
| 73 |
-
|
| 74 |
else:
|
| 75 |
-
|
| 76 |
|
| 77 |
-
|
| 78 |
-
|
| 79 |
|
| 80 |
-
return
|
| 81 |
|
| 82 |
-
def
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
|
| 87 |
-
if
|
| 88 |
-
|
| 89 |
-
if
|
| 90 |
-
|
| 91 |
|
| 92 |
-
|
| 93 |
|
| 94 |
-
|
| 95 |
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
|
| 103 |
-
|
| 104 |
|
| 105 |
-
|
| 106 |
-
with request.urlopen(request.Request(url_dist, headers={'Range': 'bytes={:d}-'.format(
|
| 107 |
-
dist = np.frombuffer(f.read(
|
| 108 |
|
| 109 |
-
with request.urlopen(request.Request(url_inds, headers={'Range': 'bytes={:d}-'.format(
|
| 110 |
-
|
| 111 |
|
| 112 |
-
return
|
|
|
|
| 69 |
|
| 70 |
germanShepherdDistance = germanShepherdRepresentative @ germanShepherdRepresentative[germanShepherdQueryIndex]
|
| 71 |
|
| 72 |
+
if germanShepherdSimilarityMetric:
|
| 73 |
+
germanShepherdSimilarIndices = np.argsort(germanShepherdDistance)
|
| 74 |
else:
|
| 75 |
+
germanShepherdSimilarIndices = np.argsort(germanShepherdDistance)[::-1]
|
| 76 |
|
| 77 |
+
germanShepherdDistance = germanShepherdDistance[germanShepherdSimilarIndices][:germanShepherdNumNearest]
|
| 78 |
+
germanShepherdSimilarIndices = germanShepherdSimilarIndices[:germanShepherdNumNearest]
|
| 79 |
|
| 80 |
+
return germanShepherdSimilarIndices, germanShepherdDistance
|
| 81 |
|
| 82 |
+
def germanShepherdObtainSimilarity(germanShepherdQueryIndex, germanShepherdModelVersion='v1'):
|
| 83 |
+
germanShepherdNumSamples = 10000
|
| 84 |
+
germanShepherdNumNearest = 1000
|
| 85 |
+
germanShepherdNumberBytes = 4
|
| 86 |
|
| 87 |
+
if germanShepherdModelVersion=='v1':
|
| 88 |
+
germanShepherdModelType = 'East German Working Line German Shepherd'
|
| 89 |
+
if germanShepherdModelVersion=='v2':
|
| 90 |
+
germanShepherdModelType = 'West German Show Line'
|
| 91 |
|
| 92 |
+
germanShepherdLinkValue = 'https://www.pedigreedatabase.com/german_shepherd_dog/search.html'.format(germanShepherdModelType)
|
| 93 |
|
| 94 |
+
germanShepherdIndexValue = germanShepherdQueryIndex // germanShepherdSimulation
|
| 95 |
|
| 96 |
+
germanShepherdStartIndex = germanShepherdIndexValue*germanShepherdSimulation
|
| 97 |
+
germanShepherdEndIndex = (germanShepherdIndexValue+1)*germanShepherdSimulation
|
| 98 |
+
numGermanShepherdsTotal = 104432422
|
| 99 |
+
germanShepherdEndIndex = min(germanShepherdEndIndex, numGermanShepherdsTotal)
|
| 100 |
+
germanShepherdLinkDistance = os.path.join(germanShepherdLinkValue, 'dist_knearest1000_{:09d}_{:09d}.bin'.format(germanShepherdStartIndex, germanShepherdEndIndex))
|
| 101 |
+
germanShepherdIndexLink = os.path.join(germanShepherdLinkValue, 'inds_knearest1000_{:09d}_{:09d}.bin'.format(germanShepherdStartIndex, germanShepherdEndIndex))
|
| 102 |
|
| 103 |
+
germanShepherdLineValue = germanShepherdQueryIndex % germanShepherdSimulation
|
| 104 |
|
| 105 |
+
germanShepherdByteValue = germanShepherdLineValue*germanShepherdNumNearest*germanShepherdNumberBytes
|
| 106 |
+
with request.urlopen(request.Request(url_dist, headers={'Range': 'bytes={:d}-'.format(germanShepherdByteValue)})) as y:
|
| 107 |
+
dist = np.frombuffer(f.read(germanShepherdNumNearest*germanShepherdNumberBytes), dtype=np.float32)
|
| 108 |
|
| 109 |
+
with request.urlopen(request.Request(url_inds, headers={'Range': 'bytes={:d}-'.format(germanShepherdByteValue)})) as y:
|
| 110 |
+
germanShepherdSimilarIndices = np.frombuffer(f.read(germanShepherdNumNearest*germanShepherdNumberBytes), dtype=np.int32)
|
| 111 |
|
| 112 |
+
return germanShepherdSimilarIndices, germanShepherdDistance
|