use iterator as a default value in lambda

Этот коммит содержится в:
Inga Ulusoy 2023-04-27 13:25:24 +02:00
родитель ea297ea23d
Коммит 0df2322774

Просмотреть файл

@ -17,7 +17,6 @@ from lavis.processors import load_processor
class MultimodalSearch(AnalysisMethod): class MultimodalSearch(AnalysisMethod):
def __init__(self, subdict: dict) -> None: def __init__(self, subdict: dict) -> None:
super().__init__(subdict) super().__init__(subdict)
# self.subdict.update(self.set_keys())
multimodal_device = torch.device("cuda" if torch.cuda.is_available() else "cpu") multimodal_device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
@ -319,9 +318,12 @@ class MultimodalSearch(AnalysisMethod):
) )
similarity = features_image_stacked @ multi_features_stacked.t() similarity = features_image_stacked @ multi_features_stacked.t()
# similarity_soft_max = torch.nn.Softmax(dim=0)(similarity / 0.01)
sorted_lists = [ sorted_lists = [
sorted(range(len(similarity)), key=lambda k: similarity[k, i], reverse=True) sorted(
range(len(similarity)),
key=lambda k, value=i: similarity[k, value],
reverse=True,
)
for i in range(len(similarity[0])) for i in range(len(similarity[0]))
] ]
places = [[item.index(i) for i in range(len(item))] for item in sorted_lists] places = [[item.index(i) for i in range(len(item))] for item in sorted_lists]