Ceyda Cinarel commited on
Commit
6cc012f
1 Parent(s): 12328bd

demo working

Browse files
app.py CHANGED
@@ -1,3 +1,102 @@
 
 
1
  import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- x = st.header('CLIP Reply Demo')
 
1
+ import nmslib
2
+ import numpy as np
3
  import streamlit as st
4
+ from transformers import AutoTokenizer, CLIPProcessor
5
+ from model import FlaxHybridCLIP
6
+ from PIL import Image
7
+ import jax.numpy as jnp
8
+ import os
9
+ import jax
10
+
11
+ st.header('Under construction')
12
+
13
+
14
+ st.title("CLIP Reply Demo")
15
+ st.sidebar.markdown(
16
+ """
17
+
18
+ Validation set: 351 images/273 deduped (There are still duplicates)
19
+
20
+ Example Queries :
21
+ """
22
+ )
23
+ @st.cache(allow_output_mutation=True)
24
+ def load_model():
25
+ model = FlaxHybridCLIP.from_pretrained("ceyda/clip-reply")
26
+ processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")
27
+ processor.tokenizer = AutoTokenizer.from_pretrained("cardiffnlp/twitter-roberta-base")
28
+ return model, processor
29
+
30
+ @st.cache(allow_output_mutation=True)
31
+ def load_image_index():
32
+ index = nmslib.init(method='hnsw', space='cosinesimil')
33
+ index.loadIndex("./features/image_embeddings", load_data=True)
34
+
35
+ return index
36
+
37
+ file_names=os.listdir("./imgs")
38
+ file_names.sort()
39
+
40
+ image_index = load_image_index()
41
+ model, processor = load_model()
42
+
43
+ col_count=4
44
+ top_k=10
45
+
46
+ show_val=st.sidebar.button("show all validation set images")
47
+ if show_val:
48
+ cols=st.sidebar.beta_columns(col_count)
49
+ for i,im in enumerate(file_names):
50
+ j=i%col_count
51
+ cols[j].image("./imgs/"+im)
52
+
53
+ # TODO
54
+ def add_image_emb(image):
55
+ image = Image.open(image).convert("RGB")
56
+
57
+ inputs = processor(text=[""], images=image, return_tensors="jax", padding=True)
58
+
59
+ inputs["pixel_values"] = jnp.transpose(inputs["pixel_values"], axes=[0, 2, 3, 1])
60
+ features = model(**inputs).image_embeds
61
+
62
+ image_index.addDataPoint(features)
63
+
64
+
65
+ def query_with_images(query_images,query_text):
66
+ images = [Image.open(im).convert("RGB") for im in query_images]
67
+ inputs = processor(text=[query_text], images=images, return_tensors="jax", padding=True)
68
+ inputs["pixel_values"] = jnp.transpose(inputs["pixel_values"], axes=[0, 2, 3, 1])
69
+ outputs = model(**inputs)
70
+ logits_per_image = outputs.logits_per_image.reshape(-1)
71
+ st.write(logits_per_image)
72
+ probs = jax.nn.softmax(logits_per_image)
73
+ st.write(probs)
74
+ st.write(list(zip(images,probs)))
75
+ results = sorted(list(zip(images,probs)),key=lambda x: x[1], reverse=True)
76
+ st.write(results)
77
+ return zip(*results)
78
+
79
+ q_cols=st.beta_columns(2)
80
+ query_text = q_cols[0].text_input("Input text", value="I love you")
81
+ query_images = q_cols[1].file_uploader("(optional) upload query image",type=['jpg','jpeg'], accept_multiple_files=True)
82
+
83
+ if query_images:
84
+ st.write("Ranking uploaded images with respect to input text")
85
+ ids, dists = query_with_images(query_images,query_text)
86
+ else:
87
+ st.write("Finding within validation set")
88
+ proc = processor(text=[query_text], images=None, return_tensors="jax", padding=True)
89
+ vec = np.asarray(model.get_text_features(**proc))
90
+ ids, dists = image_index.knnQuery(vec, k=top_k)
91
+
92
+ res_cols=st.beta_columns(col_count)
93
+ for i,(id_, dist) in enumerate(zip(ids, dists)):
94
+ j=i%col_count
95
+ with res_cols[j]:
96
+ if isinstance(id_, np.int32):
97
+ st.image("./imgs/"+file_names[id_])
98
+ else:
99
+ st.image(id_)
100
+ # st.write(file_names[id_])
101
+ st.write(dist)
102
 
 
embed_images.ipynb ADDED
@@ -0,0 +1,5020 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 2,
6
+ "source": [
7
+ "from model import FlaxHybridCLIP\n",
8
+ "from transformers import AutoTokenizer, CLIPProcessor, ViTFeatureExtractor"
9
+ ],
10
+ "outputs": [],
11
+ "metadata": {}
12
+ },
13
+ {
14
+ "cell_type": "code",
15
+ "execution_count": 3,
16
+ "source": [
17
+ "model = FlaxHybridCLIP.from_pretrained(\"ceyda/clip-reply\")\n",
18
+ "processor = CLIPProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n",
19
+ "processor.tokenizer = AutoTokenizer.from_pretrained(\"cardiffnlp/twitter-roberta-base\")\n"
20
+ ],
21
+ "outputs": [
22
+ {
23
+ "output_type": "stream",
24
+ "name": "stderr",
25
+ "text": [
26
+ "INFO:absl:Starting the local TPU driver.\n",
27
+ "INFO:absl:Unable to initialize backend 'tpu_driver': Not found: Unable to find driver in registry given worker: local://\n",
28
+ "INFO:absl:Unable to initialize backend 'gpu': Not found: Could not find registered platform with name: \"cuda\". Available platform names are: Interpreter Host\n",
29
+ "INFO:absl:Unable to initialize backend 'tpu': Invalid argument: TpuPlatform is not available.\n",
30
+ "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n"
31
+ ]
32
+ }
33
+ ],
34
+ "metadata": {}
35
+ },
36
+ {
37
+ "cell_type": "code",
38
+ "execution_count": 19,
39
+ "source": [
40
+ "\n",
41
+ "import os\n",
42
+ "import jax.numpy as jnp\n",
43
+ "from jax import jit\n",
44
+ "from PIL import Image\n",
45
+ "import nmslib\n",
46
+ "import numpy as np\n",
47
+ "from tqdm.auto import tqdm"
48
+ ],
49
+ "outputs": [],
50
+ "metadata": {}
51
+ },
52
+ {
53
+ "cell_type": "code",
54
+ "execution_count": 20,
55
+ "source": [
56
+ "basedir=\"./imgs\"\n",
57
+ "index = nmslib.init(method='hnsw', space='cosinesimil')\n",
58
+ "file_names=os.listdir(basedir)\n",
59
+ "file_names.sort()\n",
60
+ "for i,img in tqdm(enumerate(file_names)):\n",
61
+ " img_path=os.path.join(basedir,img)\n",
62
+ " image = Image.open(img_path).convert(\"RGB\")\n",
63
+ "\n",
64
+ " inputs = processor(\n",
65
+ " text=[\"\"], images=image, return_tensors=\"jax\", padding=True\n",
66
+ " )\n",
67
+ " \n",
68
+ " inputs[\"pixel_values\"] = jnp.transpose(inputs[\"pixel_values\"], axes=[0, 2, 3, 1])\n",
69
+ " features = model(**inputs).image_embeds\n",
70
+ " np_features=np.array(features)\n",
71
+ "\n",
72
+ " index.addDataPointBatch(np_features,[i])\n",
73
+ "index.createIndex({'post': 2}, print_progress=True)\n",
74
+ "index.saveIndex(\"./features/image_embeddings\", save_data=True)"
75
+ ],
76
+ "outputs": [
77
+ {
78
+ "output_type": "stream",
79
+ "name": "stderr",
80
+ "text": [
81
+ "0it [00:00, ?it/s]"
82
+ ]
83
+ },
84
+ {
85
+ "output_type": "stream",
86
+ "name": "stdout",
87
+ "text": [
88
+ "./imgs/EV0-Qp8WoAAFheU.jpg\n"
89
+ ]
90
+ },
91
+ {
92
+ "output_type": "stream",
93
+ "name": "stderr",
94
+ "text": [
95
+ "1it [00:02, 2.27s/it]"
96
+ ]
97
+ },
98
+ {
99
+ "output_type": "stream",
100
+ "name": "stdout",
101
+ "text": [
102
+ "./imgs/EV03eYZUwAAJvOw.jpg\n"
103
+ ]
104
+ },
105
+ {
106
+ "output_type": "stream",
107
+ "name": "stderr",
108
+ "text": [
109
+ "2it [00:04, 2.28s/it]"
110
+ ]
111
+ },
112
+ {
113
+ "output_type": "stream",
114
+ "name": "stdout",
115
+ "text": [
116
+ "./imgs/EV03xAhWkAEe_5j.jpg\n"
117
+ ]
118
+ },
119
+ {
120
+ "output_type": "stream",
121
+ "name": "stderr",
122
+ "text": [
123
+ "3it [00:07, 2.46s/it]"
124
+ ]
125
+ },
126
+ {
127
+ "output_type": "stream",
128
+ "name": "stdout",
129
+ "text": [
130
+ "./imgs/EV04ppxVcAEJYDr.jpg\n"
131
+ ]
132
+ },
133
+ {
134
+ "output_type": "stream",
135
+ "name": "stderr",
136
+ "text": [
137
+ "4it [00:09, 2.39s/it]"
138
+ ]
139
+ },
140
+ {
141
+ "output_type": "stream",
142
+ "name": "stdout",
143
+ "text": [
144
+ "./imgs/EV04wElUcAAc-nM.jpg\n"
145
+ ]
146
+ },
147
+ {
148
+ "output_type": "stream",
149
+ "name": "stderr",
150
+ "text": [
151
+ "5it [00:11, 2.34s/it]"
152
+ ]
153
+ },
154
+ {
155
+ "output_type": "stream",
156
+ "name": "stdout",
157
+ "text": [
158
+ "./imgs/EV05UZyWsAIDKFf.jpg\n"
159
+ ]
160
+ },
161
+ {
162
+ "output_type": "stream",
163
+ "name": "stderr",
164
+ "text": [
165
+ "6it [00:14, 2.30s/it]"
166
+ ]
167
+ },
168
+ {
169
+ "output_type": "stream",
170
+ "name": "stdout",
171
+ "text": [
172
+ "./imgs/EV08PG0XYAExhuz.jpg\n"
173
+ ]
174
+ },
175
+ {
176
+ "output_type": "stream",
177
+ "name": "stderr",
178
+ "text": [
179
+ "7it [00:16, 2.39s/it]"
180
+ ]
181
+ },
182
+ {
183
+ "output_type": "stream",
184
+ "name": "stdout",
185
+ "text": [
186
+ "./imgs/EV08uc7XQAIWTHB.jpg\n"
187
+ ]
188
+ },
189
+ {
190
+ "output_type": "stream",
191
+ "name": "stderr",
192
+ "text": [
193
+ "8it [00:18, 2.33s/it]"
194
+ ]
195
+ },
196
+ {
197
+ "output_type": "stream",
198
+ "name": "stdout",
199
+ "text": [
200
+ "./imgs/EV09U7qWkAUGI6H.jpg\n"
201
+ ]
202
+ },
203
+ {
204
+ "output_type": "stream",
205
+ "name": "stderr",
206
+ "text": [
207
+ "9it [00:21, 2.31s/it]"
208
+ ]
209
+ },
210
+ {
211
+ "output_type": "stream",
212
+ "name": "stdout",
213
+ "text": [
214
+ "./imgs/EV0B7R1U8AA-6MQ.jpg\n"
215
+ ]
216
+ },
217
+ {
218
+ "output_type": "stream",
219
+ "name": "stderr",
220
+ "text": [
221
+ "10it [00:23, 2.27s/it]"
222
+ ]
223
+ },
224
+ {
225
+ "output_type": "stream",
226
+ "name": "stdout",
227
+ "text": [
228
+ "./imgs/EV0DceuUYAUW7ro.jpg\n"
229
+ ]
230
+ },
231
+ {
232
+ "output_type": "stream",
233
+ "name": "stderr",
234
+ "text": [
235
+ "11it [00:25, 2.37s/it]"
236
+ ]
237
+ },
238
+ {
239
+ "output_type": "stream",
240
+ "name": "stdout",
241
+ "text": [
242
+ "./imgs/EV0E-WIU0AAunHB.jpg\n"
243
+ ]
244
+ },
245
+ {
246
+ "output_type": "stream",
247
+ "name": "stderr",
248
+ "text": [
249
+ "12it [00:28, 2.32s/it]"
250
+ ]
251
+ },
252
+ {
253
+ "output_type": "stream",
254
+ "name": "stdout",
255
+ "text": [
256
+ "./imgs/EV0ErtAVAAUW4WK.jpg\n"
257
+ ]
258
+ },
259
+ {
260
+ "output_type": "stream",
261
+ "name": "stderr",
262
+ "text": [
263
+ "13it [00:30, 2.28s/it]"
264
+ ]
265
+ },
266
+ {
267
+ "output_type": "stream",
268
+ "name": "stdout",
269
+ "text": [
270
+ "./imgs/EV0GCWUU4AgAtqH.jpg\n"
271
+ ]
272
+ },
273
+ {
274
+ "output_type": "stream",
275
+ "name": "stderr",
276
+ "text": [
277
+ "14it [00:32, 2.25s/it]"
278
+ ]
279
+ },
280
+ {
281
+ "output_type": "stream",
282
+ "name": "stdout",
283
+ "text": [
284
+ "./imgs/EV0Ga4yXQAAj-XB.jpg\n"
285
+ ]
286
+ },
287
+ {
288
+ "output_type": "stream",
289
+ "name": "stderr",
290
+ "text": [
291
+ "15it [00:35, 2.34s/it]"
292
+ ]
293
+ },
294
+ {
295
+ "output_type": "stream",
296
+ "name": "stdout",
297
+ "text": [
298
+ "./imgs/EV0IrdSX0AQ8rlO.jpg\n"
299
+ ]
300
+ },
301
+ {
302
+ "output_type": "stream",
303
+ "name": "stderr",
304
+ "text": [
305
+ "16it [00:37, 2.32s/it]"
306
+ ]
307
+ },
308
+ {
309
+ "output_type": "stream",
310
+ "name": "stdout",
311
+ "text": [
312
+ "./imgs/EV0JpKuU8AAs3PK.jpg\n"
313
+ ]
314
+ },
315
+ {
316
+ "output_type": "stream",
317
+ "name": "stderr",
318
+ "text": [
319
+ "17it [00:39, 2.31s/it]"
320
+ ]
321
+ },
322
+ {
323
+ "output_type": "stream",
324
+ "name": "stdout",
325
+ "text": [
326
+ "./imgs/EV0LAHjXsAEQYPQ.jpg\n"
327
+ ]
328
+ },
329
+ {
330
+ "output_type": "stream",
331
+ "name": "stderr",
332
+ "text": [
333
+ "18it [00:41, 2.30s/it]"
334
+ ]
335
+ },
336
+ {
337
+ "output_type": "stream",
338
+ "name": "stdout",
339
+ "text": [
340
+ "./imgs/EV0MiNTXkAY0jQD.jpg\n"
341
+ ]
342
+ },
343
+ {
344
+ "output_type": "stream",
345
+ "name": "stderr",
346
+ "text": [
347
+ "19it [00:44, 2.39s/it]"
348
+ ]
349
+ },
350
+ {
351
+ "output_type": "stream",
352
+ "name": "stdout",
353
+ "text": [
354
+ "./imgs/EV0MmvmWkAIK2R3.jpg\n"
355
+ ]
356
+ },
357
+ {
358
+ "output_type": "stream",
359
+ "name": "stderr",
360
+ "text": [
361
+ "20it [00:46, 2.34s/it]"
362
+ ]
363
+ },
364
+ {
365
+ "output_type": "stream",
366
+ "name": "stdout",
367
+ "text": [
368
+ "./imgs/EV0NQoFU8AMBKao.jpg\n"
369
+ ]
370
+ },
371
+ {
372
+ "output_type": "stream",
373
+ "name": "stderr",
374
+ "text": [
375
+ "21it [00:48, 2.28s/it]"
376
+ ]
377
+ },
378
+ {
379
+ "output_type": "stream",
380
+ "name": "stdout",
381
+ "text": [
382
+ "./imgs/EV0SOmQWkAEEi5S.jpg\n"
383
+ ]
384
+ },
385
+ {
386
+ "output_type": "stream",
387
+ "name": "stderr",
388
+ "text": [
389
+ "22it [00:51, 2.25s/it]"
390
+ ]
391
+ },
392
+ {
393
+ "output_type": "stream",
394
+ "name": "stdout",
395
+ "text": [
396
+ "./imgs/EV0SayJWoAACWjJ.jpg\n"
397
+ ]
398
+ },
399
+ {
400
+ "output_type": "stream",
401
+ "name": "stderr",
402
+ "text": [
403
+ "23it [00:53, 2.41s/it]"
404
+ ]
405
+ },
406
+ {
407
+ "output_type": "stream",
408
+ "name": "stdout",
409
+ "text": [
410
+ "./imgs/EV0U-giWsAA1JpH.jpg\n"
411
+ ]
412
+ },
413
+ {
414
+ "output_type": "stream",
415
+ "name": "stderr",
416
+ "text": [
417
+ "24it [00:56, 2.35s/it]"
418
+ ]
419
+ },
420
+ {
421
+ "output_type": "stream",
422
+ "name": "stdout",
423
+ "text": [
424
+ "./imgs/EV0UOtDUwAAP0ci.jpg\n"
425
+ ]
426
+ },
427
+ {
428
+ "output_type": "stream",
429
+ "name": "stderr",
430
+ "text": [
431
+ "25it [00:58, 2.30s/it]"
432
+ ]
433
+ },
434
+ {
435
+ "output_type": "stream",
436
+ "name": "stdout",
437
+ "text": [
438
+ "./imgs/EV0V1KoX0AI2xIr.jpg\n"
439
+ ]
440
+ },
441
+ {
442
+ "output_type": "stream",
443
+ "name": "stderr",
444
+ "text": [
445
+ "26it [01:00, 2.27s/it]"
446
+ ]
447
+ },
448
+ {
449
+ "output_type": "stream",
450
+ "name": "stdout",
451
+ "text": [
452
+ "./imgs/EV0VJ7OWkAkylmB.jpg\n"
453
+ ]
454
+ },
455
+ {
456
+ "output_type": "stream",
457
+ "name": "stderr",
458
+ "text": [
459
+ "27it [01:02, 2.36s/it]"
460
+ ]
461
+ },
462
+ {
463
+ "output_type": "stream",
464
+ "name": "stdout",
465
+ "text": [
466
+ "./imgs/EV0YQG5WAAoqvf7.jpg\n"
467
+ ]
468
+ },
469
+ {
470
+ "output_type": "stream",
471
+ "name": "stderr",
472
+ "text": [
473
+ "28it [01:05, 2.30s/it]"
474
+ ]
475
+ },
476
+ {
477
+ "output_type": "stream",
478
+ "name": "stdout",
479
+ "text": [
480
+ "./imgs/EV0Yvw9WkAEw5n8.jpg\n"
481
+ ]
482
+ },
483
+ {
484
+ "output_type": "stream",
485
+ "name": "stderr",
486
+ "text": [
487
+ "29it [01:07, 2.27s/it]"
488
+ ]
489
+ },
490
+ {
491
+ "output_type": "stream",
492
+ "name": "stdout",
493
+ "text": [
494
+ "./imgs/EV0YwksUcAEAVC9.jpg\n"
495
+ ]
496
+ },
497
+ {
498
+ "output_type": "stream",
499
+ "name": "stderr",
500
+ "text": [
501
+ "30it [01:09, 2.22s/it]"
502
+ ]
503
+ },
504
+ {
505
+ "output_type": "stream",
506
+ "name": "stdout",
507
+ "text": [
508
+ "./imgs/EV0_GIFWsAAQlOZ.jpg\n"
509
+ ]
510
+ },
511
+ {
512
+ "output_type": "stream",
513
+ "name": "stderr",
514
+ "text": [
515
+ "31it [01:11, 2.28s/it]"
516
+ ]
517
+ },
518
+ {
519
+ "output_type": "stream",
520
+ "name": "stdout",
521
+ "text": [
522
+ "./imgs/EV0_mQLX0AAWDns.jpg\n"
523
+ ]
524
+ },
525
+ {
526
+ "output_type": "stream",
527
+ "name": "stderr",
528
+ "text": [
529
+ "32it [01:13, 2.21s/it]"
530
+ ]
531
+ },
532
+ {
533
+ "output_type": "stream",
534
+ "name": "stdout",
535
+ "text": [
536
+ "./imgs/EV0_zPYWoAMjkPP.jpg\n"
537
+ ]
538
+ },
539
+ {
540
+ "output_type": "stream",
541
+ "name": "stderr",
542
+ "text": [
543
+ "33it [01:16, 2.20s/it]"
544
+ ]
545
+ },
546
+ {
547
+ "output_type": "stream",
548
+ "name": "stdout",
549
+ "text": [
550
+ "./imgs/EV0a8CxUEAUqhe7.jpg\n"
551
+ ]
552
+ },
553
+ {
554
+ "output_type": "stream",
555
+ "name": "stderr",
556
+ "text": [
557
+ "34it [01:18, 2.19s/it]"
558
+ ]
559
+ },
560
+ {
561
+ "output_type": "stream",
562
+ "name": "stdout",
563
+ "text": [
564
+ "./imgs/EV0cCLNXQAE-CQz.jpg\n"
565
+ ]
566
+ },
567
+ {
568
+ "output_type": "stream",
569
+ "name": "stderr",
570
+ "text": [
571
+ "35it [01:20, 2.31s/it]"
572
+ ]
573
+ },
574
+ {
575
+ "output_type": "stream",
576
+ "name": "stdout",
577
+ "text": [
578
+ "./imgs/EV0cv6oWsAU1ac6.jpg\n"
579
+ ]
580
+ },
581
+ {
582
+ "output_type": "stream",
583
+ "name": "stderr",
584
+ "text": [
585
+ "36it [01:23, 2.26s/it]"
586
+ ]
587
+ },
588
+ {
589
+ "output_type": "stream",
590
+ "name": "stdout",
591
+ "text": [
592
+ "./imgs/EV0ds2gU0AE-5dQ.jpg\n"
593
+ ]
594
+ },
595
+ {
596
+ "output_type": "stream",
597
+ "name": "stderr",
598
+ "text": [
599
+ "37it [01:25, 2.23s/it]"
600
+ ]
601
+ },
602
+ {
603
+ "output_type": "stream",
604
+ "name": "stdout",
605
+ "text": [
606
+ "./imgs/EV0dyoaWsAMZ_mq.jpg\n"
607
+ ]
608
+ },
609
+ {
610
+ "output_type": "stream",
611
+ "name": "stderr",
612
+ "text": [
613
+ "38it [01:27, 2.22s/it]"
614
+ ]
615
+ },
616
+ {
617
+ "output_type": "stream",
618
+ "name": "stdout",
619
+ "text": [
620
+ "./imgs/EV0e254WkAAq0i1.jpg\n"
621
+ ]
622
+ },
623
+ {
624
+ "output_type": "stream",
625
+ "name": "stderr",
626
+ "text": [
627
+ "39it [01:29, 2.29s/it]"
628
+ ]
629
+ },
630
+ {
631
+ "output_type": "stream",
632
+ "name": "stdout",
633
+ "text": [
634
+ "./imgs/EV0eJCDWkAkRj54.jpg\n"
635
+ ]
636
+ },
637
+ {
638
+ "output_type": "stream",
639
+ "name": "stderr",
640
+ "text": [
641
+ "40it [01:32, 2.29s/it]"
642
+ ]
643
+ },
644
+ {
645
+ "output_type": "stream",
646
+ "name": "stdout",
647
+ "text": [
648
+ "./imgs/EV0gzd3WAAIIOml.jpg\n"
649
+ ]
650
+ },
651
+ {
652
+ "output_type": "stream",
653
+ "name": "stderr",
654
+ "text": [
655
+ "41it [01:34, 2.26s/it]"
656
+ ]
657
+ },
658
+ {
659
+ "output_type": "stream",
660
+ "name": "stdout",
661
+ "text": [
662
+ "./imgs/EV0iHapWkAUR-A9.jpg\n"
663
+ ]
664
+ },
665
+ {
666
+ "output_type": "stream",
667
+ "name": "stderr",
668
+ "text": [
669
+ "42it [01:36, 2.33s/it]"
670
+ ]
671
+ },
672
+ {
673
+ "output_type": "stream",
674
+ "name": "stdout",
675
+ "text": [
676
+ "./imgs/EV0ibFUXkAIlKL4.jpg\n"
677
+ ]
678
+ },
679
+ {
680
+ "output_type": "stream",
681
+ "name": "stderr",
682
+ "text": [
683
+ "43it [01:39, 2.42s/it]"
684
+ ]
685
+ },
686
+ {
687
+ "output_type": "stream",
688
+ "name": "stdout",
689
+ "text": [
690
+ "./imgs/EV0ifANWoAMVxag.jpg\n"
691
+ ]
692
+ },
693
+ {
694
+ "output_type": "stream",
695
+ "name": "stderr",
696
+ "text": [
697
+ "44it [01:41, 2.34s/it]"
698
+ ]
699
+ },
700
+ {
701
+ "output_type": "stream",
702
+ "name": "stdout",
703
+ "text": [
704
+ "./imgs/EV0jVlWWsAEgaZm.jpg\n"
705
+ ]
706
+ },
707
+ {
708
+ "output_type": "stream",
709
+ "name": "stderr",
710
+ "text": [
711
+ "45it [01:43, 2.29s/it]"
712
+ ]
713
+ },
714
+ {
715
+ "output_type": "stream",
716
+ "name": "stdout",
717
+ "text": [
718
+ "./imgs/EV0liWfWoAUvsvH.jpg\n"
719
+ ]
720
+ },
721
+ {
722
+ "output_type": "stream",
723
+ "name": "stderr",
724
+ "text": [
725
+ "46it [01:45, 2.26s/it]"
726
+ ]
727
+ },
728
+ {
729
+ "output_type": "stream",
730
+ "name": "stdout",
731
+ "text": [
732
+ "./imgs/EV0mP0qUYAA-fb8.jpg\n"
733
+ ]
734
+ },
735
+ {
736
+ "output_type": "stream",
737
+ "name": "stderr",
738
+ "text": [
739
+ "47it [01:48, 2.37s/it]"
740
+ ]
741
+ },
742
+ {
743
+ "output_type": "stream",
744
+ "name": "stdout",
745
+ "text": [
746
+ "./imgs/EV0nZLrU0AATvGq.jpg\n"
747
+ ]
748
+ },
749
+ {
750
+ "output_type": "stream",
751
+ "name": "stderr",
752
+ "text": [
753
+ "48it [01:50, 2.30s/it]"
754
+ ]
755
+ },
756
+ {
757
+ "output_type": "stream",
758
+ "name": "stdout",
759
+ "text": [
760
+ "./imgs/EV0o-9eX0AAq-fv.jpg\n"
761
+ ]
762
+ },
763
+ {
764
+ "output_type": "stream",
765
+ "name": "stderr",
766
+ "text": [
767
+ "49it [01:52, 2.20s/it]"
768
+ ]
769
+ },
770
+ {
771
+ "output_type": "stream",
772
+ "name": "stdout",
773
+ "text": [
774
+ "./imgs/EV0oSbCUMAA8yoJ.jpg\n"
775
+ ]
776
+ },
777
+ {
778
+ "output_type": "stream",
779
+ "name": "stderr",
780
+ "text": [
781
+ "50it [01:54, 2.15s/it]"
782
+ ]
783
+ },
784
+ {
785
+ "output_type": "stream",
786
+ "name": "stdout",
787
+ "text": [
788
+ "./imgs/EV0oXx9XYAcMx4X.jpg\n"
789
+ ]
790
+ },
791
+ {
792
+ "output_type": "stream",
793
+ "name": "stderr",
794
+ "text": [
795
+ "51it [01:57, 2.27s/it]"
796
+ ]
797
+ },
798
+ {
799
+ "output_type": "stream",
800
+ "name": "stdout",
801
+ "text": [
802
+ "./imgs/EV0t_ybXsAMaId7.jpg\n"
803
+ ]
804
+ },
805
+ {
806
+ "output_type": "stream",
807
+ "name": "stderr",
808
+ "text": [
809
+ "52it [01:59, 2.24s/it]"
810
+ ]
811
+ },
812
+ {
813
+ "output_type": "stream",
814
+ "name": "stdout",
815
+ "text": [
816
+ "./imgs/EV0ucJyWkAAXPKx.jpg\n"
817
+ ]
818
+ },
819
+ {
820
+ "output_type": "stream",
821
+ "name": "stderr",
822
+ "text": [
823
+ "53it [02:01, 2.22s/it]"
824
+ ]
825
+ },
826
+ {
827
+ "output_type": "stream",
828
+ "name": "stdout",
829
+ "text": [
830
+ "./imgs/EV0v0IPWAAATJdN.jpg\n"
831
+ ]
832
+ },
833
+ {
834
+ "output_type": "stream",
835
+ "name": "stderr",
836
+ "text": [
837
+ "54it [02:03, 2.22s/it]"
838
+ ]
839
+ },
840
+ {
841
+ "output_type": "stream",
842
+ "name": "stdout",
843
+ "text": [
844
+ "./imgs/EV0vrWeWoAAgC0_.jpg\n"
845
+ ]
846
+ },
847
+ {
848
+ "output_type": "stream",
849
+ "name": "stderr",
850
+ "text": [
851
+ "55it [02:06, 2.33s/it]"
852
+ ]
853
+ },
854
+ {
855
+ "output_type": "stream",
856
+ "name": "stdout",
857
+ "text": [
858
+ "./imgs/EV0xMfxWoAEyIMm.jpg\n"
859
+ ]
860
+ },
861
+ {
862
+ "output_type": "stream",
863
+ "name": "stderr",
864
+ "text": [
865
+ "56it [02:08, 2.29s/it]"
866
+ ]
867
+ },
868
+ {
869
+ "output_type": "stream",
870
+ "name": "stdout",
871
+ "text": [
872
+ "./imgs/EV0y8LyXsAAw93Q.jpg\n"
873
+ ]
874
+ },
875
+ {
876
+ "output_type": "stream",
877
+ "name": "stderr",
878
+ "text": [
879
+ "57it [02:10, 2.28s/it]"
880
+ ]
881
+ },
882
+ {
883
+ "output_type": "stream",
884
+ "name": "stdout",
885
+ "text": [
886
+ "./imgs/EV0yjP-WAAAA6o-.jpg\n"
887
+ ]
888
+ },
889
+ {
890
+ "output_type": "stream",
891
+ "name": "stderr",
892
+ "text": [
893
+ "58it [02:12, 2.23s/it]"
894
+ ]
895
+ },
896
+ {
897
+ "output_type": "stream",
898
+ "name": "stdout",
899
+ "text": [
900
+ "./imgs/EV1AUgAX0AkuQ9w.jpg\n"
901
+ ]
902
+ },
903
+ {
904
+ "output_type": "stream",
905
+ "name": "stderr",
906
+ "text": [
907
+ "59it [02:15, 2.29s/it]"
908
+ ]
909
+ },
910
+ {
911
+ "output_type": "stream",
912
+ "name": "stdout",
913
+ "text": [
914
+ "./imgs/EV1DBBPXgAMH9Fw.jpg\n"
915
+ ]
916
+ },
917
+ {
918
+ "output_type": "stream",
919
+ "name": "stderr",
920
+ "text": [
921
+ "60it [02:17, 2.26s/it]"
922
+ ]
923
+ },
924
+ {
925
+ "output_type": "stream",
926
+ "name": "stdout",
927
+ "text": [
928
+ "./imgs/EV1GwsVWsAEZhPl.jpg\n"
929
+ ]
930
+ },
931
+ {
932
+ "output_type": "stream",
933
+ "name": "stderr",
934
+ "text": [
935
+ "61it [02:19, 2.21s/it]"
936
+ ]
937
+ },
938
+ {
939
+ "output_type": "stream",
940
+ "name": "stdout",
941
+ "text": [
942
+ "./imgs/EV1H_ohX0AAgHei.jpg\n"
943
+ ]
944
+ },
945
+ {
946
+ "output_type": "stream",
947
+ "name": "stderr",
948
+ "text": [
949
+ "62it [02:21, 2.16s/it]"
950
+ ]
951
+ },
952
+ {
953
+ "output_type": "stream",
954
+ "name": "stdout",
955
+ "text": [
956
+ "./imgs/EV1IyasXsAEZHhL.jpg\n"
957
+ ]
958
+ },
959
+ {
960
+ "output_type": "stream",
961
+ "name": "stderr",
962
+ "text": [
963
+ "63it [02:24, 2.29s/it]"
964
+ ]
965
+ },
966
+ {
967
+ "output_type": "stream",
968
+ "name": "stdout",
969
+ "text": [
970
+ "./imgs/EV1JApMXYAUw84h.jpg\n"
971
+ ]
972
+ },
973
+ {
974
+ "output_type": "stream",
975
+ "name": "stderr",
976
+ "text": [
977
+ "64it [02:26, 2.25s/it]"
978
+ ]
979
+ },
980
+ {
981
+ "output_type": "stream",
982
+ "name": "stdout",
983
+ "text": [
984
+ "./imgs/EV1KC8AX0AQol2c.jpg\n"
985
+ ]
986
+ },
987
+ {
988
+ "output_type": "stream",
989
+ "name": "stderr",
990
+ "text": [
991
+ "65it [02:28, 2.24s/it]"
992
+ ]
993
+ },
994
+ {
995
+ "output_type": "stream",
996
+ "name": "stdout",
997
+ "text": [
998
+ "./imgs/EV1KXu6UwAA1N8f.jpg\n"
999
+ ]
1000
+ },
1001
+ {
1002
+ "output_type": "stream",
1003
+ "name": "stderr",
1004
+ "text": [
1005
+ "66it [02:30, 2.20s/it]"
1006
+ ]
1007
+ },
1008
+ {
1009
+ "output_type": "stream",
1010
+ "name": "stdout",
1011
+ "text": [
1012
+ "./imgs/EV1Mqu4XkAEWf5s.jpg\n"
1013
+ ]
1014
+ },
1015
+ {
1016
+ "output_type": "stream",
1017
+ "name": "stderr",
1018
+ "text": [
1019
+ "67it [02:33, 2.31s/it]"
1020
+ ]
1021
+ },
1022
+ {
1023
+ "output_type": "stream",
1024
+ "name": "stdout",
1025
+ "text": [
1026
+ "./imgs/EV1ReSwXgAEqvWf.jpg\n"
1027
+ ]
1028
+ },
1029
+ {
1030
+ "output_type": "stream",
1031
+ "name": "stderr",
1032
+ "text": [
1033
+ "68it [02:35, 2.27s/it]"
1034
+ ]
1035
+ },
1036
+ {
1037
+ "output_type": "stream",
1038
+ "name": "stdout",
1039
+ "text": [
1040
+ "./imgs/EV1RoBnXkAELGEZ.jpg\n"
1041
+ ]
1042
+ },
1043
+ {
1044
+ "output_type": "stream",
1045
+ "name": "stderr",
1046
+ "text": [
1047
+ "69it [02:37, 2.25s/it]"
1048
+ ]
1049
+ },
1050
+ {
1051
+ "output_type": "stream",
1052
+ "name": "stdout",
1053
+ "text": [
1054
+ "./imgs/EV1SKe3XsAACcR6.jpg\n"
1055
+ ]
1056
+ },
1057
+ {
1058
+ "output_type": "stream",
1059
+ "name": "stderr",
1060
+ "text": [
1061
+ "70it [02:39, 2.25s/it]"
1062
+ ]
1063
+ },
1064
+ {
1065
+ "output_type": "stream",
1066
+ "name": "stdout",
1067
+ "text": [
1068
+ "./imgs/EV1T-CKWkAAA2dk.jpg\n"
1069
+ ]
1070
+ },
1071
+ {
1072
+ "output_type": "stream",
1073
+ "name": "stderr",
1074
+ "text": [
1075
+ "71it [02:42, 2.36s/it]"
1076
+ ]
1077
+ },
1078
+ {
1079
+ "output_type": "stream",
1080
+ "name": "stdout",
1081
+ "text": [
1082
+ "./imgs/EV1UY0mXsAAJxZ0.jpg\n"
1083
+ ]
1084
+ },
1085
+ {
1086
+ "output_type": "stream",
1087
+ "name": "stderr",
1088
+ "text": [
1089
+ "72it [02:44, 2.32s/it]"
1090
+ ]
1091
+ },
1092
+ {
1093
+ "output_type": "stream",
1094
+ "name": "stdout",
1095
+ "text": [
1096
+ "./imgs/EV1UcU-X0AEPYZJ.jpg\n"
1097
+ ]
1098
+ },
1099
+ {
1100
+ "output_type": "stream",
1101
+ "name": "stderr",
1102
+ "text": [
1103
+ "73it [02:47, 2.34s/it]"
1104
+ ]
1105
+ },
1106
+ {
1107
+ "output_type": "stream",
1108
+ "name": "stdout",
1109
+ "text": [
1110
+ "./imgs/EV1UwCpXQAQmfeY.jpg\n"
1111
+ ]
1112
+ },
1113
+ {
1114
+ "output_type": "stream",
1115
+ "name": "stderr",
1116
+ "text": [
1117
+ "74it [02:49, 2.29s/it]"
1118
+ ]
1119
+ },
1120
+ {
1121
+ "output_type": "stream",
1122
+ "name": "stdout",
1123
+ "text": [
1124
+ "./imgs/EV1WRb_WoAAFXGj.jpg\n"
1125
+ ]
1126
+ },
1127
+ {
1128
+ "output_type": "stream",
1129
+ "name": "stderr",
1130
+ "text": [
1131
+ "75it [02:52, 2.40s/it]"
1132
+ ]
1133
+ },
1134
+ {
1135
+ "output_type": "stream",
1136
+ "name": "stdout",
1137
+ "text": [
1138
+ "./imgs/EV1WnnIXQAEPDSU.jpg\n"
1139
+ ]
1140
+ },
1141
+ {
1142
+ "output_type": "stream",
1143
+ "name": "stderr",
1144
+ "text": [
1145
+ "76it [02:54, 2.28s/it]"
1146
+ ]
1147
+ },
1148
+ {
1149
+ "output_type": "stream",
1150
+ "name": "stdout",
1151
+ "text": [
1152
+ "./imgs/EV1XXhmVAAABrDC.jpg\n"
1153
+ ]
1154
+ },
1155
+ {
1156
+ "output_type": "stream",
1157
+ "name": "stderr",
1158
+ "text": [
1159
+ "77it [02:56, 2.30s/it]"
1160
+ ]
1161
+ },
1162
+ {
1163
+ "output_type": "stream",
1164
+ "name": "stdout",
1165
+ "text": [
1166
+ "./imgs/EV1aDxvXQAA4Nov.jpg\n"
1167
+ ]
1168
+ },
1169
+ {
1170
+ "output_type": "stream",
1171
+ "name": "stderr",
1172
+ "text": [
1173
+ "78it [02:58, 2.23s/it]"
1174
+ ]
1175
+ },
1176
+ {
1177
+ "output_type": "stream",
1178
+ "name": "stdout",
1179
+ "text": [
1180
+ "./imgs/EV1c9jAU0AEg3Tg.jpg\n"
1181
+ ]
1182
+ },
1183
+ {
1184
+ "output_type": "stream",
1185
+ "name": "stderr",
1186
+ "text": [
1187
+ "79it [03:01, 2.35s/it]"
1188
+ ]
1189
+ },
1190
+ {
1191
+ "output_type": "stream",
1192
+ "name": "stdout",
1193
+ "text": [
1194
+ "./imgs/EV1cA2zWsAYHCF0.jpg\n"
1195
+ ]
1196
+ },
1197
+ {
1198
+ "output_type": "stream",
1199
+ "name": "stderr",
1200
+ "text": [
1201
+ "80it [03:03, 2.31s/it]"
1202
+ ]
1203
+ },
1204
+ {
1205
+ "output_type": "stream",
1206
+ "name": "stdout",
1207
+ "text": [
1208
+ "./imgs/EV1ctmSXYAYz7fZ.jpg\n"
1209
+ ]
1210
+ },
1211
+ {
1212
+ "output_type": "stream",
1213
+ "name": "stderr",
1214
+ "text": [
1215
+ "81it [03:05, 2.27s/it]"
1216
+ ]
1217
+ },
1218
+ {
1219
+ "output_type": "stream",
1220
+ "name": "stdout",
1221
+ "text": [
1222
+ "./imgs/EV1ehXHU8AEf66p.jpg\n"
1223
+ ]
1224
+ },
1225
+ {
1226
+ "output_type": "stream",
1227
+ "name": "stderr",
1228
+ "text": [
1229
+ "82it [03:07, 2.24s/it]"
1230
+ ]
1231
+ },
1232
+ {
1233
+ "output_type": "stream",
1234
+ "name": "stdout",
1235
+ "text": [
1236
+ "./imgs/EV1elHRXYAACK5D.jpg\n"
1237
+ ]
1238
+ },
1239
+ {
1240
+ "output_type": "stream",
1241
+ "name": "stderr",
1242
+ "text": [
1243
+ "83it [03:10, 2.34s/it]"
1244
+ ]
1245
+ },
1246
+ {
1247
+ "output_type": "stream",
1248
+ "name": "stdout",
1249
+ "text": [
1250
+ "./imgs/EV1f1ziXgAEjwnd.jpg\n"
1251
+ ]
1252
+ },
1253
+ {
1254
+ "output_type": "stream",
1255
+ "name": "stderr",
1256
+ "text": [
1257
+ "84it [03:12, 2.30s/it]"
1258
+ ]
1259
+ },
1260
+ {
1261
+ "output_type": "stream",
1262
+ "name": "stdout",
1263
+ "text": [
1264
+ "./imgs/EV1g0u1XkAIzSlP.jpg\n"
1265
+ ]
1266
+ },
1267
+ {
1268
+ "output_type": "stream",
1269
+ "name": "stderr",
1270
+ "text": [
1271
+ "85it [03:14, 2.29s/it]"
1272
+ ]
1273
+ },
1274
+ {
1275
+ "output_type": "stream",
1276
+ "name": "stdout",
1277
+ "text": [
1278
+ "./imgs/EV1gxtHUYAczfYI.jpg\n"
1279
+ ]
1280
+ },
1281
+ {
1282
+ "output_type": "stream",
1283
+ "name": "stderr",
1284
+ "text": [
1285
+ "86it [03:16, 2.25s/it]"
1286
+ ]
1287
+ },
1288
+ {
1289
+ "output_type": "stream",
1290
+ "name": "stdout",
1291
+ "text": [
1292
+ "./imgs/EV1iGeBU8AAwQZQ.jpg\n"
1293
+ ]
1294
+ },
1295
+ {
1296
+ "output_type": "stream",
1297
+ "name": "stderr",
1298
+ "text": [
1299
+ "87it [03:19, 2.36s/it]"
1300
+ ]
1301
+ },
1302
+ {
1303
+ "output_type": "stream",
1304
+ "name": "stdout",
1305
+ "text": [
1306
+ "./imgs/EV1ipodXsAASHL7.jpg\n"
1307
+ ]
1308
+ },
1309
+ {
1310
+ "output_type": "stream",
1311
+ "name": "stderr",
1312
+ "text": [
1313
+ "88it [03:21, 2.31s/it]"
1314
+ ]
1315
+ },
1316
+ {
1317
+ "output_type": "stream",
1318
+ "name": "stdout",
1319
+ "text": [
1320
+ "./imgs/EV1jDE4XQAAeG9K.jpg\n"
1321
+ ]
1322
+ },
1323
+ {
1324
+ "output_type": "stream",
1325
+ "name": "stderr",
1326
+ "text": [
1327
+ "89it [03:23, 2.28s/it]"
1328
+ ]
1329
+ },
1330
+ {
1331
+ "output_type": "stream",
1332
+ "name": "stdout",
1333
+ "text": [
1334
+ "./imgs/EV1kinoXsAEU0X2.jpg\n"
1335
+ ]
1336
+ },
1337
+ {
1338
+ "output_type": "stream",
1339
+ "name": "stderr",
1340
+ "text": [
1341
+ "90it [03:26, 2.26s/it]"
1342
+ ]
1343
+ },
1344
+ {
1345
+ "output_type": "stream",
1346
+ "name": "stdout",
1347
+ "text": [
1348
+ "./imgs/EV1kvyNWkAAxRX2.jpg\n"
1349
+ ]
1350
+ },
1351
+ {
1352
+ "output_type": "stream",
1353
+ "name": "stderr",
1354
+ "text": [
1355
+ "91it [03:28, 2.41s/it]"
1356
+ ]
1357
+ },
1358
+ {
1359
+ "output_type": "stream",
1360
+ "name": "stdout",
1361
+ "text": [
1362
+ "./imgs/EV1lOhgWAAMbjLl.jpg\n"
1363
+ ]
1364
+ },
1365
+ {
1366
+ "output_type": "stream",
1367
+ "name": "stderr",
1368
+ "text": [
1369
+ "92it [03:31, 2.36s/it]"
1370
+ ]
1371
+ },
1372
+ {
1373
+ "output_type": "stream",
1374
+ "name": "stdout",
1375
+ "text": [
1376
+ "./imgs/EV1nHl0WoAAAYcs.jpg\n"
1377
+ ]
1378
+ },
1379
+ {
1380
+ "output_type": "stream",
1381
+ "name": "stderr",
1382
+ "text": [
1383
+ "93it [03:33, 2.31s/it]"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "output_type": "stream",
1388
+ "name": "stdout",
1389
+ "text": [
1390
+ "./imgs/EV1o2d2WsAY7Jf0.jpg\n"
1391
+ ]
1392
+ },
1393
+ {
1394
+ "output_type": "stream",
1395
+ "name": "stderr",
1396
+ "text": [
1397
+ "94it [03:35, 2.29s/it]"
1398
+ ]
1399
+ },
1400
+ {
1401
+ "output_type": "stream",
1402
+ "name": "stdout",
1403
+ "text": [
1404
+ "./imgs/EV1pJdlWkAcvGv9.jpg\n"
1405
+ ]
1406
+ },
1407
+ {
1408
+ "output_type": "stream",
1409
+ "name": "stderr",
1410
+ "text": [
1411
+ "95it [03:38, 2.40s/it]"
1412
+ ]
1413
+ },
1414
+ {
1415
+ "output_type": "stream",
1416
+ "name": "stdout",
1417
+ "text": [
1418
+ "./imgs/EV1psvAVcAEWN6W.jpg\n"
1419
+ ]
1420
+ },
1421
+ {
1422
+ "output_type": "stream",
1423
+ "name": "stderr",
1424
+ "text": [
1425
+ "96it [03:40, 2.34s/it]"
1426
+ ]
1427
+ },
1428
+ {
1429
+ "output_type": "stream",
1430
+ "name": "stdout",
1431
+ "text": [
1432
+ "./imgs/EV1q08WWAAEU6Rk.jpg\n"
1433
+ ]
1434
+ },
1435
+ {
1436
+ "output_type": "stream",
1437
+ "name": "stderr",
1438
+ "text": [
1439
+ "97it [03:42, 2.30s/it]"
1440
+ ]
1441
+ },
1442
+ {
1443
+ "output_type": "stream",
1444
+ "name": "stdout",
1445
+ "text": [
1446
+ "./imgs/EV1rRcaXQAE3iKj.jpg\n"
1447
+ ]
1448
+ },
1449
+ {
1450
+ "output_type": "stream",
1451
+ "name": "stderr",
1452
+ "text": [
1453
+ "98it [03:44, 2.27s/it]"
1454
+ ]
1455
+ },
1456
+ {
1457
+ "output_type": "stream",
1458
+ "name": "stdout",
1459
+ "text": [
1460
+ "./imgs/EV1sOIGU0AAV1Qb.jpg\n"
1461
+ ]
1462
+ },
1463
+ {
1464
+ "output_type": "stream",
1465
+ "name": "stderr",
1466
+ "text": [
1467
+ "99it [03:47, 2.36s/it]"
1468
+ ]
1469
+ },
1470
+ {
1471
+ "output_type": "stream",
1472
+ "name": "stdout",
1473
+ "text": [
1474
+ "./imgs/EVv-fTjUMAErXnO.jpg\n"
1475
+ ]
1476
+ },
1477
+ {
1478
+ "output_type": "stream",
1479
+ "name": "stderr",
1480
+ "text": [
1481
+ "100it [03:49, 2.32s/it]"
1482
+ ]
1483
+ },
1484
+ {
1485
+ "output_type": "stream",
1486
+ "name": "stdout",
1487
+ "text": [
1488
+ "./imgs/EVv0KS-UYAAbmzL.jpg\n"
1489
+ ]
1490
+ },
1491
+ {
1492
+ "output_type": "stream",
1493
+ "name": "stderr",
1494
+ "text": [
1495
+ "101it [03:51, 2.28s/it]"
1496
+ ]
1497
+ },
1498
+ {
1499
+ "output_type": "stream",
1500
+ "name": "stdout",
1501
+ "text": [
1502
+ "./imgs/EVv0zoNUwAACWaT.jpg\n"
1503
+ ]
1504
+ },
1505
+ {
1506
+ "output_type": "stream",
1507
+ "name": "stderr",
1508
+ "text": [
1509
+ "102it [03:54, 2.26s/it]"
1510
+ ]
1511
+ },
1512
+ {
1513
+ "output_type": "stream",
1514
+ "name": "stdout",
1515
+ "text": [
1516
+ "./imgs/EVv2LPbU8AAVd14.jpg\n"
1517
+ ]
1518
+ },
1519
+ {
1520
+ "output_type": "stream",
1521
+ "name": "stderr",
1522
+ "text": [
1523
+ "103it [03:56, 2.37s/it]"
1524
+ ]
1525
+ },
1526
+ {
1527
+ "output_type": "stream",
1528
+ "name": "stdout",
1529
+ "text": [
1530
+ "./imgs/EVv3juJX0AAcTpX.jpg\n"
1531
+ ]
1532
+ },
1533
+ {
1534
+ "output_type": "stream",
1535
+ "name": "stderr",
1536
+ "text": [
1537
+ "104it [03:58, 2.32s/it]"
1538
+ ]
1539
+ },
1540
+ {
1541
+ "output_type": "stream",
1542
+ "name": "stdout",
1543
+ "text": [
1544
+ "./imgs/EVv53AmXYAEVOPo.jpg\n"
1545
+ ]
1546
+ },
1547
+ {
1548
+ "output_type": "stream",
1549
+ "name": "stderr",
1550
+ "text": [
1551
+ "105it [04:01, 2.28s/it]"
1552
+ ]
1553
+ },
1554
+ {
1555
+ "output_type": "stream",
1556
+ "name": "stdout",
1557
+ "text": [
1558
+ "./imgs/EVv6gq8XQAAQfr8.jpg\n"
1559
+ ]
1560
+ },
1561
+ {
1562
+ "output_type": "stream",
1563
+ "name": "stderr",
1564
+ "text": [
1565
+ "106it [04:03, 2.26s/it]"
1566
+ ]
1567
+ },
1568
+ {
1569
+ "output_type": "stream",
1570
+ "name": "stdout",
1571
+ "text": [
1572
+ "./imgs/EVv7E2mXkAQM0px.jpg\n"
1573
+ ]
1574
+ },
1575
+ {
1576
+ "output_type": "stream",
1577
+ "name": "stderr",
1578
+ "text": [
1579
+ "107it [04:05, 2.36s/it]"
1580
+ ]
1581
+ },
1582
+ {
1583
+ "output_type": "stream",
1584
+ "name": "stdout",
1585
+ "text": [
1586
+ "./imgs/EVv86snWAAEl8Cb.jpg\n"
1587
+ ]
1588
+ },
1589
+ {
1590
+ "output_type": "stream",
1591
+ "name": "stderr",
1592
+ "text": [
1593
+ "108it [04:08, 2.32s/it]"
1594
+ ]
1595
+ },
1596
+ {
1597
+ "output_type": "stream",
1598
+ "name": "stdout",
1599
+ "text": [
1600
+ "./imgs/EVv9YzaWoAEiff_.jpg\n"
1601
+ ]
1602
+ },
1603
+ {
1604
+ "output_type": "stream",
1605
+ "name": "stderr",
1606
+ "text": [
1607
+ "109it [04:10, 2.29s/it]"
1608
+ ]
1609
+ },
1610
+ {
1611
+ "output_type": "stream",
1612
+ "name": "stdout",
1613
+ "text": [
1614
+ "./imgs/EVv9btwU0AA1xuS.jpg\n"
1615
+ ]
1616
+ },
1617
+ {
1618
+ "output_type": "stream",
1619
+ "name": "stderr",
1620
+ "text": [
1621
+ "110it [04:12, 2.26s/it]"
1622
+ ]
1623
+ },
1624
+ {
1625
+ "output_type": "stream",
1626
+ "name": "stdout",
1627
+ "text": [
1628
+ "./imgs/EVv9oU1WoAMV_MZ.jpg\n"
1629
+ ]
1630
+ },
1631
+ {
1632
+ "output_type": "stream",
1633
+ "name": "stderr",
1634
+ "text": [
1635
+ "111it [04:14, 2.33s/it]"
1636
+ ]
1637
+ },
1638
+ {
1639
+ "output_type": "stream",
1640
+ "name": "stdout",
1641
+ "text": [
1642
+ "./imgs/EVvZ6pmVAAAtT_t.jpg\n"
1643
+ ]
1644
+ },
1645
+ {
1646
+ "output_type": "stream",
1647
+ "name": "stderr",
1648
+ "text": [
1649
+ "112it [04:17, 2.27s/it]"
1650
+ ]
1651
+ },
1652
+ {
1653
+ "output_type": "stream",
1654
+ "name": "stdout",
1655
+ "text": [
1656
+ "./imgs/EVvZu-lUcAEPiTu.jpg\n"
1657
+ ]
1658
+ },
1659
+ {
1660
+ "output_type": "stream",
1661
+ "name": "stderr",
1662
+ "text": [
1663
+ "113it [04:19, 2.24s/it]"
1664
+ ]
1665
+ },
1666
+ {
1667
+ "output_type": "stream",
1668
+ "name": "stdout",
1669
+ "text": [
1670
+ "./imgs/EVv_4NUVAAEzdvT.jpg\n"
1671
+ ]
1672
+ },
1673
+ {
1674
+ "output_type": "stream",
1675
+ "name": "stderr",
1676
+ "text": [
1677
+ "114it [04:21, 2.22s/it]"
1678
+ ]
1679
+ },
1680
+ {
1681
+ "output_type": "stream",
1682
+ "name": "stdout",
1683
+ "text": [
1684
+ "./imgs/EVv_EJoUYAA3B5h.jpg\n"
1685
+ ]
1686
+ },
1687
+ {
1688
+ "output_type": "stream",
1689
+ "name": "stderr",
1690
+ "text": [
1691
+ "115it [04:23, 2.32s/it]"
1692
+ ]
1693
+ },
1694
+ {
1695
+ "output_type": "stream",
1696
+ "name": "stdout",
1697
+ "text": [
1698
+ "./imgs/EVv_NdRXkAMlnjQ.jpg\n"
1699
+ ]
1700
+ },
1701
+ {
1702
+ "output_type": "stream",
1703
+ "name": "stderr",
1704
+ "text": [
1705
+ "116it [04:26, 2.29s/it]"
1706
+ ]
1707
+ },
1708
+ {
1709
+ "output_type": "stream",
1710
+ "name": "stdout",
1711
+ "text": [
1712
+ "./imgs/EVv_PpEXgAIBS9v.jpg\n"
1713
+ ]
1714
+ },
1715
+ {
1716
+ "output_type": "stream",
1717
+ "name": "stderr",
1718
+ "text": [
1719
+ "117it [04:28, 2.29s/it]"
1720
+ ]
1721
+ },
1722
+ {
1723
+ "output_type": "stream",
1724
+ "name": "stdout",
1725
+ "text": [
1726
+ "./imgs/EVvczbcXYAAWOYH.jpg\n"
1727
+ ]
1728
+ },
1729
+ {
1730
+ "output_type": "stream",
1731
+ "name": "stderr",
1732
+ "text": [
1733
+ "118it [04:30, 2.27s/it]"
1734
+ ]
1735
+ },
1736
+ {
1737
+ "output_type": "stream",
1738
+ "name": "stdout",
1739
+ "text": [
1740
+ "./imgs/EVvdRg1WkAcyBSK.jpg\n"
1741
+ ]
1742
+ },
1743
+ {
1744
+ "output_type": "stream",
1745
+ "name": "stderr",
1746
+ "text": [
1747
+ "119it [04:33, 2.36s/it]"
1748
+ ]
1749
+ },
1750
+ {
1751
+ "output_type": "stream",
1752
+ "name": "stdout",
1753
+ "text": [
1754
+ "./imgs/EVvds4HUEAAMONM.jpg\n"
1755
+ ]
1756
+ },
1757
+ {
1758
+ "output_type": "stream",
1759
+ "name": "stderr",
1760
+ "text": [
1761
+ "120it [04:35, 2.31s/it]"
1762
+ ]
1763
+ },
1764
+ {
1765
+ "output_type": "stream",
1766
+ "name": "stdout",
1767
+ "text": [
1768
+ "./imgs/EVvezlzWoAYWVvi.jpg\n"
1769
+ ]
1770
+ },
1771
+ {
1772
+ "output_type": "stream",
1773
+ "name": "stderr",
1774
+ "text": [
1775
+ "121it [04:37, 2.27s/it]"
1776
+ ]
1777
+ },
1778
+ {
1779
+ "output_type": "stream",
1780
+ "name": "stdout",
1781
+ "text": [
1782
+ "./imgs/EVvfdj_UwAEvnZL.jpg\n"
1783
+ ]
1784
+ },
1785
+ {
1786
+ "output_type": "stream",
1787
+ "name": "stderr",
1788
+ "text": [
1789
+ "122it [04:39, 2.25s/it]"
1790
+ ]
1791
+ },
1792
+ {
1793
+ "output_type": "stream",
1794
+ "name": "stdout",
1795
+ "text": [
1796
+ "./imgs/EVvguO6XYAYtVH4.jpg\n"
1797
+ ]
1798
+ },
1799
+ {
1800
+ "output_type": "stream",
1801
+ "name": "stderr",
1802
+ "text": [
1803
+ "123it [04:42, 2.37s/it]"
1804
+ ]
1805
+ },
1806
+ {
1807
+ "output_type": "stream",
1808
+ "name": "stdout",
1809
+ "text": [
1810
+ "./imgs/EVvh5kkU0AAw2ei.jpg\n"
1811
+ ]
1812
+ },
1813
+ {
1814
+ "output_type": "stream",
1815
+ "name": "stderr",
1816
+ "text": [
1817
+ "124it [04:44, 2.31s/it]"
1818
+ ]
1819
+ },
1820
+ {
1821
+ "output_type": "stream",
1822
+ "name": "stdout",
1823
+ "text": [
1824
+ "./imgs/EVvhCRaWsAIWo67.jpg\n"
1825
+ ]
1826
+ },
1827
+ {
1828
+ "output_type": "stream",
1829
+ "name": "stderr",
1830
+ "text": [
1831
+ "125it [04:46, 2.28s/it]"
1832
+ ]
1833
+ },
1834
+ {
1835
+ "output_type": "stream",
1836
+ "name": "stdout",
1837
+ "text": [
1838
+ "./imgs/EVvi8u-XgAIEY9A.jpg\n"
1839
+ ]
1840
+ },
1841
+ {
1842
+ "output_type": "stream",
1843
+ "name": "stderr",
1844
+ "text": [
1845
+ "126it [04:49, 2.25s/it]"
1846
+ ]
1847
+ },
1848
+ {
1849
+ "output_type": "stream",
1850
+ "name": "stdout",
1851
+ "text": [
1852
+ "./imgs/EVviMr9XYAAcDcs.jpg\n"
1853
+ ]
1854
+ },
1855
+ {
1856
+ "output_type": "stream",
1857
+ "name": "stderr",
1858
+ "text": [
1859
+ "127it [04:51, 2.36s/it]"
1860
+ ]
1861
+ },
1862
+ {
1863
+ "output_type": "stream",
1864
+ "name": "stdout",
1865
+ "text": [
1866
+ "./imgs/EVvj615XQAE2gMr.jpg\n"
1867
+ ]
1868
+ },
1869
+ {
1870
+ "output_type": "stream",
1871
+ "name": "stderr",
1872
+ "text": [
1873
+ "128it [04:53, 2.31s/it]"
1874
+ ]
1875
+ },
1876
+ {
1877
+ "output_type": "stream",
1878
+ "name": "stdout",
1879
+ "text": [
1880
+ "./imgs/EVvjlhPU4AABSQY.jpg\n"
1881
+ ]
1882
+ },
1883
+ {
1884
+ "output_type": "stream",
1885
+ "name": "stderr",
1886
+ "text": [
1887
+ "129it [04:56, 2.28s/it]"
1888
+ ]
1889
+ },
1890
+ {
1891
+ "output_type": "stream",
1892
+ "name": "stdout",
1893
+ "text": [
1894
+ "./imgs/EVvk9BWWkAAUznD.jpg\n"
1895
+ ]
1896
+ },
1897
+ {
1898
+ "output_type": "stream",
1899
+ "name": "stderr",
1900
+ "text": [
1901
+ "130it [04:58, 2.27s/it]"
1902
+ ]
1903
+ },
1904
+ {
1905
+ "output_type": "stream",
1906
+ "name": "stdout",
1907
+ "text": [
1908
+ "./imgs/EVvlVv1XgAc6uMP.jpg\n"
1909
+ ]
1910
+ },
1911
+ {
1912
+ "output_type": "stream",
1913
+ "name": "stderr",
1914
+ "text": [
1915
+ "131it [05:00, 2.36s/it]"
1916
+ ]
1917
+ },
1918
+ {
1919
+ "output_type": "stream",
1920
+ "name": "stdout",
1921
+ "text": [
1922
+ "./imgs/EVvlcNSX0AAyUlm.jpg\n"
1923
+ ]
1924
+ },
1925
+ {
1926
+ "output_type": "stream",
1927
+ "name": "stderr",
1928
+ "text": [
1929
+ "132it [05:03, 2.31s/it]"
1930
+ ]
1931
+ },
1932
+ {
1933
+ "output_type": "stream",
1934
+ "name": "stdout",
1935
+ "text": [
1936
+ "./imgs/EVvlfTuXQAUl8qe.jpg\n"
1937
+ ]
1938
+ },
1939
+ {
1940
+ "output_type": "stream",
1941
+ "name": "stderr",
1942
+ "text": [
1943
+ "133it [05:05, 2.29s/it]"
1944
+ ]
1945
+ },
1946
+ {
1947
+ "output_type": "stream",
1948
+ "name": "stdout",
1949
+ "text": [
1950
+ "./imgs/EVvmKlqUwAE2bxM.jpg\n"
1951
+ ]
1952
+ },
1953
+ {
1954
+ "output_type": "stream",
1955
+ "name": "stderr",
1956
+ "text": [
1957
+ "134it [05:07, 2.27s/it]"
1958
+ ]
1959
+ },
1960
+ {
1961
+ "output_type": "stream",
1962
+ "name": "stdout",
1963
+ "text": [
1964
+ "./imgs/EVvmKq_XsAEp0Yo.jpg\n"
1965
+ ]
1966
+ },
1967
+ {
1968
+ "output_type": "stream",
1969
+ "name": "stderr",
1970
+ "text": [
1971
+ "135it [05:10, 2.37s/it]"
1972
+ ]
1973
+ },
1974
+ {
1975
+ "output_type": "stream",
1976
+ "name": "stdout",
1977
+ "text": [
1978
+ "./imgs/EVvnU1iWkAAxBrw.jpg\n"
1979
+ ]
1980
+ },
1981
+ {
1982
+ "output_type": "stream",
1983
+ "name": "stderr",
1984
+ "text": [
1985
+ "136it [05:12, 2.32s/it]"
1986
+ ]
1987
+ },
1988
+ {
1989
+ "output_type": "stream",
1990
+ "name": "stdout",
1991
+ "text": [
1992
+ "./imgs/EVvoFLmX0AM6J4i.jpg\n"
1993
+ ]
1994
+ },
1995
+ {
1996
+ "output_type": "stream",
1997
+ "name": "stderr",
1998
+ "text": [
1999
+ "137it [05:14, 2.28s/it]"
2000
+ ]
2001
+ },
2002
+ {
2003
+ "output_type": "stream",
2004
+ "name": "stdout",
2005
+ "text": [
2006
+ "./imgs/EVvptSBWoAMBA6w.jpg\n"
2007
+ ]
2008
+ },
2009
+ {
2010
+ "output_type": "stream",
2011
+ "name": "stderr",
2012
+ "text": [
2013
+ "138it [05:16, 2.28s/it]"
2014
+ ]
2015
+ },
2016
+ {
2017
+ "output_type": "stream",
2018
+ "name": "stdout",
2019
+ "text": [
2020
+ "./imgs/EVvqyCWX0AUiKEl.jpg\n"
2021
+ ]
2022
+ },
2023
+ {
2024
+ "output_type": "stream",
2025
+ "name": "stderr",
2026
+ "text": [
2027
+ "139it [05:19, 2.37s/it]"
2028
+ ]
2029
+ },
2030
+ {
2031
+ "output_type": "stream",
2032
+ "name": "stdout",
2033
+ "text": [
2034
+ "./imgs/EVvqzyYWAAErHkg.jpg\n"
2035
+ ]
2036
+ },
2037
+ {
2038
+ "output_type": "stream",
2039
+ "name": "stderr",
2040
+ "text": [
2041
+ "140it [05:21, 2.32s/it]"
2042
+ ]
2043
+ },
2044
+ {
2045
+ "output_type": "stream",
2046
+ "name": "stdout",
2047
+ "text": [
2048
+ "./imgs/EVvraHVX0AYtUyL.jpg\n"
2049
+ ]
2050
+ },
2051
+ {
2052
+ "output_type": "stream",
2053
+ "name": "stderr",
2054
+ "text": [
2055
+ "141it [05:23, 2.29s/it]"
2056
+ ]
2057
+ },
2058
+ {
2059
+ "output_type": "stream",
2060
+ "name": "stdout",
2061
+ "text": [
2062
+ "./imgs/EVvrjCCXgAQQJ7m.jpg\n"
2063
+ ]
2064
+ },
2065
+ {
2066
+ "output_type": "stream",
2067
+ "name": "stderr",
2068
+ "text": [
2069
+ "142it [05:26, 2.27s/it]"
2070
+ ]
2071
+ },
2072
+ {
2073
+ "output_type": "stream",
2074
+ "name": "stdout",
2075
+ "text": [
2076
+ "./imgs/EVvx6VlXsAUVyqD.jpg\n"
2077
+ ]
2078
+ },
2079
+ {
2080
+ "output_type": "stream",
2081
+ "name": "stderr",
2082
+ "text": [
2083
+ "143it [05:28, 2.37s/it]"
2084
+ ]
2085
+ },
2086
+ {
2087
+ "output_type": "stream",
2088
+ "name": "stdout",
2089
+ "text": [
2090
+ "./imgs/EVvxHs8XgAA3lhG.jpg\n"
2091
+ ]
2092
+ },
2093
+ {
2094
+ "output_type": "stream",
2095
+ "name": "stderr",
2096
+ "text": [
2097
+ "144it [05:30, 2.34s/it]"
2098
+ ]
2099
+ },
2100
+ {
2101
+ "output_type": "stream",
2102
+ "name": "stdout",
2103
+ "text": [
2104
+ "./imgs/EVvxXp5WoAAhCCY.jpg\n"
2105
+ ]
2106
+ },
2107
+ {
2108
+ "output_type": "stream",
2109
+ "name": "stderr",
2110
+ "text": [
2111
+ "145it [05:33, 2.30s/it]"
2112
+ ]
2113
+ },
2114
+ {
2115
+ "output_type": "stream",
2116
+ "name": "stdout",
2117
+ "text": [
2118
+ "./imgs/EVw-7vHWAAEQRNc.jpg\n"
2119
+ ]
2120
+ },
2121
+ {
2122
+ "output_type": "stream",
2123
+ "name": "stderr",
2124
+ "text": [
2125
+ "146it [05:35, 2.24s/it]"
2126
+ ]
2127
+ },
2128
+ {
2129
+ "output_type": "stream",
2130
+ "name": "stdout",
2131
+ "text": [
2132
+ "./imgs/EVw-wGJWAAEirEp.jpg\n"
2133
+ ]
2134
+ },
2135
+ {
2136
+ "output_type": "stream",
2137
+ "name": "stderr",
2138
+ "text": [
2139
+ "147it [05:37, 2.34s/it]"
2140
+ ]
2141
+ },
2142
+ {
2143
+ "output_type": "stream",
2144
+ "name": "stdout",
2145
+ "text": [
2146
+ "./imgs/EVw0X7YWsAQqyhu.jpg\n"
2147
+ ]
2148
+ },
2149
+ {
2150
+ "output_type": "stream",
2151
+ "name": "stderr",
2152
+ "text": [
2153
+ "148it [05:39, 2.30s/it]"
2154
+ ]
2155
+ },
2156
+ {
2157
+ "output_type": "stream",
2158
+ "name": "stdout",
2159
+ "text": [
2160
+ "./imgs/EVw0nVTWAAAp1mu.jpg\n"
2161
+ ]
2162
+ },
2163
+ {
2164
+ "output_type": "stream",
2165
+ "name": "stderr",
2166
+ "text": [
2167
+ "149it [05:42, 2.25s/it]"
2168
+ ]
2169
+ },
2170
+ {
2171
+ "output_type": "stream",
2172
+ "name": "stdout",
2173
+ "text": [
2174
+ "./imgs/EVw1JKlXkAI2jI2.jpg\n"
2175
+ ]
2176
+ },
2177
+ {
2178
+ "output_type": "stream",
2179
+ "name": "stderr",
2180
+ "text": [
2181
+ "150it [05:44, 2.21s/it]"
2182
+ ]
2183
+ },
2184
+ {
2185
+ "output_type": "stream",
2186
+ "name": "stdout",
2187
+ "text": [
2188
+ "./imgs/EVw28mTWsAAD-el.jpg\n"
2189
+ ]
2190
+ },
2191
+ {
2192
+ "output_type": "stream",
2193
+ "name": "stderr",
2194
+ "text": [
2195
+ "151it [05:46, 2.31s/it]"
2196
+ ]
2197
+ },
2198
+ {
2199
+ "output_type": "stream",
2200
+ "name": "stdout",
2201
+ "text": [
2202
+ "./imgs/EVw2uOcWkAEUppP.jpg\n"
2203
+ ]
2204
+ },
2205
+ {
2206
+ "output_type": "stream",
2207
+ "name": "stderr",
2208
+ "text": [
2209
+ "152it [05:49, 2.28s/it]"
2210
+ ]
2211
+ },
2212
+ {
2213
+ "output_type": "stream",
2214
+ "name": "stdout",
2215
+ "text": [
2216
+ "./imgs/EVw2z5UWoAA_API.jpg\n"
2217
+ ]
2218
+ },
2219
+ {
2220
+ "output_type": "stream",
2221
+ "name": "stderr",
2222
+ "text": [
2223
+ "153it [05:51, 2.30s/it]"
2224
+ ]
2225
+ },
2226
+ {
2227
+ "output_type": "stream",
2228
+ "name": "stdout",
2229
+ "text": [
2230
+ "./imgs/EVw5MdkXsAAkpmD.jpg\n"
2231
+ ]
2232
+ },
2233
+ {
2234
+ "output_type": "stream",
2235
+ "name": "stderr",
2236
+ "text": [
2237
+ "154it [05:53, 2.32s/it]"
2238
+ ]
2239
+ },
2240
+ {
2241
+ "output_type": "stream",
2242
+ "name": "stdout",
2243
+ "text": [
2244
+ "./imgs/EVw6YMXWsAIOmLT.jpg\n"
2245
+ ]
2246
+ },
2247
+ {
2248
+ "output_type": "stream",
2249
+ "name": "stderr",
2250
+ "text": [
2251
+ "155it [05:56, 2.41s/it]"
2252
+ ]
2253
+ },
2254
+ {
2255
+ "output_type": "stream",
2256
+ "name": "stdout",
2257
+ "text": [
2258
+ "./imgs/EVw6oL4XsAU3gxD.jpg\n"
2259
+ ]
2260
+ },
2261
+ {
2262
+ "output_type": "stream",
2263
+ "name": "stderr",
2264
+ "text": [
2265
+ "156it [05:58, 2.34s/it]"
2266
+ ]
2267
+ },
2268
+ {
2269
+ "output_type": "stream",
2270
+ "name": "stdout",
2271
+ "text": [
2272
+ "./imgs/EVw73XsWoAE6SyO.jpg\n"
2273
+ ]
2274
+ },
2275
+ {
2276
+ "output_type": "stream",
2277
+ "name": "stderr",
2278
+ "text": [
2279
+ "157it [06:00, 2.27s/it]"
2280
+ ]
2281
+ },
2282
+ {
2283
+ "output_type": "stream",
2284
+ "name": "stdout",
2285
+ "text": [
2286
+ "./imgs/EVw74kiXQAEmqXF.jpg\n"
2287
+ ]
2288
+ },
2289
+ {
2290
+ "output_type": "stream",
2291
+ "name": "stderr",
2292
+ "text": [
2293
+ "158it [06:02, 2.25s/it]"
2294
+ ]
2295
+ },
2296
+ {
2297
+ "output_type": "stream",
2298
+ "name": "stdout",
2299
+ "text": [
2300
+ "./imgs/EVw8m-iXsAc0YYK.jpg\n"
2301
+ ]
2302
+ },
2303
+ {
2304
+ "output_type": "stream",
2305
+ "name": "stderr",
2306
+ "text": [
2307
+ "159it [06:05, 2.36s/it]"
2308
+ ]
2309
+ },
2310
+ {
2311
+ "output_type": "stream",
2312
+ "name": "stdout",
2313
+ "text": [
2314
+ "./imgs/EVw9QZIX0AAOdn0.jpg\n"
2315
+ ]
2316
+ },
2317
+ {
2318
+ "output_type": "stream",
2319
+ "name": "stderr",
2320
+ "text": [
2321
+ "160it [06:07, 2.31s/it]"
2322
+ ]
2323
+ },
2324
+ {
2325
+ "output_type": "stream",
2326
+ "name": "stdout",
2327
+ "text": [
2328
+ "./imgs/EVw9l-PWkAAzn0v.jpg\n"
2329
+ ]
2330
+ },
2331
+ {
2332
+ "output_type": "stream",
2333
+ "name": "stderr",
2334
+ "text": [
2335
+ "161it [06:09, 2.28s/it]"
2336
+ ]
2337
+ },
2338
+ {
2339
+ "output_type": "stream",
2340
+ "name": "stdout",
2341
+ "text": [
2342
+ "./imgs/EVwA3IGWAAI5qJK.jpg\n"
2343
+ ]
2344
+ },
2345
+ {
2346
+ "output_type": "stream",
2347
+ "name": "stderr",
2348
+ "text": [
2349
+ "162it [06:12, 2.25s/it]"
2350
+ ]
2351
+ },
2352
+ {
2353
+ "output_type": "stream",
2354
+ "name": "stdout",
2355
+ "text": [
2356
+ "./imgs/EVwCecbXkAIuCF5.jpg\n"
2357
+ ]
2358
+ },
2359
+ {
2360
+ "output_type": "stream",
2361
+ "name": "stderr",
2362
+ "text": [
2363
+ "163it [06:14, 2.36s/it]"
2364
+ ]
2365
+ },
2366
+ {
2367
+ "output_type": "stream",
2368
+ "name": "stdout",
2369
+ "text": [
2370
+ "./imgs/EVwDAQhWkAIAvVM.jpg\n"
2371
+ ]
2372
+ },
2373
+ {
2374
+ "output_type": "stream",
2375
+ "name": "stderr",
2376
+ "text": [
2377
+ "164it [06:16, 2.32s/it]"
2378
+ ]
2379
+ },
2380
+ {
2381
+ "output_type": "stream",
2382
+ "name": "stdout",
2383
+ "text": [
2384
+ "./imgs/EVwDPlMVcAAIu7Q.jpg\n"
2385
+ ]
2386
+ },
2387
+ {
2388
+ "output_type": "stream",
2389
+ "name": "stderr",
2390
+ "text": [
2391
+ "165it [06:19, 2.28s/it]"
2392
+ ]
2393
+ },
2394
+ {
2395
+ "output_type": "stream",
2396
+ "name": "stdout",
2397
+ "text": [
2398
+ "./imgs/EVwDtyVXQAED8W_.jpg\n"
2399
+ ]
2400
+ },
2401
+ {
2402
+ "output_type": "stream",
2403
+ "name": "stderr",
2404
+ "text": [
2405
+ "166it [06:21, 2.26s/it]"
2406
+ ]
2407
+ },
2408
+ {
2409
+ "output_type": "stream",
2410
+ "name": "stdout",
2411
+ "text": [
2412
+ "./imgs/EVwFYNAU8AEljF4.jpg\n"
2413
+ ]
2414
+ },
2415
+ {
2416
+ "output_type": "stream",
2417
+ "name": "stderr",
2418
+ "text": [
2419
+ "167it [06:23, 2.37s/it]"
2420
+ ]
2421
+ },
2422
+ {
2423
+ "output_type": "stream",
2424
+ "name": "stdout",
2425
+ "text": [
2426
+ "./imgs/EVwFeNWXYAsc92E.jpg\n"
2427
+ ]
2428
+ },
2429
+ {
2430
+ "output_type": "stream",
2431
+ "name": "stderr",
2432
+ "text": [
2433
+ "168it [06:26, 2.34s/it]"
2434
+ ]
2435
+ },
2436
+ {
2437
+ "output_type": "stream",
2438
+ "name": "stdout",
2439
+ "text": [
2440
+ "./imgs/EVwGcYtX0AIE4z_.jpg\n"
2441
+ ]
2442
+ },
2443
+ {
2444
+ "output_type": "stream",
2445
+ "name": "stderr",
2446
+ "text": [
2447
+ "169it [06:28, 2.30s/it]"
2448
+ ]
2449
+ },
2450
+ {
2451
+ "output_type": "stream",
2452
+ "name": "stdout",
2453
+ "text": [
2454
+ "./imgs/EVwGoOxXYAEw6wz.jpg\n"
2455
+ ]
2456
+ },
2457
+ {
2458
+ "output_type": "stream",
2459
+ "name": "stderr",
2460
+ "text": [
2461
+ "170it [06:30, 2.25s/it]"
2462
+ ]
2463
+ },
2464
+ {
2465
+ "output_type": "stream",
2466
+ "name": "stdout",
2467
+ "text": [
2468
+ "./imgs/EVwHHx8XYA0q0yv.jpg\n"
2469
+ ]
2470
+ },
2471
+ {
2472
+ "output_type": "stream",
2473
+ "name": "stderr",
2474
+ "text": [
2475
+ "171it [06:33, 2.35s/it]"
2476
+ ]
2477
+ },
2478
+ {
2479
+ "output_type": "stream",
2480
+ "name": "stdout",
2481
+ "text": [
2482
+ "./imgs/EVwIXjjXYBcKhrf.jpg\n"
2483
+ ]
2484
+ },
2485
+ {
2486
+ "output_type": "stream",
2487
+ "name": "stderr",
2488
+ "text": [
2489
+ "172it [06:35, 2.29s/it]"
2490
+ ]
2491
+ },
2492
+ {
2493
+ "output_type": "stream",
2494
+ "name": "stdout",
2495
+ "text": [
2496
+ "./imgs/EVwJItCVAAAtpWm.jpg\n"
2497
+ ]
2498
+ },
2499
+ {
2500
+ "output_type": "stream",
2501
+ "name": "stderr",
2502
+ "text": [
2503
+ "173it [06:37, 2.26s/it]"
2504
+ ]
2505
+ },
2506
+ {
2507
+ "output_type": "stream",
2508
+ "name": "stdout",
2509
+ "text": [
2510
+ "./imgs/EVwKZySU8AA5aNV.jpg\n"
2511
+ ]
2512
+ },
2513
+ {
2514
+ "output_type": "stream",
2515
+ "name": "stderr",
2516
+ "text": [
2517
+ "174it [06:39, 2.23s/it]"
2518
+ ]
2519
+ },
2520
+ {
2521
+ "output_type": "stream",
2522
+ "name": "stdout",
2523
+ "text": [
2524
+ "./imgs/EVwNUwiUwAAu0sG.jpg\n"
2525
+ ]
2526
+ },
2527
+ {
2528
+ "output_type": "stream",
2529
+ "name": "stderr",
2530
+ "text": [
2531
+ "175it [06:42, 2.33s/it]"
2532
+ ]
2533
+ },
2534
+ {
2535
+ "output_type": "stream",
2536
+ "name": "stdout",
2537
+ "text": [
2538
+ "./imgs/EVwOL8rUcAA2zOA.jpg\n"
2539
+ ]
2540
+ },
2541
+ {
2542
+ "output_type": "stream",
2543
+ "name": "stderr",
2544
+ "text": [
2545
+ "176it [06:44, 2.29s/it]"
2546
+ ]
2547
+ },
2548
+ {
2549
+ "output_type": "stream",
2550
+ "name": "stdout",
2551
+ "text": [
2552
+ "./imgs/EVwOWpZXYAcsBGH.jpg\n"
2553
+ ]
2554
+ },
2555
+ {
2556
+ "output_type": "stream",
2557
+ "name": "stderr",
2558
+ "text": [
2559
+ "177it [06:46, 2.26s/it]"
2560
+ ]
2561
+ },
2562
+ {
2563
+ "output_type": "stream",
2564
+ "name": "stdout",
2565
+ "text": [
2566
+ "./imgs/EVwOllEWoAAVFM1.jpg\n"
2567
+ ]
2568
+ },
2569
+ {
2570
+ "output_type": "stream",
2571
+ "name": "stderr",
2572
+ "text": [
2573
+ "178it [06:48, 2.24s/it]"
2574
+ ]
2575
+ },
2576
+ {
2577
+ "output_type": "stream",
2578
+ "name": "stdout",
2579
+ "text": [
2580
+ "./imgs/EVwRUZuVAAANfTG.jpg\n"
2581
+ ]
2582
+ },
2583
+ {
2584
+ "output_type": "stream",
2585
+ "name": "stderr",
2586
+ "text": [
2587
+ "179it [06:51, 2.42s/it]"
2588
+ ]
2589
+ },
2590
+ {
2591
+ "output_type": "stream",
2592
+ "name": "stdout",
2593
+ "text": [
2594
+ "./imgs/EVwRnVGWAAAmyik.jpg\n"
2595
+ ]
2596
+ },
2597
+ {
2598
+ "output_type": "stream",
2599
+ "name": "stderr",
2600
+ "text": [
2601
+ "180it [06:53, 2.37s/it]"
2602
+ ]
2603
+ },
2604
+ {
2605
+ "output_type": "stream",
2606
+ "name": "stdout",
2607
+ "text": [
2608
+ "./imgs/EVwTJvfXgAMv_VZ.jpg\n"
2609
+ ]
2610
+ },
2611
+ {
2612
+ "output_type": "stream",
2613
+ "name": "stderr",
2614
+ "text": [
2615
+ "181it [06:55, 2.29s/it]"
2616
+ ]
2617
+ },
2618
+ {
2619
+ "output_type": "stream",
2620
+ "name": "stdout",
2621
+ "text": [
2622
+ "./imgs/EVwVzH1WsAMN64y.jpg\n"
2623
+ ]
2624
+ },
2625
+ {
2626
+ "output_type": "stream",
2627
+ "name": "stderr",
2628
+ "text": [
2629
+ "182it [06:58, 2.27s/it]"
2630
+ ]
2631
+ },
2632
+ {
2633
+ "output_type": "stream",
2634
+ "name": "stdout",
2635
+ "text": [
2636
+ "./imgs/EVwWVnTWAAInTBW.jpg\n"
2637
+ ]
2638
+ },
2639
+ {
2640
+ "output_type": "stream",
2641
+ "name": "stderr",
2642
+ "text": [
2643
+ "183it [07:00, 2.38s/it]"
2644
+ ]
2645
+ },
2646
+ {
2647
+ "output_type": "stream",
2648
+ "name": "stdout",
2649
+ "text": [
2650
+ "./imgs/EVwZEckUwAIVBVS.jpg\n"
2651
+ ]
2652
+ },
2653
+ {
2654
+ "output_type": "stream",
2655
+ "name": "stderr",
2656
+ "text": [
2657
+ "184it [07:02, 2.32s/it]"
2658
+ ]
2659
+ },
2660
+ {
2661
+ "output_type": "stream",
2662
+ "name": "stdout",
2663
+ "text": [
2664
+ "./imgs/EVwZZs9XgAAIEzD.jpg\n"
2665
+ ]
2666
+ },
2667
+ {
2668
+ "output_type": "stream",
2669
+ "name": "stderr",
2670
+ "text": [
2671
+ "185it [07:05, 2.30s/it]"
2672
+ ]
2673
+ },
2674
+ {
2675
+ "output_type": "stream",
2676
+ "name": "stdout",
2677
+ "text": [
2678
+ "./imgs/EVwa2qtXQAE96cr.jpg\n"
2679
+ ]
2680
+ },
2681
+ {
2682
+ "output_type": "stream",
2683
+ "name": "stderr",
2684
+ "text": [
2685
+ "186it [07:07, 2.28s/it]"
2686
+ ]
2687
+ },
2688
+ {
2689
+ "output_type": "stream",
2690
+ "name": "stdout",
2691
+ "text": [
2692
+ "./imgs/EVwaDoBXkAAsxEO.jpg\n"
2693
+ ]
2694
+ },
2695
+ {
2696
+ "output_type": "stream",
2697
+ "name": "stderr",
2698
+ "text": [
2699
+ "187it [07:10, 2.40s/it]"
2700
+ ]
2701
+ },
2702
+ {
2703
+ "output_type": "stream",
2704
+ "name": "stdout",
2705
+ "text": [
2706
+ "./imgs/EVwbZQzWoAUXh_s.jpg\n"
2707
+ ]
2708
+ },
2709
+ {
2710
+ "output_type": "stream",
2711
+ "name": "stderr",
2712
+ "text": [
2713
+ "188it [07:12, 2.34s/it]"
2714
+ ]
2715
+ },
2716
+ {
2717
+ "output_type": "stream",
2718
+ "name": "stdout",
2719
+ "text": [
2720
+ "./imgs/EVwc220WsAIR12q.jpg\n"
2721
+ ]
2722
+ },
2723
+ {
2724
+ "output_type": "stream",
2725
+ "name": "stderr",
2726
+ "text": [
2727
+ "189it [07:14, 2.29s/it]"
2728
+ ]
2729
+ },
2730
+ {
2731
+ "output_type": "stream",
2732
+ "name": "stdout",
2733
+ "text": [
2734
+ "./imgs/EVwcuMyXkAErl9w.jpg\n"
2735
+ ]
2736
+ },
2737
+ {
2738
+ "output_type": "stream",
2739
+ "name": "stderr",
2740
+ "text": [
2741
+ "190it [07:16, 2.30s/it]"
2742
+ ]
2743
+ },
2744
+ {
2745
+ "output_type": "stream",
2746
+ "name": "stdout",
2747
+ "text": [
2748
+ "./imgs/EVwcvbKWkAAKzao.jpg\n"
2749
+ ]
2750
+ },
2751
+ {
2752
+ "output_type": "stream",
2753
+ "name": "stderr",
2754
+ "text": [
2755
+ "191it [07:19, 2.41s/it]"
2756
+ ]
2757
+ },
2758
+ {
2759
+ "output_type": "stream",
2760
+ "name": "stdout",
2761
+ "text": [
2762
+ "./imgs/EVwf2uhXsAgn8DV.jpg\n"
2763
+ ]
2764
+ },
2765
+ {
2766
+ "output_type": "stream",
2767
+ "name": "stderr",
2768
+ "text": [
2769
+ "192it [07:21, 2.39s/it]"
2770
+ ]
2771
+ },
2772
+ {
2773
+ "output_type": "stream",
2774
+ "name": "stdout",
2775
+ "text": [
2776
+ "./imgs/EVwhDnNWAAgOD6G.jpg\n"
2777
+ ]
2778
+ },
2779
+ {
2780
+ "output_type": "stream",
2781
+ "name": "stderr",
2782
+ "text": [
2783
+ "193it [07:23, 2.33s/it]"
2784
+ ]
2785
+ },
2786
+ {
2787
+ "output_type": "stream",
2788
+ "name": "stdout",
2789
+ "text": [
2790
+ "./imgs/EVwhMsrXkAELhaF.jpg\n"
2791
+ ]
2792
+ },
2793
+ {
2794
+ "output_type": "stream",
2795
+ "name": "stderr",
2796
+ "text": [
2797
+ "194it [07:26, 2.30s/it]"
2798
+ ]
2799
+ },
2800
+ {
2801
+ "output_type": "stream",
2802
+ "name": "stdout",
2803
+ "text": [
2804
+ "./imgs/EVwi6RVWsAA2yMG.jpg\n"
2805
+ ]
2806
+ },
2807
+ {
2808
+ "output_type": "stream",
2809
+ "name": "stderr",
2810
+ "text": [
2811
+ "195it [07:28, 2.38s/it]"
2812
+ ]
2813
+ },
2814
+ {
2815
+ "output_type": "stream",
2816
+ "name": "stdout",
2817
+ "text": [
2818
+ "./imgs/EVwla-pXQAIc7oM.jpg\n"
2819
+ ]
2820
+ },
2821
+ {
2822
+ "output_type": "stream",
2823
+ "name": "stderr",
2824
+ "text": [
2825
+ "196it [07:30, 2.28s/it]"
2826
+ ]
2827
+ },
2828
+ {
2829
+ "output_type": "stream",
2830
+ "name": "stdout",
2831
+ "text": [
2832
+ "./imgs/EVwlwGhWkAEkCP-.jpg\n"
2833
+ ]
2834
+ },
2835
+ {
2836
+ "output_type": "stream",
2837
+ "name": "stderr",
2838
+ "text": [
2839
+ "197it [07:32, 2.24s/it]"
2840
+ ]
2841
+ },
2842
+ {
2843
+ "output_type": "stream",
2844
+ "name": "stdout",
2845
+ "text": [
2846
+ "./imgs/EVwm-RLWkAIpcJR.jpg\n"
2847
+ ]
2848
+ },
2849
+ {
2850
+ "output_type": "stream",
2851
+ "name": "stderr",
2852
+ "text": [
2853
+ "198it [07:35, 2.23s/it]"
2854
+ ]
2855
+ },
2856
+ {
2857
+ "output_type": "stream",
2858
+ "name": "stdout",
2859
+ "text": [
2860
+ "./imgs/EVwmd3YWAAMLqvG.jpg\n"
2861
+ ]
2862
+ },
2863
+ {
2864
+ "output_type": "stream",
2865
+ "name": "stderr",
2866
+ "text": [
2867
+ "199it [07:37, 2.35s/it]"
2868
+ ]
2869
+ },
2870
+ {
2871
+ "output_type": "stream",
2872
+ "name": "stdout",
2873
+ "text": [
2874
+ "./imgs/EVwnHoDXkAAWmAY.jpg\n"
2875
+ ]
2876
+ },
2877
+ {
2878
+ "output_type": "stream",
2879
+ "name": "stderr",
2880
+ "text": [
2881
+ "200it [07:40, 2.31s/it]"
2882
+ ]
2883
+ },
2884
+ {
2885
+ "output_type": "stream",
2886
+ "name": "stdout",
2887
+ "text": [
2888
+ "./imgs/EVwpn5NUcAAzlyD.jpg\n"
2889
+ ]
2890
+ },
2891
+ {
2892
+ "output_type": "stream",
2893
+ "name": "stderr",
2894
+ "text": [
2895
+ "201it [07:42, 2.27s/it]"
2896
+ ]
2897
+ },
2898
+ {
2899
+ "output_type": "stream",
2900
+ "name": "stdout",
2901
+ "text": [
2902
+ "./imgs/EVwr80WXkAAkH62.jpg\n"
2903
+ ]
2904
+ },
2905
+ {
2906
+ "output_type": "stream",
2907
+ "name": "stderr",
2908
+ "text": [
2909
+ "202it [07:44, 2.24s/it]"
2910
+ ]
2911
+ },
2912
+ {
2913
+ "output_type": "stream",
2914
+ "name": "stdout",
2915
+ "text": [
2916
+ "./imgs/EVwr8PgWoAA5RgU.jpg\n"
2917
+ ]
2918
+ },
2919
+ {
2920
+ "output_type": "stream",
2921
+ "name": "stderr",
2922
+ "text": [
2923
+ "203it [07:46, 2.34s/it]"
2924
+ ]
2925
+ },
2926
+ {
2927
+ "output_type": "stream",
2928
+ "name": "stdout",
2929
+ "text": [
2930
+ "./imgs/EVwr8gsWsAI6AJV.jpg\n"
2931
+ ]
2932
+ },
2933
+ {
2934
+ "output_type": "stream",
2935
+ "name": "stderr",
2936
+ "text": [
2937
+ "204it [07:49, 2.31s/it]"
2938
+ ]
2939
+ },
2940
+ {
2941
+ "output_type": "stream",
2942
+ "name": "stdout",
2943
+ "text": [
2944
+ "./imgs/EVwtp-gXQAENxZX.jpg\n"
2945
+ ]
2946
+ },
2947
+ {
2948
+ "output_type": "stream",
2949
+ "name": "stderr",
2950
+ "text": [
2951
+ "205it [07:51, 2.27s/it]"
2952
+ ]
2953
+ },
2954
+ {
2955
+ "output_type": "stream",
2956
+ "name": "stdout",
2957
+ "text": [
2958
+ "./imgs/EVwu6k-WsAIgxwP.jpg\n"
2959
+ ]
2960
+ },
2961
+ {
2962
+ "output_type": "stream",
2963
+ "name": "stderr",
2964
+ "text": [
2965
+ "206it [07:53, 2.21s/it]"
2966
+ ]
2967
+ },
2968
+ {
2969
+ "output_type": "stream",
2970
+ "name": "stdout",
2971
+ "text": [
2972
+ "./imgs/EVwvm9OXkAsRMy5.jpg\n"
2973
+ ]
2974
+ },
2975
+ {
2976
+ "output_type": "stream",
2977
+ "name": "stderr",
2978
+ "text": [
2979
+ "207it [07:55, 2.30s/it]"
2980
+ ]
2981
+ },
2982
+ {
2983
+ "output_type": "stream",
2984
+ "name": "stdout",
2985
+ "text": [
2986
+ "./imgs/EVwwqruXYAs6taP.jpg\n"
2987
+ ]
2988
+ },
2989
+ {
2990
+ "output_type": "stream",
2991
+ "name": "stderr",
2992
+ "text": [
2993
+ "208it [07:58, 2.25s/it]"
2994
+ ]
2995
+ },
2996
+ {
2997
+ "output_type": "stream",
2998
+ "name": "stdout",
2999
+ "text": [
3000
+ "./imgs/EVwxgzIVAAAHyZC.jpg\n"
3001
+ ]
3002
+ },
3003
+ {
3004
+ "output_type": "stream",
3005
+ "name": "stderr",
3006
+ "text": [
3007
+ "209it [08:00, 2.18s/it]"
3008
+ ]
3009
+ },
3010
+ {
3011
+ "output_type": "stream",
3012
+ "name": "stdout",
3013
+ "text": [
3014
+ "./imgs/EVwy2blWkAEtBPx.jpg\n"
3015
+ ]
3016
+ },
3017
+ {
3018
+ "output_type": "stream",
3019
+ "name": "stderr",
3020
+ "text": [
3021
+ "210it [08:02, 2.17s/it]"
3022
+ ]
3023
+ },
3024
+ {
3025
+ "output_type": "stream",
3026
+ "name": "stdout",
3027
+ "text": [
3028
+ "./imgs/EVwyLJpXQAY6HiY.jpg\n"
3029
+ ]
3030
+ },
3031
+ {
3032
+ "output_type": "stream",
3033
+ "name": "stderr",
3034
+ "text": [
3035
+ "211it [08:04, 2.32s/it]"
3036
+ ]
3037
+ },
3038
+ {
3039
+ "output_type": "stream",
3040
+ "name": "stdout",
3041
+ "text": [
3042
+ "./imgs/EVwzfGLWAAIZuaN.jpg\n"
3043
+ ]
3044
+ },
3045
+ {
3046
+ "output_type": "stream",
3047
+ "name": "stderr",
3048
+ "text": [
3049
+ "212it [08:07, 2.28s/it]"
3050
+ ]
3051
+ },
3052
+ {
3053
+ "output_type": "stream",
3054
+ "name": "stdout",
3055
+ "text": [
3056
+ "./imgs/EVx-87QXgAIcbuW.jpg\n"
3057
+ ]
3058
+ },
3059
+ {
3060
+ "output_type": "stream",
3061
+ "name": "stderr",
3062
+ "text": [
3063
+ "213it [08:09, 2.25s/it]"
3064
+ ]
3065
+ },
3066
+ {
3067
+ "output_type": "stream",
3068
+ "name": "stdout",
3069
+ "text": [
3070
+ "./imgs/EVx0QhjXkAgKTO5.jpg\n"
3071
+ ]
3072
+ },
3073
+ {
3074
+ "output_type": "stream",
3075
+ "name": "stderr",
3076
+ "text": [
3077
+ "214it [08:11, 2.24s/it]"
3078
+ ]
3079
+ },
3080
+ {
3081
+ "output_type": "stream",
3082
+ "name": "stdout",
3083
+ "text": [
3084
+ "./imgs/EVx2u3_XQAcY8K5.jpg\n"
3085
+ ]
3086
+ },
3087
+ {
3088
+ "output_type": "stream",
3089
+ "name": "stderr",
3090
+ "text": [
3091
+ "215it [08:14, 2.43s/it]"
3092
+ ]
3093
+ },
3094
+ {
3095
+ "output_type": "stream",
3096
+ "name": "stdout",
3097
+ "text": [
3098
+ "./imgs/EVx4DsWWkAADKOk.jpg\n"
3099
+ ]
3100
+ },
3101
+ {
3102
+ "output_type": "stream",
3103
+ "name": "stderr",
3104
+ "text": [
3105
+ "216it [08:16, 2.36s/it]"
3106
+ ]
3107
+ },
3108
+ {
3109
+ "output_type": "stream",
3110
+ "name": "stdout",
3111
+ "text": [
3112
+ "./imgs/EVx5APMXgAAe0dK.jpg\n"
3113
+ ]
3114
+ },
3115
+ {
3116
+ "output_type": "stream",
3117
+ "name": "stderr",
3118
+ "text": [
3119
+ "217it [08:18, 2.30s/it]"
3120
+ ]
3121
+ },
3122
+ {
3123
+ "output_type": "stream",
3124
+ "name": "stdout",
3125
+ "text": [
3126
+ "./imgs/EVx5ViSWoAEm9pd.jpg\n"
3127
+ ]
3128
+ },
3129
+ {
3130
+ "output_type": "stream",
3131
+ "name": "stderr",
3132
+ "text": [
3133
+ "218it [08:20, 2.26s/it]"
3134
+ ]
3135
+ },
3136
+ {
3137
+ "output_type": "stream",
3138
+ "name": "stdout",
3139
+ "text": [
3140
+ "./imgs/EVx8TOhXYAIDIiv.jpg\n"
3141
+ ]
3142
+ },
3143
+ {
3144
+ "output_type": "stream",
3145
+ "name": "stderr",
3146
+ "text": [
3147
+ "219it [08:23, 2.35s/it]"
3148
+ ]
3149
+ },
3150
+ {
3151
+ "output_type": "stream",
3152
+ "name": "stdout",
3153
+ "text": [
3154
+ "./imgs/EVxAx8bXsAAwZv0.jpg\n"
3155
+ ]
3156
+ },
3157
+ {
3158
+ "output_type": "stream",
3159
+ "name": "stderr",
3160
+ "text": [
3161
+ "220it [08:25, 2.26s/it]"
3162
+ ]
3163
+ },
3164
+ {
3165
+ "output_type": "stream",
3166
+ "name": "stdout",
3167
+ "text": [
3168
+ "./imgs/EVxDjztXgAAr6xk.jpg\n"
3169
+ ]
3170
+ },
3171
+ {
3172
+ "output_type": "stream",
3173
+ "name": "stderr",
3174
+ "text": [
3175
+ "221it [08:27, 2.25s/it]"
3176
+ ]
3177
+ },
3178
+ {
3179
+ "output_type": "stream",
3180
+ "name": "stdout",
3181
+ "text": [
3182
+ "./imgs/EVxEZRoXgAEhmw4.jpg\n"
3183
+ ]
3184
+ },
3185
+ {
3186
+ "output_type": "stream",
3187
+ "name": "stderr",
3188
+ "text": [
3189
+ "222it [08:29, 2.22s/it]"
3190
+ ]
3191
+ },
3192
+ {
3193
+ "output_type": "stream",
3194
+ "name": "stdout",
3195
+ "text": [
3196
+ "./imgs/EVxFhbIWAAAXMs3.jpg\n"
3197
+ ]
3198
+ },
3199
+ {
3200
+ "output_type": "stream",
3201
+ "name": "stderr",
3202
+ "text": [
3203
+ "223it [08:32, 2.33s/it]"
3204
+ ]
3205
+ },
3206
+ {
3207
+ "output_type": "stream",
3208
+ "name": "stdout",
3209
+ "text": [
3210
+ "./imgs/EVxFnCjWsA4KJs2.jpg\n"
3211
+ ]
3212
+ },
3213
+ {
3214
+ "output_type": "stream",
3215
+ "name": "stderr",
3216
+ "text": [
3217
+ "224it [08:34, 2.30s/it]"
3218
+ ]
3219
+ },
3220
+ {
3221
+ "output_type": "stream",
3222
+ "name": "stdout",
3223
+ "text": [
3224
+ "./imgs/EVxHh-TVAAEphMW.jpg\n"
3225
+ ]
3226
+ },
3227
+ {
3228
+ "output_type": "stream",
3229
+ "name": "stderr",
3230
+ "text": [
3231
+ "225it [08:36, 2.28s/it]"
3232
+ ]
3233
+ },
3234
+ {
3235
+ "output_type": "stream",
3236
+ "name": "stdout",
3237
+ "text": [
3238
+ "./imgs/EVxKSdgU0AAToXY.jpg\n"
3239
+ ]
3240
+ },
3241
+ {
3242
+ "output_type": "stream",
3243
+ "name": "stderr",
3244
+ "text": [
3245
+ "226it [08:39, 2.25s/it]"
3246
+ ]
3247
+ },
3248
+ {
3249
+ "output_type": "stream",
3250
+ "name": "stdout",
3251
+ "text": [
3252
+ "./imgs/EVxKVg8UYAAY_v-.jpg\n"
3253
+ ]
3254
+ },
3255
+ {
3256
+ "output_type": "stream",
3257
+ "name": "stderr",
3258
+ "text": [
3259
+ "227it [08:41, 2.41s/it]"
3260
+ ]
3261
+ },
3262
+ {
3263
+ "output_type": "stream",
3264
+ "name": "stdout",
3265
+ "text": [
3266
+ "./imgs/EVxKjzxXgAAfz5y.jpg\n"
3267
+ ]
3268
+ },
3269
+ {
3270
+ "output_type": "stream",
3271
+ "name": "stderr",
3272
+ "text": [
3273
+ "228it [08:44, 2.36s/it]"
3274
+ ]
3275
+ },
3276
+ {
3277
+ "output_type": "stream",
3278
+ "name": "stdout",
3279
+ "text": [
3280
+ "./imgs/EVxKznPXsAAuVSn.jpg\n"
3281
+ ]
3282
+ },
3283
+ {
3284
+ "output_type": "stream",
3285
+ "name": "stderr",
3286
+ "text": [
3287
+ "229it [08:46, 2.33s/it]"
3288
+ ]
3289
+ },
3290
+ {
3291
+ "output_type": "stream",
3292
+ "name": "stdout",
3293
+ "text": [
3294
+ "./imgs/EVxM4NYWkAA5F5r.jpg\n"
3295
+ ]
3296
+ },
3297
+ {
3298
+ "output_type": "stream",
3299
+ "name": "stderr",
3300
+ "text": [
3301
+ "230it [08:48, 2.30s/it]"
3302
+ ]
3303
+ },
3304
+ {
3305
+ "output_type": "stream",
3306
+ "name": "stdout",
3307
+ "text": [
3308
+ "./imgs/EVxM9NQXsAIlKyP.jpg\n"
3309
+ ]
3310
+ },
3311
+ {
3312
+ "output_type": "stream",
3313
+ "name": "stderr",
3314
+ "text": [
3315
+ "231it [08:51, 2.47s/it]"
3316
+ ]
3317
+ },
3318
+ {
3319
+ "output_type": "stream",
3320
+ "name": "stdout",
3321
+ "text": [
3322
+ "./imgs/EVxMAzeXsAAKVw_.jpg\n"
3323
+ ]
3324
+ },
3325
+ {
3326
+ "output_type": "stream",
3327
+ "name": "stderr",
3328
+ "text": [
3329
+ "232it [08:53, 2.42s/it]"
3330
+ ]
3331
+ },
3332
+ {
3333
+ "output_type": "stream",
3334
+ "name": "stdout",
3335
+ "text": [
3336
+ "./imgs/EVxMIg8WAAQSMVx.jpg\n"
3337
+ ]
3338
+ },
3339
+ {
3340
+ "output_type": "stream",
3341
+ "name": "stderr",
3342
+ "text": [
3343
+ "233it [08:56, 2.37s/it]"
3344
+ ]
3345
+ },
3346
+ {
3347
+ "output_type": "stream",
3348
+ "name": "stdout",
3349
+ "text": [
3350
+ "./imgs/EVxOHDiWAAA1WmP.jpg\n"
3351
+ ]
3352
+ },
3353
+ {
3354
+ "output_type": "stream",
3355
+ "name": "stderr",
3356
+ "text": [
3357
+ "234it [08:58, 2.41s/it]"
3358
+ ]
3359
+ },
3360
+ {
3361
+ "output_type": "stream",
3362
+ "name": "stdout",
3363
+ "text": [
3364
+ "./imgs/EVxOTnLXgAAWhNX.jpg\n"
3365
+ ]
3366
+ },
3367
+ {
3368
+ "output_type": "stream",
3369
+ "name": "stderr",
3370
+ "text": [
3371
+ "235it [09:01, 2.49s/it]"
3372
+ ]
3373
+ },
3374
+ {
3375
+ "output_type": "stream",
3376
+ "name": "stdout",
3377
+ "text": [
3378
+ "./imgs/EVxP0WjXgAAg412.jpg\n"
3379
+ ]
3380
+ },
3381
+ {
3382
+ "output_type": "stream",
3383
+ "name": "stderr",
3384
+ "text": [
3385
+ "236it [09:03, 2.41s/it]"
3386
+ ]
3387
+ },
3388
+ {
3389
+ "output_type": "stream",
3390
+ "name": "stdout",
3391
+ "text": [
3392
+ "./imgs/EVxPDxCWsAAgWUB.jpg\n"
3393
+ ]
3394
+ },
3395
+ {
3396
+ "output_type": "stream",
3397
+ "name": "stderr",
3398
+ "text": [
3399
+ "237it [09:05, 2.35s/it]"
3400
+ ]
3401
+ },
3402
+ {
3403
+ "output_type": "stream",
3404
+ "name": "stdout",
3405
+ "text": [
3406
+ "./imgs/EVxPe_IXQAAIBD8.jpg\n"
3407
+ ]
3408
+ },
3409
+ {
3410
+ "output_type": "stream",
3411
+ "name": "stderr",
3412
+ "text": [
3413
+ "238it [09:07, 2.31s/it]"
3414
+ ]
3415
+ },
3416
+ {
3417
+ "output_type": "stream",
3418
+ "name": "stdout",
3419
+ "text": [
3420
+ "./imgs/EVxR0E2WkAE6zMR.jpg\n"
3421
+ ]
3422
+ },
3423
+ {
3424
+ "output_type": "stream",
3425
+ "name": "stderr",
3426
+ "text": [
3427
+ "239it [09:10, 2.34s/it]"
3428
+ ]
3429
+ },
3430
+ {
3431
+ "output_type": "stream",
3432
+ "name": "stdout",
3433
+ "text": [
3434
+ "./imgs/EVxR8csUEAA1byd.jpg\n"
3435
+ ]
3436
+ },
3437
+ {
3438
+ "output_type": "stream",
3439
+ "name": "stderr",
3440
+ "text": [
3441
+ "240it [09:12, 2.30s/it]"
3442
+ ]
3443
+ },
3444
+ {
3445
+ "output_type": "stream",
3446
+ "name": "stdout",
3447
+ "text": [
3448
+ "./imgs/EVxRxn2WkAYmBPu.jpg\n"
3449
+ ]
3450
+ },
3451
+ {
3452
+ "output_type": "stream",
3453
+ "name": "stderr",
3454
+ "text": [
3455
+ "241it [09:14, 2.27s/it]"
3456
+ ]
3457
+ },
3458
+ {
3459
+ "output_type": "stream",
3460
+ "name": "stdout",
3461
+ "text": [
3462
+ "./imgs/EVxS5DjUMAEHktc.jpg\n"
3463
+ ]
3464
+ },
3465
+ {
3466
+ "output_type": "stream",
3467
+ "name": "stderr",
3468
+ "text": [
3469
+ "242it [09:16, 2.25s/it]"
3470
+ ]
3471
+ },
3472
+ {
3473
+ "output_type": "stream",
3474
+ "name": "stdout",
3475
+ "text": [
3476
+ "./imgs/EVxUVvuXsAAMpQM.jpg\n"
3477
+ ]
3478
+ },
3479
+ {
3480
+ "output_type": "stream",
3481
+ "name": "stderr",
3482
+ "text": [
3483
+ "243it [09:19, 2.36s/it]"
3484
+ ]
3485
+ },
3486
+ {
3487
+ "output_type": "stream",
3488
+ "name": "stdout",
3489
+ "text": [
3490
+ "./imgs/EVxVsAJWkAEC2ML.jpg\n"
3491
+ ]
3492
+ },
3493
+ {
3494
+ "output_type": "stream",
3495
+ "name": "stderr",
3496
+ "text": [
3497
+ "244it [09:21, 2.31s/it]"
3498
+ ]
3499
+ },
3500
+ {
3501
+ "output_type": "stream",
3502
+ "name": "stdout",
3503
+ "text": [
3504
+ "./imgs/EVxXg1vXQAAy5BJ.jpg\n"
3505
+ ]
3506
+ },
3507
+ {
3508
+ "output_type": "stream",
3509
+ "name": "stderr",
3510
+ "text": [
3511
+ "245it [09:23, 2.28s/it]"
3512
+ ]
3513
+ },
3514
+ {
3515
+ "output_type": "stream",
3516
+ "name": "stdout",
3517
+ "text": [
3518
+ "./imgs/EVxXiTqU4AAioYc.jpg\n"
3519
+ ]
3520
+ },
3521
+ {
3522
+ "output_type": "stream",
3523
+ "name": "stderr",
3524
+ "text": [
3525
+ "246it [09:26, 2.27s/it]"
3526
+ ]
3527
+ },
3528
+ {
3529
+ "output_type": "stream",
3530
+ "name": "stdout",
3531
+ "text": [
3532
+ "./imgs/EVx_wHWX0AAJGuc.jpg\n"
3533
+ ]
3534
+ },
3535
+ {
3536
+ "output_type": "stream",
3537
+ "name": "stderr",
3538
+ "text": [
3539
+ "247it [09:28, 2.37s/it]"
3540
+ ]
3541
+ },
3542
+ {
3543
+ "output_type": "stream",
3544
+ "name": "stdout",
3545
+ "text": [
3546
+ "./imgs/EVxaI4cVAAE48iM.jpg\n"
3547
+ ]
3548
+ },
3549
+ {
3550
+ "output_type": "stream",
3551
+ "name": "stderr",
3552
+ "text": [
3553
+ "248it [09:30, 2.32s/it]"
3554
+ ]
3555
+ },
3556
+ {
3557
+ "output_type": "stream",
3558
+ "name": "stdout",
3559
+ "text": [
3560
+ "./imgs/EVxbBZYWoAEc2CT.jpg\n"
3561
+ ]
3562
+ },
3563
+ {
3564
+ "output_type": "stream",
3565
+ "name": "stderr",
3566
+ "text": [
3567
+ "249it [09:33, 2.29s/it]"
3568
+ ]
3569
+ },
3570
+ {
3571
+ "output_type": "stream",
3572
+ "name": "stdout",
3573
+ "text": [
3574
+ "./imgs/EVxbxLpXgAAloqi.jpg\n"
3575
+ ]
3576
+ },
3577
+ {
3578
+ "output_type": "stream",
3579
+ "name": "stderr",
3580
+ "text": [
3581
+ "250it [09:35, 2.26s/it]"
3582
+ ]
3583
+ },
3584
+ {
3585
+ "output_type": "stream",
3586
+ "name": "stdout",
3587
+ "text": [
3588
+ "./imgs/EVxfyuiXYAIyE8e.jpg\n"
3589
+ ]
3590
+ },
3591
+ {
3592
+ "output_type": "stream",
3593
+ "name": "stderr",
3594
+ "text": [
3595
+ "251it [09:37, 2.36s/it]"
3596
+ ]
3597
+ },
3598
+ {
3599
+ "output_type": "stream",
3600
+ "name": "stdout",
3601
+ "text": [
3602
+ "./imgs/EVxg5EfWAAAMtjR.jpg\n"
3603
+ ]
3604
+ },
3605
+ {
3606
+ "output_type": "stream",
3607
+ "name": "stderr",
3608
+ "text": [
3609
+ "252it [09:40, 2.31s/it]"
3610
+ ]
3611
+ },
3612
+ {
3613
+ "output_type": "stream",
3614
+ "name": "stdout",
3615
+ "text": [
3616
+ "./imgs/EVxgdgXXkAAVLaT.jpg\n"
3617
+ ]
3618
+ },
3619
+ {
3620
+ "output_type": "stream",
3621
+ "name": "stderr",
3622
+ "text": [
3623
+ "253it [09:42, 2.28s/it]"
3624
+ ]
3625
+ },
3626
+ {
3627
+ "output_type": "stream",
3628
+ "name": "stdout",
3629
+ "text": [
3630
+ "./imgs/EVxgwUmUwAAIMCo.jpg\n"
3631
+ ]
3632
+ },
3633
+ {
3634
+ "output_type": "stream",
3635
+ "name": "stderr",
3636
+ "text": [
3637
+ "254it [09:44, 2.25s/it]"
3638
+ ]
3639
+ },
3640
+ {
3641
+ "output_type": "stream",
3642
+ "name": "stdout",
3643
+ "text": [
3644
+ "./imgs/EVxhHShWoAU4-5x.jpg\n"
3645
+ ]
3646
+ },
3647
+ {
3648
+ "output_type": "stream",
3649
+ "name": "stderr",
3650
+ "text": [
3651
+ "255it [09:47, 2.35s/it]"
3652
+ ]
3653
+ },
3654
+ {
3655
+ "output_type": "stream",
3656
+ "name": "stdout",
3657
+ "text": [
3658
+ "./imgs/EVxhPhtWAAAgjm6.jpg\n"
3659
+ ]
3660
+ },
3661
+ {
3662
+ "output_type": "stream",
3663
+ "name": "stderr",
3664
+ "text": [
3665
+ "256it [09:49, 2.31s/it]"
3666
+ ]
3667
+ },
3668
+ {
3669
+ "output_type": "stream",
3670
+ "name": "stdout",
3671
+ "text": [
3672
+ "./imgs/EVxjP5iUEAEl3JA.jpg\n"
3673
+ ]
3674
+ },
3675
+ {
3676
+ "output_type": "stream",
3677
+ "name": "stderr",
3678
+ "text": [
3679
+ "257it [09:51, 2.27s/it]"
3680
+ ]
3681
+ },
3682
+ {
3683
+ "output_type": "stream",
3684
+ "name": "stdout",
3685
+ "text": [
3686
+ "./imgs/EVxjWaFUcAAXtEj.jpg\n"
3687
+ ]
3688
+ },
3689
+ {
3690
+ "output_type": "stream",
3691
+ "name": "stderr",
3692
+ "text": [
3693
+ "258it [09:53, 2.25s/it]"
3694
+ ]
3695
+ },
3696
+ {
3697
+ "output_type": "stream",
3698
+ "name": "stdout",
3699
+ "text": [
3700
+ "./imgs/EVxlhixUMAERKsa.jpg\n"
3701
+ ]
3702
+ },
3703
+ {
3704
+ "output_type": "stream",
3705
+ "name": "stderr",
3706
+ "text": [
3707
+ "259it [09:56, 2.35s/it]"
3708
+ ]
3709
+ },
3710
+ {
3711
+ "output_type": "stream",
3712
+ "name": "stdout",
3713
+ "text": [
3714
+ "./imgs/EVxmDZaXgAAAiLL.jpg\n"
3715
+ ]
3716
+ },
3717
+ {
3718
+ "output_type": "stream",
3719
+ "name": "stderr",
3720
+ "text": [
3721
+ "260it [09:58, 2.31s/it]"
3722
+ ]
3723
+ },
3724
+ {
3725
+ "output_type": "stream",
3726
+ "name": "stdout",
3727
+ "text": [
3728
+ "./imgs/EVxmv_hU0AAhQ05.jpg\n"
3729
+ ]
3730
+ },
3731
+ {
3732
+ "output_type": "stream",
3733
+ "name": "stderr",
3734
+ "text": [
3735
+ "261it [10:00, 2.27s/it]"
3736
+ ]
3737
+ },
3738
+ {
3739
+ "output_type": "stream",
3740
+ "name": "stdout",
3741
+ "text": [
3742
+ "./imgs/EVxnCHUWAAEIh9d.jpg\n"
3743
+ ]
3744
+ },
3745
+ {
3746
+ "output_type": "stream",
3747
+ "name": "stderr",
3748
+ "text": [
3749
+ "262it [10:02, 2.27s/it]"
3750
+ ]
3751
+ },
3752
+ {
3753
+ "output_type": "stream",
3754
+ "name": "stdout",
3755
+ "text": [
3756
+ "./imgs/EVxnD5OWAAEqsvR.jpg\n"
3757
+ ]
3758
+ },
3759
+ {
3760
+ "output_type": "stream",
3761
+ "name": "stderr",
3762
+ "text": [
3763
+ "263it [10:05, 2.36s/it]"
3764
+ ]
3765
+ },
3766
+ {
3767
+ "output_type": "stream",
3768
+ "name": "stdout",
3769
+ "text": [
3770
+ "./imgs/EVxoxTJWoAIDdXc.jpg\n"
3771
+ ]
3772
+ },
3773
+ {
3774
+ "output_type": "stream",
3775
+ "name": "stderr",
3776
+ "text": [
3777
+ "264it [10:07, 2.33s/it]"
3778
+ ]
3779
+ },
3780
+ {
3781
+ "output_type": "stream",
3782
+ "name": "stdout",
3783
+ "text": [
3784
+ "./imgs/EVxozGLWkAsaSQM.jpg\n"
3785
+ ]
3786
+ },
3787
+ {
3788
+ "output_type": "stream",
3789
+ "name": "stderr",
3790
+ "text": [
3791
+ "265it [10:10, 2.29s/it]"
3792
+ ]
3793
+ },
3794
+ {
3795
+ "output_type": "stream",
3796
+ "name": "stdout",
3797
+ "text": [
3798
+ "./imgs/EVxozeYWkAUx_Py.jpg\n"
3799
+ ]
3800
+ },
3801
+ {
3802
+ "output_type": "stream",
3803
+ "name": "stderr",
3804
+ "text": [
3805
+ "266it [10:12, 2.26s/it]"
3806
+ ]
3807
+ },
3808
+ {
3809
+ "output_type": "stream",
3810
+ "name": "stdout",
3811
+ "text": [
3812
+ "./imgs/EVxpZZ9WsAE3N-y.jpg\n"
3813
+ ]
3814
+ },
3815
+ {
3816
+ "output_type": "stream",
3817
+ "name": "stderr",
3818
+ "text": [
3819
+ "267it [10:14, 2.36s/it]"
3820
+ ]
3821
+ },
3822
+ {
3823
+ "output_type": "stream",
3824
+ "name": "stdout",
3825
+ "text": [
3826
+ "./imgs/EVxqLJsXkAMhy12.jpg\n"
3827
+ ]
3828
+ },
3829
+ {
3830
+ "output_type": "stream",
3831
+ "name": "stderr",
3832
+ "text": [
3833
+ "268it [10:17, 2.34s/it]"
3834
+ ]
3835
+ },
3836
+ {
3837
+ "output_type": "stream",
3838
+ "name": "stdout",
3839
+ "text": [
3840
+ "./imgs/EVxrustWoAAIQBZ.jpg\n"
3841
+ ]
3842
+ },
3843
+ {
3844
+ "output_type": "stream",
3845
+ "name": "stderr",
3846
+ "text": [
3847
+ "269it [10:19, 2.30s/it]"
3848
+ ]
3849
+ },
3850
+ {
3851
+ "output_type": "stream",
3852
+ "name": "stdout",
3853
+ "text": [
3854
+ "./imgs/EVxunrQXQAYpqUQ.jpg\n"
3855
+ ]
3856
+ },
3857
+ {
3858
+ "output_type": "stream",
3859
+ "name": "stderr",
3860
+ "text": [
3861
+ "270it [10:21, 2.28s/it]"
3862
+ ]
3863
+ },
3864
+ {
3865
+ "output_type": "stream",
3866
+ "name": "stdout",
3867
+ "text": [
3868
+ "./imgs/EVxxxLiXYAABSMe.jpg\n"
3869
+ ]
3870
+ },
3871
+ {
3872
+ "output_type": "stream",
3873
+ "name": "stderr",
3874
+ "text": [
3875
+ "271it [10:24, 2.37s/it]"
3876
+ ]
3877
+ },
3878
+ {
3879
+ "output_type": "stream",
3880
+ "name": "stdout",
3881
+ "text": [
3882
+ "./imgs/EVxyQHNWsAMEk5-.jpg\n"
3883
+ ]
3884
+ },
3885
+ {
3886
+ "output_type": "stream",
3887
+ "name": "stderr",
3888
+ "text": [
3889
+ "272it [10:26, 2.33s/it]"
3890
+ ]
3891
+ },
3892
+ {
3893
+ "output_type": "stream",
3894
+ "name": "stdout",
3895
+ "text": [
3896
+ "./imgs/EVy0BfsUYAAwMyj.jpg\n"
3897
+ ]
3898
+ },
3899
+ {
3900
+ "output_type": "stream",
3901
+ "name": "stderr",
3902
+ "text": [
3903
+ "273it [10:28, 2.32s/it]"
3904
+ ]
3905
+ },
3906
+ {
3907
+ "output_type": "stream",
3908
+ "name": "stdout",
3909
+ "text": [
3910
+ "./imgs/EVy4SosUEAAV0fj.jpg\n"
3911
+ ]
3912
+ },
3913
+ {
3914
+ "output_type": "stream",
3915
+ "name": "stderr",
3916
+ "text": [
3917
+ "274it [10:30, 2.29s/it]"
3918
+ ]
3919
+ },
3920
+ {
3921
+ "output_type": "stream",
3922
+ "name": "stdout",
3923
+ "text": [
3924
+ "./imgs/EVy6RE5WoAASa0x.jpg\n"
3925
+ ]
3926
+ },
3927
+ {
3928
+ "output_type": "stream",
3929
+ "name": "stderr",
3930
+ "text": [
3931
+ "275it [10:33, 2.38s/it]"
3932
+ ]
3933
+ },
3934
+ {
3935
+ "output_type": "stream",
3936
+ "name": "stdout",
3937
+ "text": [
3938
+ "./imgs/EVy79dkXsAIu4_I.jpg\n"
3939
+ ]
3940
+ },
3941
+ {
3942
+ "output_type": "stream",
3943
+ "name": "stderr",
3944
+ "text": [
3945
+ "276it [10:35, 2.35s/it]"
3946
+ ]
3947
+ },
3948
+ {
3949
+ "output_type": "stream",
3950
+ "name": "stdout",
3951
+ "text": [
3952
+ "./imgs/EVy8T34XkAATvNw.jpg\n"
3953
+ ]
3954
+ },
3955
+ {
3956
+ "output_type": "stream",
3957
+ "name": "stderr",
3958
+ "text": [
3959
+ "277it [10:38, 2.33s/it]"
3960
+ ]
3961
+ },
3962
+ {
3963
+ "output_type": "stream",
3964
+ "name": "stdout",
3965
+ "text": [
3966
+ "./imgs/EVyAX_nUYAE3qpS.jpg\n"
3967
+ ]
3968
+ },
3969
+ {
3970
+ "output_type": "stream",
3971
+ "name": "stderr",
3972
+ "text": [
3973
+ "278it [10:40, 2.39s/it]"
3974
+ ]
3975
+ },
3976
+ {
3977
+ "output_type": "stream",
3978
+ "name": "stdout",
3979
+ "text": [
3980
+ "./imgs/EVyAqdwXkAAExsj.jpg\n"
3981
+ ]
3982
+ },
3983
+ {
3984
+ "output_type": "stream",
3985
+ "name": "stderr",
3986
+ "text": [
3987
+ "279it [10:43, 2.47s/it]"
3988
+ ]
3989
+ },
3990
+ {
3991
+ "output_type": "stream",
3992
+ "name": "stdout",
3993
+ "text": [
3994
+ "./imgs/EVyB6KaU0AEo-CS.jpg\n"
3995
+ ]
3996
+ },
3997
+ {
3998
+ "output_type": "stream",
3999
+ "name": "stderr",
4000
+ "text": [
4001
+ "280it [10:45, 2.39s/it]"
4002
+ ]
4003
+ },
4004
+ {
4005
+ "output_type": "stream",
4006
+ "name": "stdout",
4007
+ "text": [
4008
+ "./imgs/EVyCgPhXsAENOZA.jpg\n"
4009
+ ]
4010
+ },
4011
+ {
4012
+ "output_type": "stream",
4013
+ "name": "stderr",
4014
+ "text": [
4015
+ "281it [10:47, 2.34s/it]"
4016
+ ]
4017
+ },
4018
+ {
4019
+ "output_type": "stream",
4020
+ "name": "stdout",
4021
+ "text": [
4022
+ "./imgs/EVyE0dHXgAAuH5p.jpg\n"
4023
+ ]
4024
+ },
4025
+ {
4026
+ "output_type": "stream",
4027
+ "name": "stderr",
4028
+ "text": [
4029
+ "282it [10:49, 2.31s/it]"
4030
+ ]
4031
+ },
4032
+ {
4033
+ "output_type": "stream",
4034
+ "name": "stdout",
4035
+ "text": [
4036
+ "./imgs/EVyEsP5U8AAK7l9.jpg\n"
4037
+ ]
4038
+ },
4039
+ {
4040
+ "output_type": "stream",
4041
+ "name": "stderr",
4042
+ "text": [
4043
+ "283it [10:52, 2.41s/it]"
4044
+ ]
4045
+ },
4046
+ {
4047
+ "output_type": "stream",
4048
+ "name": "stdout",
4049
+ "text": [
4050
+ "./imgs/EVyJKJQX0AAUrnb.jpg\n"
4051
+ ]
4052
+ },
4053
+ {
4054
+ "output_type": "stream",
4055
+ "name": "stderr",
4056
+ "text": [
4057
+ "284it [10:54, 2.35s/it]"
4058
+ ]
4059
+ },
4060
+ {
4061
+ "output_type": "stream",
4062
+ "name": "stdout",
4063
+ "text": [
4064
+ "./imgs/EVyJmTOXYAAggtb.jpg\n"
4065
+ ]
4066
+ },
4067
+ {
4068
+ "output_type": "stream",
4069
+ "name": "stderr",
4070
+ "text": [
4071
+ "285it [10:56, 2.31s/it]"
4072
+ ]
4073
+ },
4074
+ {
4075
+ "output_type": "stream",
4076
+ "name": "stdout",
4077
+ "text": [
4078
+ "./imgs/EVyK3FKWkAAMTVr.jpg\n"
4079
+ ]
4080
+ },
4081
+ {
4082
+ "output_type": "stream",
4083
+ "name": "stderr",
4084
+ "text": [
4085
+ "286it [10:59, 2.29s/it]"
4086
+ ]
4087
+ },
4088
+ {
4089
+ "output_type": "stream",
4090
+ "name": "stdout",
4091
+ "text": [
4092
+ "./imgs/EVyKFvqUYAApwsh.jpg\n"
4093
+ ]
4094
+ },
4095
+ {
4096
+ "output_type": "stream",
4097
+ "name": "stderr",
4098
+ "text": [
4099
+ "287it [11:01, 2.41s/it]"
4100
+ ]
4101
+ },
4102
+ {
4103
+ "output_type": "stream",
4104
+ "name": "stdout",
4105
+ "text": [
4106
+ "./imgs/EVyM8FIXkAAWzzS.jpg\n"
4107
+ ]
4108
+ },
4109
+ {
4110
+ "output_type": "stream",
4111
+ "name": "stderr",
4112
+ "text": [
4113
+ "288it [11:04, 2.35s/it]"
4114
+ ]
4115
+ },
4116
+ {
4117
+ "output_type": "stream",
4118
+ "name": "stdout",
4119
+ "text": [
4120
+ "./imgs/EVyO0x2UYAEkPyQ.jpg\n"
4121
+ ]
4122
+ },
4123
+ {
4124
+ "output_type": "stream",
4125
+ "name": "stderr",
4126
+ "text": [
4127
+ "289it [11:06, 2.30s/it]"
4128
+ ]
4129
+ },
4130
+ {
4131
+ "output_type": "stream",
4132
+ "name": "stdout",
4133
+ "text": [
4134
+ "./imgs/EVyURk3WsAAw7qd.jpg\n"
4135
+ ]
4136
+ },
4137
+ {
4138
+ "output_type": "stream",
4139
+ "name": "stderr",
4140
+ "text": [
4141
+ "290it [11:08, 2.29s/it]"
4142
+ ]
4143
+ },
4144
+ {
4145
+ "output_type": "stream",
4146
+ "name": "stdout",
4147
+ "text": [
4148
+ "./imgs/EVyV5XgX0AIUW_h.jpg\n"
4149
+ ]
4150
+ },
4151
+ {
4152
+ "output_type": "stream",
4153
+ "name": "stderr",
4154
+ "text": [
4155
+ "291it [11:11, 2.39s/it]"
4156
+ ]
4157
+ },
4158
+ {
4159
+ "output_type": "stream",
4160
+ "name": "stdout",
4161
+ "text": [
4162
+ "./imgs/EVyVpudUEAAi-2N.jpg\n"
4163
+ ]
4164
+ },
4165
+ {
4166
+ "output_type": "stream",
4167
+ "name": "stderr",
4168
+ "text": [
4169
+ "292it [11:13, 2.34s/it]"
4170
+ ]
4171
+ },
4172
+ {
4173
+ "output_type": "stream",
4174
+ "name": "stdout",
4175
+ "text": [
4176
+ "./imgs/EVyW5diU0AAvy_u.jpg\n"
4177
+ ]
4178
+ },
4179
+ {
4180
+ "output_type": "stream",
4181
+ "name": "stderr",
4182
+ "text": [
4183
+ "293it [11:15, 2.31s/it]"
4184
+ ]
4185
+ },
4186
+ {
4187
+ "output_type": "stream",
4188
+ "name": "stdout",
4189
+ "text": [
4190
+ "./imgs/EVyW9Y1XsAAsBFh.jpg\n"
4191
+ ]
4192
+ },
4193
+ {
4194
+ "output_type": "stream",
4195
+ "name": "stderr",
4196
+ "text": [
4197
+ "294it [11:17, 2.28s/it]"
4198
+ ]
4199
+ },
4200
+ {
4201
+ "output_type": "stream",
4202
+ "name": "stdout",
4203
+ "text": [
4204
+ "./imgs/EVyWyvqVcAMaj0j.jpg\n"
4205
+ ]
4206
+ },
4207
+ {
4208
+ "output_type": "stream",
4209
+ "name": "stderr",
4210
+ "text": [
4211
+ "295it [11:20, 2.37s/it]"
4212
+ ]
4213
+ },
4214
+ {
4215
+ "output_type": "stream",
4216
+ "name": "stdout",
4217
+ "text": [
4218
+ "./imgs/EVyXzafWAAIi6_f.jpg\n"
4219
+ ]
4220
+ },
4221
+ {
4222
+ "output_type": "stream",
4223
+ "name": "stderr",
4224
+ "text": [
4225
+ "296it [11:22, 2.30s/it]"
4226
+ ]
4227
+ },
4228
+ {
4229
+ "output_type": "stream",
4230
+ "name": "stdout",
4231
+ "text": [
4232
+ "./imgs/EVyZADrUYAMZ_SW.jpg\n"
4233
+ ]
4234
+ },
4235
+ {
4236
+ "output_type": "stream",
4237
+ "name": "stderr",
4238
+ "text": [
4239
+ "297it [11:24, 2.27s/it]"
4240
+ ]
4241
+ },
4242
+ {
4243
+ "output_type": "stream",
4244
+ "name": "stdout",
4245
+ "text": [
4246
+ "./imgs/EVybvCxXYAEtiLO.jpg\n"
4247
+ ]
4248
+ },
4249
+ {
4250
+ "output_type": "stream",
4251
+ "name": "stderr",
4252
+ "text": [
4253
+ "298it [11:26, 2.23s/it]"
4254
+ ]
4255
+ },
4256
+ {
4257
+ "output_type": "stream",
4258
+ "name": "stdout",
4259
+ "text": [
4260
+ "./imgs/EVydx_XXYAIk9km.jpg\n"
4261
+ ]
4262
+ },
4263
+ {
4264
+ "output_type": "stream",
4265
+ "name": "stderr",
4266
+ "text": [
4267
+ "299it [11:29, 2.36s/it]"
4268
+ ]
4269
+ },
4270
+ {
4271
+ "output_type": "stream",
4272
+ "name": "stdout",
4273
+ "text": [
4274
+ "./imgs/EVyfB8kXQAEfyTC.jpg\n"
4275
+ ]
4276
+ },
4277
+ {
4278
+ "output_type": "stream",
4279
+ "name": "stderr",
4280
+ "text": [
4281
+ "300it [11:31, 2.31s/it]"
4282
+ ]
4283
+ },
4284
+ {
4285
+ "output_type": "stream",
4286
+ "name": "stdout",
4287
+ "text": [
4288
+ "./imgs/EVygBXhXQAEFugX.jpg\n"
4289
+ ]
4290
+ },
4291
+ {
4292
+ "output_type": "stream",
4293
+ "name": "stderr",
4294
+ "text": [
4295
+ "301it [11:33, 2.28s/it]"
4296
+ ]
4297
+ },
4298
+ {
4299
+ "output_type": "stream",
4300
+ "name": "stdout",
4301
+ "text": [
4302
+ "./imgs/EVyh44jVAAEmwdl.jpg\n"
4303
+ ]
4304
+ },
4305
+ {
4306
+ "output_type": "stream",
4307
+ "name": "stderr",
4308
+ "text": [
4309
+ "302it [11:36, 2.28s/it]"
4310
+ ]
4311
+ },
4312
+ {
4313
+ "output_type": "stream",
4314
+ "name": "stdout",
4315
+ "text": [
4316
+ "./imgs/EVyi521XkAAF9bG.jpg\n"
4317
+ ]
4318
+ },
4319
+ {
4320
+ "output_type": "stream",
4321
+ "name": "stderr",
4322
+ "text": [
4323
+ "303it [11:39, 2.43s/it]"
4324
+ ]
4325
+ },
4326
+ {
4327
+ "output_type": "stream",
4328
+ "name": "stdout",
4329
+ "text": [
4330
+ "./imgs/EVyirU0XgAEjz3y.jpg\n"
4331
+ ]
4332
+ },
4333
+ {
4334
+ "output_type": "stream",
4335
+ "name": "stderr",
4336
+ "text": [
4337
+ "304it [11:41, 2.38s/it]"
4338
+ ]
4339
+ },
4340
+ {
4341
+ "output_type": "stream",
4342
+ "name": "stdout",
4343
+ "text": [
4344
+ "./imgs/EVyj4kqWAAA6zDZ.jpg\n"
4345
+ ]
4346
+ },
4347
+ {
4348
+ "output_type": "stream",
4349
+ "name": "stderr",
4350
+ "text": [
4351
+ "305it [11:43, 2.33s/it]"
4352
+ ]
4353
+ },
4354
+ {
4355
+ "output_type": "stream",
4356
+ "name": "stdout",
4357
+ "text": [
4358
+ "./imgs/EVykG5YUYAEWcTN.jpg\n"
4359
+ ]
4360
+ },
4361
+ {
4362
+ "output_type": "stream",
4363
+ "name": "stderr",
4364
+ "text": [
4365
+ "306it [11:45, 2.32s/it]"
4366
+ ]
4367
+ },
4368
+ {
4369
+ "output_type": "stream",
4370
+ "name": "stdout",
4371
+ "text": [
4372
+ "./imgs/EVylfJ8XQAAQ_j5.jpg\n"
4373
+ ]
4374
+ },
4375
+ {
4376
+ "output_type": "stream",
4377
+ "name": "stderr",
4378
+ "text": [
4379
+ "307it [11:48, 2.51s/it]"
4380
+ ]
4381
+ },
4382
+ {
4383
+ "output_type": "stream",
4384
+ "name": "stdout",
4385
+ "text": [
4386
+ "./imgs/EVypIwuVcAAPHZK.jpg\n"
4387
+ ]
4388
+ },
4389
+ {
4390
+ "output_type": "stream",
4391
+ "name": "stderr",
4392
+ "text": [
4393
+ "308it [11:50, 2.42s/it]"
4394
+ ]
4395
+ },
4396
+ {
4397
+ "output_type": "stream",
4398
+ "name": "stdout",
4399
+ "text": [
4400
+ "./imgs/EVyqFcAXgAA8-BZ.jpg\n"
4401
+ ]
4402
+ },
4403
+ {
4404
+ "output_type": "stream",
4405
+ "name": "stderr",
4406
+ "text": [
4407
+ "309it [11:53, 2.35s/it]"
4408
+ ]
4409
+ },
4410
+ {
4411
+ "output_type": "stream",
4412
+ "name": "stdout",
4413
+ "text": [
4414
+ "./imgs/EVyqV78U4AA2aJQ.jpg\n"
4415
+ ]
4416
+ },
4417
+ {
4418
+ "output_type": "stream",
4419
+ "name": "stderr",
4420
+ "text": [
4421
+ "310it [11:55, 2.32s/it]"
4422
+ ]
4423
+ },
4424
+ {
4425
+ "output_type": "stream",
4426
+ "name": "stdout",
4427
+ "text": [
4428
+ "./imgs/EVyqYIBWkAATAOc.jpg\n"
4429
+ ]
4430
+ },
4431
+ {
4432
+ "output_type": "stream",
4433
+ "name": "stderr",
4434
+ "text": [
4435
+ "311it [11:58, 2.48s/it]"
4436
+ ]
4437
+ },
4438
+ {
4439
+ "output_type": "stream",
4440
+ "name": "stdout",
4441
+ "text": [
4442
+ "./imgs/EVyrvNrUEAQPgyW.jpg\n"
4443
+ ]
4444
+ },
4445
+ {
4446
+ "output_type": "stream",
4447
+ "name": "stderr",
4448
+ "text": [
4449
+ "312it [12:00, 2.40s/it]"
4450
+ ]
4451
+ },
4452
+ {
4453
+ "output_type": "stream",
4454
+ "name": "stdout",
4455
+ "text": [
4456
+ "./imgs/EVyx3HBU0AAexQb.jpg\n"
4457
+ ]
4458
+ },
4459
+ {
4460
+ "output_type": "stream",
4461
+ "name": "stderr",
4462
+ "text": [
4463
+ "313it [12:02, 2.34s/it]"
4464
+ ]
4465
+ },
4466
+ {
4467
+ "output_type": "stream",
4468
+ "name": "stdout",
4469
+ "text": [
4470
+ "./imgs/EVyx9E5UEAAV3ZQ.jpg\n"
4471
+ ]
4472
+ },
4473
+ {
4474
+ "output_type": "stream",
4475
+ "name": "stderr",
4476
+ "text": [
4477
+ "314it [12:04, 2.30s/it]"
4478
+ ]
4479
+ },
4480
+ {
4481
+ "output_type": "stream",
4482
+ "name": "stdout",
4483
+ "text": [
4484
+ "./imgs/EVyxWN7X0AE1_tR.jpg\n"
4485
+ ]
4486
+ },
4487
+ {
4488
+ "output_type": "stream",
4489
+ "name": "stderr",
4490
+ "text": [
4491
+ "315it [12:07, 2.42s/it]"
4492
+ ]
4493
+ },
4494
+ {
4495
+ "output_type": "stream",
4496
+ "name": "stdout",
4497
+ "text": [
4498
+ "./imgs/EVz0ofkX0AAiwZW.jpg\n"
4499
+ ]
4500
+ },
4501
+ {
4502
+ "output_type": "stream",
4503
+ "name": "stderr",
4504
+ "text": [
4505
+ "316it [12:09, 2.36s/it]"
4506
+ ]
4507
+ },
4508
+ {
4509
+ "output_type": "stream",
4510
+ "name": "stdout",
4511
+ "text": [
4512
+ "./imgs/EVz13cvVAAAI4lf.jpg\n"
4513
+ ]
4514
+ },
4515
+ {
4516
+ "output_type": "stream",
4517
+ "name": "stderr",
4518
+ "text": [
4519
+ "317it [12:12, 2.33s/it]"
4520
+ ]
4521
+ },
4522
+ {
4523
+ "output_type": "stream",
4524
+ "name": "stdout",
4525
+ "text": [
4526
+ "./imgs/EVz64LNU4AEMu1G.jpg\n"
4527
+ ]
4528
+ },
4529
+ {
4530
+ "output_type": "stream",
4531
+ "name": "stderr",
4532
+ "text": [
4533
+ "318it [12:14, 2.28s/it]"
4534
+ ]
4535
+ },
4536
+ {
4537
+ "output_type": "stream",
4538
+ "name": "stdout",
4539
+ "text": [
4540
+ "./imgs/EVz6kqKU8AMHoJE.jpg\n"
4541
+ ]
4542
+ },
4543
+ {
4544
+ "output_type": "stream",
4545
+ "name": "stderr",
4546
+ "text": [
4547
+ "319it [12:16, 2.40s/it]"
4548
+ ]
4549
+ },
4550
+ {
4551
+ "output_type": "stream",
4552
+ "name": "stdout",
4553
+ "text": [
4554
+ "./imgs/EVz8LVXU4AklJ2P.jpg\n"
4555
+ ]
4556
+ },
4557
+ {
4558
+ "output_type": "stream",
4559
+ "name": "stderr",
4560
+ "text": [
4561
+ "320it [12:19, 2.34s/it]"
4562
+ ]
4563
+ },
4564
+ {
4565
+ "output_type": "stream",
4566
+ "name": "stdout",
4567
+ "text": [
4568
+ "./imgs/EVzAEwaVcAIt2ro.jpg\n"
4569
+ ]
4570
+ },
4571
+ {
4572
+ "output_type": "stream",
4573
+ "name": "stderr",
4574
+ "text": [
4575
+ "321it [12:21, 2.29s/it]"
4576
+ ]
4577
+ },
4578
+ {
4579
+ "output_type": "stream",
4580
+ "name": "stdout",
4581
+ "text": [
4582
+ "./imgs/EVzBrSqXsAAPzFz.jpg\n"
4583
+ ]
4584
+ },
4585
+ {
4586
+ "output_type": "stream",
4587
+ "name": "stderr",
4588
+ "text": [
4589
+ "322it [12:23, 2.25s/it]"
4590
+ ]
4591
+ },
4592
+ {
4593
+ "output_type": "stream",
4594
+ "name": "stdout",
4595
+ "text": [
4596
+ "./imgs/EVzJQiAXgAEPApY.jpg\n"
4597
+ ]
4598
+ },
4599
+ {
4600
+ "output_type": "stream",
4601
+ "name": "stderr",
4602
+ "text": [
4603
+ "323it [12:25, 2.34s/it]"
4604
+ ]
4605
+ },
4606
+ {
4607
+ "output_type": "stream",
4608
+ "name": "stdout",
4609
+ "text": [
4610
+ "./imgs/EVzKvreVAAIxIHI.jpg\n"
4611
+ ]
4612
+ },
4613
+ {
4614
+ "output_type": "stream",
4615
+ "name": "stderr",
4616
+ "text": [
4617
+ "324it [12:28, 2.30s/it]"
4618
+ ]
4619
+ },
4620
+ {
4621
+ "output_type": "stream",
4622
+ "name": "stdout",
4623
+ "text": [
4624
+ "./imgs/EVzLHcAWsAEgl0M.jpg\n"
4625
+ ]
4626
+ },
4627
+ {
4628
+ "output_type": "stream",
4629
+ "name": "stderr",
4630
+ "text": [
4631
+ "325it [12:30, 2.30s/it]"
4632
+ ]
4633
+ },
4634
+ {
4635
+ "output_type": "stream",
4636
+ "name": "stdout",
4637
+ "text": [
4638
+ "./imgs/EVzM1DPXYAAmhbT.jpg\n"
4639
+ ]
4640
+ },
4641
+ {
4642
+ "output_type": "stream",
4643
+ "name": "stderr",
4644
+ "text": [
4645
+ "326it [12:32, 2.28s/it]"
4646
+ ]
4647
+ },
4648
+ {
4649
+ "output_type": "stream",
4650
+ "name": "stdout",
4651
+ "text": [
4652
+ "./imgs/EVzMAcKXkAA37VC.jpg\n"
4653
+ ]
4654
+ },
4655
+ {
4656
+ "output_type": "stream",
4657
+ "name": "stderr",
4658
+ "text": [
4659
+ "327it [12:35, 2.38s/it]"
4660
+ ]
4661
+ },
4662
+ {
4663
+ "output_type": "stream",
4664
+ "name": "stdout",
4665
+ "text": [
4666
+ "./imgs/EVzNpA7U0AIYozs.jpg\n"
4667
+ ]
4668
+ },
4669
+ {
4670
+ "output_type": "stream",
4671
+ "name": "stderr",
4672
+ "text": [
4673
+ "328it [12:37, 2.34s/it]"
4674
+ ]
4675
+ },
4676
+ {
4677
+ "output_type": "stream",
4678
+ "name": "stdout",
4679
+ "text": [
4680
+ "./imgs/EVzPt4NUEAQeMZY.jpg\n"
4681
+ ]
4682
+ },
4683
+ {
4684
+ "output_type": "stream",
4685
+ "name": "stderr",
4686
+ "text": [
4687
+ "329it [12:39, 2.30s/it]"
4688
+ ]
4689
+ },
4690
+ {
4691
+ "output_type": "stream",
4692
+ "name": "stdout",
4693
+ "text": [
4694
+ "./imgs/EVzTTWFWAAECY3J.jpg\n"
4695
+ ]
4696
+ },
4697
+ {
4698
+ "output_type": "stream",
4699
+ "name": "stderr",
4700
+ "text": [
4701
+ "330it [12:42, 2.28s/it]"
4702
+ ]
4703
+ },
4704
+ {
4705
+ "output_type": "stream",
4706
+ "name": "stdout",
4707
+ "text": [
4708
+ "./imgs/EVzUo_TXQAARabV.jpg\n"
4709
+ ]
4710
+ },
4711
+ {
4712
+ "output_type": "stream",
4713
+ "name": "stderr",
4714
+ "text": [
4715
+ "331it [12:44, 2.36s/it]"
4716
+ ]
4717
+ },
4718
+ {
4719
+ "output_type": "stream",
4720
+ "name": "stdout",
4721
+ "text": [
4722
+ "./imgs/EVzVjMEUEAAx0Wf.jpg\n"
4723
+ ]
4724
+ },
4725
+ {
4726
+ "output_type": "stream",
4727
+ "name": "stderr",
4728
+ "text": [
4729
+ "332it [12:46, 2.32s/it]"
4730
+ ]
4731
+ },
4732
+ {
4733
+ "output_type": "stream",
4734
+ "name": "stdout",
4735
+ "text": [
4736
+ "./imgs/EVzVudgUEAAZ6GJ.jpg\n"
4737
+ ]
4738
+ },
4739
+ {
4740
+ "output_type": "stream",
4741
+ "name": "stderr",
4742
+ "text": [
4743
+ "333it [12:48, 2.28s/it]"
4744
+ ]
4745
+ },
4746
+ {
4747
+ "output_type": "stream",
4748
+ "name": "stdout",
4749
+ "text": [
4750
+ "./imgs/EVzX2IrWoAAvSEe.jpg\n"
4751
+ ]
4752
+ },
4753
+ {
4754
+ "output_type": "stream",
4755
+ "name": "stderr",
4756
+ "text": [
4757
+ "334it [12:51, 2.26s/it]"
4758
+ ]
4759
+ },
4760
+ {
4761
+ "output_type": "stream",
4762
+ "name": "stdout",
4763
+ "text": [
4764
+ "./imgs/EVzYG3iXsAEARnF.jpg\n"
4765
+ ]
4766
+ },
4767
+ {
4768
+ "output_type": "stream",
4769
+ "name": "stderr",
4770
+ "text": [
4771
+ "335it [12:53, 2.41s/it]"
4772
+ ]
4773
+ },
4774
+ {
4775
+ "output_type": "stream",
4776
+ "name": "stdout",
4777
+ "text": [
4778
+ "./imgs/EVzY_ToUMAE5nP9.jpg\n"
4779
+ ]
4780
+ },
4781
+ {
4782
+ "output_type": "stream",
4783
+ "name": "stderr",
4784
+ "text": [
4785
+ "336it [12:56, 2.34s/it]"
4786
+ ]
4787
+ },
4788
+ {
4789
+ "output_type": "stream",
4790
+ "name": "stdout",
4791
+ "text": [
4792
+ "./imgs/EVzZ7TPXYAATpaa.jpg\n"
4793
+ ]
4794
+ },
4795
+ {
4796
+ "output_type": "stream",
4797
+ "name": "stderr",
4798
+ "text": [
4799
+ "337it [12:58, 2.30s/it]"
4800
+ ]
4801
+ },
4802
+ {
4803
+ "output_type": "stream",
4804
+ "name": "stdout",
4805
+ "text": [
4806
+ "./imgs/EVzcTisXQAEavIo.jpg\n"
4807
+ ]
4808
+ },
4809
+ {
4810
+ "output_type": "stream",
4811
+ "name": "stderr",
4812
+ "text": [
4813
+ "338it [13:00, 2.26s/it]"
4814
+ ]
4815
+ },
4816
+ {
4817
+ "output_type": "stream",
4818
+ "name": "stdout",
4819
+ "text": [
4820
+ "./imgs/EVzeu5wUEAAm1RO.jpg\n"
4821
+ ]
4822
+ },
4823
+ {
4824
+ "output_type": "stream",
4825
+ "name": "stderr",
4826
+ "text": [
4827
+ "339it [13:03, 2.43s/it]"
4828
+ ]
4829
+ },
4830
+ {
4831
+ "output_type": "stream",
4832
+ "name": "stdout",
4833
+ "text": [
4834
+ "./imgs/EVzf7c7WsAAR-_l.jpg\n"
4835
+ ]
4836
+ },
4837
+ {
4838
+ "output_type": "stream",
4839
+ "name": "stderr",
4840
+ "text": [
4841
+ "340it [13:05, 2.37s/it]"
4842
+ ]
4843
+ },
4844
+ {
4845
+ "output_type": "stream",
4846
+ "name": "stdout",
4847
+ "text": [
4848
+ "./imgs/EVzhZlVWsAE6FEa.jpg\n"
4849
+ ]
4850
+ },
4851
+ {
4852
+ "output_type": "stream",
4853
+ "name": "stderr",
4854
+ "text": [
4855
+ "341it [13:07, 2.32s/it]"
4856
+ ]
4857
+ },
4858
+ {
4859
+ "output_type": "stream",
4860
+ "name": "stdout",
4861
+ "text": [
4862
+ "./imgs/EVzhgIuWoAEVVPF.jpg\n"
4863
+ ]
4864
+ },
4865
+ {
4866
+ "output_type": "stream",
4867
+ "name": "stderr",
4868
+ "text": [
4869
+ "342it [13:09, 2.29s/it]"
4870
+ ]
4871
+ },
4872
+ {
4873
+ "output_type": "stream",
4874
+ "name": "stdout",
4875
+ "text": [
4876
+ "./imgs/EVziET2UYAA99hb.jpg\n"
4877
+ ]
4878
+ },
4879
+ {
4880
+ "output_type": "stream",
4881
+ "name": "stderr",
4882
+ "text": [
4883
+ "343it [13:12, 2.39s/it]"
4884
+ ]
4885
+ },
4886
+ {
4887
+ "output_type": "stream",
4888
+ "name": "stdout",
4889
+ "text": [
4890
+ "./imgs/EVzioYnVAAAtVyr.jpg\n"
4891
+ ]
4892
+ },
4893
+ {
4894
+ "output_type": "stream",
4895
+ "name": "stderr",
4896
+ "text": [
4897
+ "344it [13:14, 2.33s/it]"
4898
+ ]
4899
+ },
4900
+ {
4901
+ "output_type": "stream",
4902
+ "name": "stdout",
4903
+ "text": [
4904
+ "./imgs/EVzjR3CWAAAaEN6.jpg\n"
4905
+ ]
4906
+ },
4907
+ {
4908
+ "output_type": "stream",
4909
+ "name": "stderr",
4910
+ "text": [
4911
+ "345it [13:17, 2.30s/it]"
4912
+ ]
4913
+ },
4914
+ {
4915
+ "output_type": "stream",
4916
+ "name": "stdout",
4917
+ "text": [
4918
+ "./imgs/EVzmOaDVAAAHLWX.jpg\n"
4919
+ ]
4920
+ },
4921
+ {
4922
+ "output_type": "stream",
4923
+ "name": "stderr",
4924
+ "text": [
4925
+ "346it [13:19, 2.27s/it]"
4926
+ ]
4927
+ },
4928
+ {
4929
+ "output_type": "stream",
4930
+ "name": "stdout",
4931
+ "text": [
4932
+ "./imgs/EVzmc9KXkAAjKFr.jpg\n"
4933
+ ]
4934
+ },
4935
+ {
4936
+ "output_type": "stream",
4937
+ "name": "stderr",
4938
+ "text": [
4939
+ "347it [13:21, 2.37s/it]"
4940
+ ]
4941
+ },
4942
+ {
4943
+ "output_type": "stream",
4944
+ "name": "stdout",
4945
+ "text": [
4946
+ "./imgs/EVzpcJ2XgAANt63.jpg\n"
4947
+ ]
4948
+ },
4949
+ {
4950
+ "output_type": "stream",
4951
+ "name": "stderr",
4952
+ "text": [
4953
+ "348it [13:24, 2.33s/it]"
4954
+ ]
4955
+ },
4956
+ {
4957
+ "output_type": "stream",
4958
+ "name": "stdout",
4959
+ "text": [
4960
+ "./imgs/EVzvcu2UMAcDSAI.jpg\n"
4961
+ ]
4962
+ },
4963
+ {
4964
+ "output_type": "stream",
4965
+ "name": "stderr",
4966
+ "text": [
4967
+ "349it [13:26, 2.29s/it]"
4968
+ ]
4969
+ },
4970
+ {
4971
+ "output_type": "stream",
4972
+ "name": "stdout",
4973
+ "text": [
4974
+ "./imgs/EVzwxpBWkAAoef8.jpg\n"
4975
+ ]
4976
+ },
4977
+ {
4978
+ "output_type": "stream",
4979
+ "name": "stderr",
4980
+ "text": [
4981
+ "350it [13:28, 2.27s/it]"
4982
+ ]
4983
+ },
4984
+ {
4985
+ "output_type": "stream",
4986
+ "name": "stdout",
4987
+ "text": [
4988
+ "./imgs/EVzznpTUcAUD1zu.jpg\n"
4989
+ ]
4990
+ },
4991
+ {
4992
+ "output_type": "stream",
4993
+ "name": "stderr",
4994
+ "text": [
4995
+ "351it [13:31, 2.31s/it]\n"
4996
+ ]
4997
+ }
4998
+ ],
4999
+ "metadata": {}
5000
+ },
5001
+ {
5002
+ "cell_type": "code",
5003
+ "execution_count": 21,
5004
+ "source": [
5005
+ "index2 = nmslib.init(method='hnsw', space='cosinesimil')\n",
5006
+ "index2.loadIndex(\"./features/image_embeddings\", load_data=True)"
5007
+ ],
5008
+ "outputs": [],
5009
+ "metadata": {}
5010
+ }
5011
+ ],
5012
+ "metadata": {
5013
+ "orig_nbformat": 4,
5014
+ "language_info": {
5015
+ "name": "python"
5016
+ }
5017
+ },
5018
+ "nbformat": 4,
5019
+ "nbformat_minor": 2
5020
+ }
model/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ from .model import FlaxHybridCLIP
model/__pycache__/__init__.cpython-36.pyc ADDED
Binary file (193 Bytes). View file
 
model/__pycache__/config.cpython-36.pyc ADDED
Binary file (4.26 kB). View file
 
model/__pycache__/model.cpython-36.pyc ADDED
Binary file (12.8 kB). View file
 
model/config.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import copy
2
+
3
+ from transformers.configuration_utils import PretrainedConfig
4
+ from transformers.utils import logging
5
+
6
+ logger = logging.get_logger(__name__)
7
+
8
+
9
+ class HybridCLIPConfig(PretrainedConfig):
10
+ r"""
11
+ :class:`HybridCLIPConfig` is the configuration class to store the configuration of a
12
+ :class:`~HybridCLIPModel`. It is used to instantiate HybridCLIPModel model according to the specified arguments,
13
+ defining the text model and vision model configs.
14
+ Configuration objects inherit from :class:`~transformers.PretrainedConfig` and can be used to control the model
15
+ outputs. Read the documentation from :class:`~transformers.PretrainedConfig` for more information.
16
+ Args:
17
+ text_config_dict (:obj:`dict`):
18
+ Dictionary of configuration options that defines text model config.
19
+ vision_config_dict (:obj:`dict`):
20
+ Dictionary of configuration options that defines vison model config.
21
+ projection_dim (:obj:`int`, `optional`, defaults to 512):
22
+ Dimentionality of text and vision projection layers.
23
+ kwargs (`optional`):
24
+ Dictionary of keyword arguments.
25
+ Examples::
26
+ >>> from transformers import BertConfig, CLIPConfig, HybridCLIPConfig, FlaxHybridCLIP
27
+ >>> # Initializing a BERT and CLIP configuration
28
+ >>> config_text = BertConfig()
29
+ >>> config_vision = CLIPConfig()
30
+ >>> config = HybridCLIPConfig.from_text_vision_configs(config_text, config_vision, projection_dim=512)
31
+ >>> # Initializing a BERT and CLIPVision model
32
+ >>> model = EncoderDecoderModel(config=config)
33
+ >>> # Accessing the model configuration
34
+ >>> config_text = model.config.text_config
35
+ >>> config_vision = model.config.vision_config
36
+ >>> # Saving the model, including its configuration
37
+ >>> model.save_pretrained('my-model')
38
+ >>> # loading model and config from pretrained folder
39
+ >>> encoder_decoder_config = HybridCLIPConfig.from_pretrained('my-model')
40
+ >>> model = FlaxHybridCLIP.from_pretrained('my-model', config=encoder_decoder_config)
41
+ """
42
+
43
+ model_type = "hybrid-clip"
44
+ is_composition = True
45
+
46
+ def __init__(self, projection_dim=512, **kwargs):
47
+ super().__init__(**kwargs)
48
+
49
+ if "text_config" not in kwargs:
50
+ raise ValueError("`text_config` can not be `None`.")
51
+
52
+ if "vision_config" not in kwargs:
53
+ raise ValueError("`vision_config` can not be `None`.")
54
+
55
+ text_config = kwargs.pop("text_config")
56
+ vision_config = kwargs.pop("vision_config")
57
+
58
+ text_model_type = text_config.pop("model_type")
59
+ vision_model_type = vision_config.pop("model_type")
60
+
61
+ from transformers import AutoConfig
62
+
63
+ self.text_config = AutoConfig.for_model(text_model_type, **text_config)
64
+
65
+ if vision_model_type == "clip":
66
+ self.vision_config = AutoConfig.for_model(
67
+ vision_model_type, **vision_config
68
+ ).vision_config
69
+ elif vision_model_type == "clip_vision_model":
70
+ from transformers import CLIPVisionConfig
71
+
72
+ self.vision_config = CLIPVisionConfig(**vision_config)
73
+ else:
74
+ self.vision_config = AutoConfig.for_model(
75
+ vision_model_type, **vision_config
76
+ )
77
+
78
+ self.projection_dim = projection_dim
79
+ self.initializer_factor = 1.0
80
+
81
+ @classmethod
82
+ def from_text_vision_configs(
83
+ cls, text_config: PretrainedConfig, vision_config: PretrainedConfig, **kwargs
84
+ ):
85
+ r"""
86
+ Instantiate a :class:`HybridCLIPConfig` (or a derived class) from text model configuration and
87
+ vision model configuration.
88
+ Returns:
89
+ :class:`HybridCLIPConfig`: An instance of a configuration object
90
+ """
91
+
92
+ return cls(
93
+ text_config=text_config.to_dict(),
94
+ vision_config=vision_config.to_dict(),
95
+ **kwargs
96
+ )
97
+
98
+ def to_dict(self):
99
+ """
100
+ Serializes this instance to a Python dictionary. Override the default
101
+ :meth:`~transformers.PretrainedConfig.to_dict`.
102
+ Returns:
103
+ :obj:`Dict[str, any]`: Dictionary of all the attributes that make up this configuration instance,
104
+ """
105
+ output = copy.deepcopy(self.__dict__)
106
+ output["text_config"] = self.text_config.to_dict()
107
+ output["vision_config"] = self.vision_config.to_dict()
108
+ output["model_type"] = self.__class__.model_type
109
+ return output
model/model.py ADDED
@@ -0,0 +1,471 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2021 The HuggingFace Team. All rights reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from typing import Optional, Tuple
17
+
18
+ import flax.linen as nn
19
+ import jax
20
+ import jax.numpy as jnp
21
+ from flax.core.frozen_dict import FrozenDict
22
+ from transformers import FLAX_MODEL_MAPPING, FlaxCLIPVisionModel
23
+ from transformers.modeling_flax_utils import FlaxPreTrainedModel
24
+ from transformers.models.clip.modeling_flax_clip import FlaxCLIPOutput
25
+ from transformers.utils import logging
26
+
27
+ from .config import HybridCLIPConfig
28
+
29
+ logger = logging.get_logger(__name__)
30
+
31
+
32
+ class FlaxHybridCLIPModule(nn.Module):
33
+ config: HybridCLIPConfig
34
+ dtype: jnp.dtype = jnp.float32
35
+
36
+ def setup(self):
37
+ text_config = self.config.text_config
38
+ vision_config = self.config.vision_config
39
+
40
+ self.projection_dim = self.config.projection_dim
41
+ self.text_embed_dim = text_config.hidden_size
42
+ self.vision_embed_dim = vision_config.hidden_size
43
+
44
+ text_module = FLAX_MODEL_MAPPING[self.config.text_config.__class__].module_class
45
+ vision_module = FLAX_MODEL_MAPPING.get(
46
+ self.config.vision_config.__class__, FlaxCLIPVisionModel
47
+ ).module_class
48
+
49
+ self.text_model = text_module(text_config, dtype=self.dtype)
50
+ self.vision_model = vision_module(vision_config, dtype=self.dtype)
51
+
52
+ self.visual_projection = nn.Dense(
53
+ self.projection_dim,
54
+ dtype=self.dtype,
55
+ kernel_init=jax.nn.initializers.normal(0.02, dtype=self.dtype),
56
+ use_bias=False,
57
+ )
58
+ self.text_projection = nn.Dense(
59
+ self.projection_dim,
60
+ dtype=self.dtype,
61
+ kernel_init=jax.nn.initializers.normal(0.02, dtype=self.dtype),
62
+ use_bias=False,
63
+ )
64
+ self.logit_scale = self.param("logit_scale", jax.nn.initializers.ones, [])
65
+
66
+ def __call__(
67
+ self,
68
+ input_ids=None,
69
+ pixel_values=None,
70
+ attention_mask=None,
71
+ position_ids=None,
72
+ token_type_ids=None,
73
+ deterministic: bool = True,
74
+ output_attentions=None,
75
+ output_hidden_states=None,
76
+ return_dict=None,
77
+ ):
78
+ return_dict = (
79
+ return_dict if return_dict is not None else self.config.return_dict
80
+ )
81
+
82
+ vision_outputs = self.vision_model(
83
+ pixel_values=pixel_values,
84
+ deterministic=deterministic,
85
+ output_attentions=output_attentions,
86
+ output_hidden_states=output_hidden_states,
87
+ return_dict=return_dict,
88
+ )
89
+
90
+ text_outputs = self.text_model(
91
+ input_ids=input_ids,
92
+ attention_mask=attention_mask,
93
+ token_type_ids=token_type_ids,
94
+ position_ids=position_ids,
95
+ deterministic=deterministic,
96
+ output_attentions=output_attentions,
97
+ output_hidden_states=output_hidden_states,
98
+ return_dict=return_dict,
99
+ )
100
+
101
+ image_embeds = vision_outputs[1]
102
+ image_embeds = self.visual_projection(image_embeds)
103
+
104
+ text_embeds = text_outputs[1]
105
+ text_embeds = self.text_projection(text_embeds)
106
+
107
+ # normalized features
108
+ image_embeds = image_embeds / jnp.linalg.norm(
109
+ image_embeds, axis=-1, keepdims=True
110
+ )
111
+ text_embeds = text_embeds / jnp.linalg.norm(text_embeds, axis=-1, keepdims=True)
112
+
113
+ # cosine similarity as logits
114
+ logit_scale = jnp.exp(self.logit_scale)
115
+ logits_per_text = jnp.matmul(text_embeds, image_embeds.T) * logit_scale
116
+ logits_per_image = logits_per_text.T
117
+
118
+ if not return_dict:
119
+ return (
120
+ logits_per_image,
121
+ logits_per_text,
122
+ text_embeds,
123
+ image_embeds,
124
+ text_outputs,
125
+ vision_outputs,
126
+ )
127
+
128
+ return FlaxCLIPOutput(
129
+ logits_per_image=logits_per_image,
130
+ logits_per_text=logits_per_text,
131
+ text_embeds=text_embeds,
132
+ image_embeds=image_embeds,
133
+ text_model_output=text_outputs,
134
+ vision_model_output=vision_outputs,
135
+ )
136
+
137
+
138
+ class FlaxHybridCLIP(FlaxPreTrainedModel):
139
+ config_class = HybridCLIPConfig
140
+ module_class = FlaxHybridCLIPModule
141
+
142
+ def __init__(
143
+ self,
144
+ config: HybridCLIPConfig,
145
+ input_shape: Optional[Tuple] = None,
146
+ seed: int = 0,
147
+ dtype: jnp.dtype = jnp.float32,
148
+ **kwargs,
149
+ ):
150
+ if input_shape is None:
151
+ input_shape = (
152
+ (1, 1),
153
+ (
154
+ 1,
155
+ config.vision_config.image_size,
156
+ config.vision_config.image_size,
157
+ 3,
158
+ ),
159
+ )
160
+
161
+ module = self.module_class(config=config, dtype=dtype, **kwargs)
162
+ super().__init__(
163
+ config, module, input_shape=input_shape, seed=seed, dtype=dtype
164
+ )
165
+
166
+ def init_weights(self, rng: jax.random.PRNGKey, input_shape: Tuple) -> FrozenDict:
167
+ # init input tensor
168
+ input_ids = jnp.zeros(input_shape[0], dtype="i4")
169
+ position_ids = jnp.broadcast_to(
170
+ jnp.arange(jnp.atleast_2d(input_ids).shape[-1]), input_shape[0]
171
+ )
172
+ token_type_ids = jnp.ones_like(input_ids)
173
+ attention_mask = jnp.ones_like(input_ids)
174
+
175
+ pixel_values = jax.random.normal(rng, input_shape[1])
176
+
177
+ params_rng, dropout_rng = jax.random.split(rng)
178
+ rngs = {"params": params_rng, "dropout": dropout_rng}
179
+
180
+ return self.module.init(
181
+ rngs, input_ids, pixel_values, attention_mask, position_ids, token_type_ids
182
+ )["params"]
183
+
184
+ def __call__(
185
+ self,
186
+ input_ids,
187
+ pixel_values,
188
+ attention_mask=None,
189
+ position_ids=None,
190
+ token_type_ids=None,
191
+ params: dict = None,
192
+ dropout_rng: jax.random.PRNGKey = None,
193
+ train: bool = False,
194
+ output_attentions: Optional[bool] = None,
195
+ output_hidden_states: Optional[bool] = None,
196
+ return_dict: Optional[bool] = None,
197
+ ):
198
+ output_attentions = (
199
+ output_attentions
200
+ if output_attentions is not None
201
+ else self.config.output_attentions
202
+ )
203
+ output_hidden_states = (
204
+ output_hidden_states
205
+ if output_hidden_states is not None
206
+ else self.config.output_hidden_states
207
+ )
208
+ return_dict = (
209
+ return_dict if return_dict is not None else self.config.return_dict
210
+ )
211
+
212
+ if position_ids is None:
213
+ position_ids = jnp.broadcast_to(
214
+ jnp.arange(jnp.atleast_2d(input_ids).shape[-1]), input_ids.shape
215
+ )
216
+
217
+ if token_type_ids is None:
218
+ token_type_ids = jnp.zeros_like(input_ids)
219
+
220
+ if attention_mask is None:
221
+ attention_mask = jnp.ones_like(input_ids)
222
+
223
+ # Handle any PRNG if needed
224
+ rngs = {}
225
+ if dropout_rng is not None:
226
+ rngs["dropout"] = dropout_rng
227
+
228
+ return self.module.apply(
229
+ {"params": params or self.params},
230
+ jnp.array(input_ids, dtype="i4"),
231
+ jnp.array(pixel_values, dtype=jnp.float32),
232
+ jnp.array(attention_mask, dtype="i4"),
233
+ jnp.array(position_ids, dtype="i4"),
234
+ jnp.array(token_type_ids, dtype="i4"),
235
+ not train,
236
+ output_attentions,
237
+ output_hidden_states,
238
+ return_dict,
239
+ rngs=rngs,
240
+ )
241
+
242
+ def get_text_features(
243
+ self,
244
+ input_ids,
245
+ attention_mask=None,
246
+ position_ids=None,
247
+ token_type_ids=None,
248
+ dropout_rng: jax.random.PRNGKey = None,
249
+ train=False,
250
+ ):
251
+ r"""
252
+ Args:
253
+ input_ids (:obj:`numpy.ndarray` of shape :obj:`(batch_size, sequence_length)`):
254
+ Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you
255
+ provide it.
256
+ Indices can be obtained using :class:`~transformers.PreTrainedTokenizer`. See
257
+ :meth:`transformers.PreTrainedTokenizer.encode` and :meth:`transformers.PreTrainedTokenizer.__call__`
258
+ for details.
259
+ `What are input IDs? <../glossary.html#input-ids>`__
260
+ Returns:
261
+ text_features (:obj:`jax_xla.DeviceArray` of shape :obj:`(batch_size, output_dim`): The text embeddings
262
+ obtained by applying the projection layer to the pooled output of text model.
263
+ """
264
+ if position_ids is None:
265
+ position_ids = jnp.broadcast_to(
266
+ jnp.arange(jnp.atleast_2d(input_ids).shape[-1]), input_ids.shape
267
+ )
268
+
269
+ if token_type_ids is None:
270
+ token_type_ids = jnp.zeros_like(input_ids)
271
+
272
+ if attention_mask is None:
273
+ attention_mask = jnp.ones_like(input_ids)
274
+
275
+ # Handle any PRNG if needed
276
+ rngs = {}
277
+ if dropout_rng is not None:
278
+ rngs["dropout"] = dropout_rng
279
+
280
+ def _get_features(
281
+ module,
282
+ input_ids,
283
+ attention_mask,
284
+ position_ids,
285
+ token_type_ids,
286
+ deterministic,
287
+ ):
288
+ text_outputs = module.text_model(
289
+ input_ids=input_ids,
290
+ attention_mask=attention_mask,
291
+ position_ids=position_ids,
292
+ token_type_ids=token_type_ids,
293
+ deterministic=deterministic,
294
+ )
295
+ pooled_output = text_outputs[1]
296
+ text_features = module.text_projection(pooled_output)
297
+ return text_features
298
+
299
+ return self.module.apply(
300
+ {"params": self.params},
301
+ jnp.array(input_ids, dtype="i4"),
302
+ jnp.array(attention_mask, dtype="i4"),
303
+ jnp.array(position_ids, dtype="i4"),
304
+ jnp.array(token_type_ids, dtype="i4"),
305
+ not train,
306
+ method=_get_features,
307
+ rngs=rngs,
308
+ )
309
+
310
+ def get_image_features(
311
+ self, pixel_values, dropout_rng: jax.random.PRNGKey = None, train=False
312
+ ):
313
+ r"""
314
+ Args:
315
+ pixel_values (:obj:`numpy.ndarray` of shape :obj:`(batch_size, num_channels, height, width)`):
316
+ Pixel values. Padding will be ignored by default should you provide it. Pixel values can be obtained
317
+ using :class:`~transformers.ImageFeatureExtractionMixin`. See
318
+ :meth:`transformers.ImageFeatureExtractionMixin.__call__` for details.
319
+ Returns:
320
+ image_features (:obj:`jax_xla.DeviceArray` of shape :obj:`(batch_size, output_dim`): The image embeddings
321
+ obtained by applying the projection layer to the pooled output of vision model.
322
+ """
323
+
324
+ # Handle any PRNG if needed
325
+ rngs = {}
326
+ if dropout_rng is not None:
327
+ rngs["dropout"] = dropout_rng
328
+
329
+ def _get_features(module, pixel_values, deterministic):
330
+ vision_outputs = module.vision_model(
331
+ pixel_values=pixel_values, deterministic=deterministic
332
+ )
333
+ pooled_output = vision_outputs[1] # pooled_output
334
+ image_features = module.visual_projection(pooled_output)
335
+ return image_features
336
+
337
+ return self.module.apply(
338
+ {"params": self.params},
339
+ jnp.array(pixel_values, dtype=jnp.float32),
340
+ not train,
341
+ method=_get_features,
342
+ rngs=rngs,
343
+ )
344
+
345
+ @classmethod
346
+ def from_text_vision_pretrained(
347
+ cls,
348
+ text_model_name_or_path: str = None,
349
+ vision_model_name_or_path: str = None,
350
+ *model_args,
351
+ **kwargs,
352
+ ) -> FlaxPreTrainedModel:
353
+ """
354
+ Params:
355
+ text_model_name_or_path (:obj: `str`, `optional`):
356
+ Information necessary to initiate the text model. Can be either:
357
+ - A string, the `model id` of a pretrained model hosted inside a model repo on huggingface.co.
358
+ Valid model ids can be located at the root-level, like ``bert-base-uncased``, or namespaced under
359
+ a user or organization name, like ``dbmdz/bert-base-german-cased``.
360
+ - A path to a `directory` containing model weights saved using
361
+ :func:`~transformers.FlaxPreTrainedModel.save_pretrained`, e.g., ``./my_model_directory/``.
362
+ - A path or url to a `PyTorch checkpoint folder` (e.g, ``./pt_model``). In
363
+ this case, ``from_pt`` should be set to :obj:`True` and a configuration object should be provided
364
+ as ``config`` argument. This loading path is slower than converting the PyTorch checkpoint in
365
+ a Flax model using the provided conversion scripts and loading the Flax model afterwards.
366
+ vision_model_name_or_path (:obj: `str`, `optional`, defaults to `None`):
367
+ Information necessary to initiate the vision model. Can be either:
368
+ - A string, the `model id` of a pretrained model hosted inside a model repo on huggingface.co.
369
+ Valid model ids can be located at the root-level, like ``bert-base-uncased``, or namespaced under
370
+ a user or organization name, like ``dbmdz/bert-base-german-cased``.
371
+ - A path to a `directory` containing model weights saved using
372
+ :func:`~transformers.FlaxPreTrainedModel.save_pretrained`, e.g., ``./my_model_directory/``.
373
+ - A path or url to a `PyTorch checkpoint folder` (e.g, ``./pt_model``). In
374
+ this case, ``from_pt`` should be set to :obj:`True` and a configuration object should be provided
375
+ as ``config`` argument. This loading path is slower than converting the PyTorch checkpoint in
376
+ a Flax model using the provided conversion scripts and loading the Flax model afterwards.
377
+ model_args (remaining positional arguments, `optional`):
378
+ All remaning positional arguments will be passed to the underlying model's ``__init__`` method.
379
+ kwargs (remaining dictionary of keyword arguments, `optional`):
380
+ Can be used to update the configuration object (after it being loaded) and initiate the model (e.g.,
381
+ :obj:`output_attentions=True`).
382
+ - To update the text configuration, use the prefix `text_` for each configuration parameter.
383
+ - To update the vision configuration, use the prefix `vision_` for each configuration parameter.
384
+ - To update the parent model configuration, do not use a prefix for each configuration parameter.
385
+ Behaves differently depending on whether a :obj:`config` is provided or automatically loaded.
386
+ Example::
387
+ >>> from transformers import FlaxHybridCLIP
388
+ >>> # initialize a model from pretrained BERT and CLIP models. Note that the projection layers will be randomly initialized.
389
+ >>> # If using CLIP's vision model the vision projection layer will be initialized using pre-trained weights
390
+ >>> model = FlaxHybridCLIP.from_text_vision_pretrained('bert-base-uncased', 'openai/clip-vit-base-patch32')
391
+ >>> # saving model after fine-tuning
392
+ >>> model.save_pretrained("./bert-clip")
393
+ >>> # load fine-tuned model
394
+ >>> model = FlaxHybridCLIP.from_pretrained("./bert-clip")
395
+ """
396
+
397
+ kwargs_text = {
398
+ argument[len("text_") :]: value
399
+ for argument, value in kwargs.items()
400
+ if argument.startswith("text_")
401
+ }
402
+
403
+ kwargs_vision = {
404
+ argument[len("vision_") :]: value
405
+ for argument, value in kwargs.items()
406
+ if argument.startswith("vision_")
407
+ }
408
+
409
+ # remove text, vision kwargs from kwargs
410
+ for key in kwargs_text.keys():
411
+ del kwargs["text_" + key]
412
+ for key in kwargs_vision.keys():
413
+ del kwargs["vision_" + key]
414
+
415
+ # Load and initialize the text and vision model
416
+ text_model = kwargs_text.pop("model", None)
417
+ if text_model is None:
418
+ assert (
419
+ text_model_name_or_path is not None
420
+ ), "If `model` is not defined as an argument, a `text_model_name_or_path` has to be defined"
421
+ from transformers import FlaxAutoModel
422
+
423
+ if "config" not in kwargs_text:
424
+ from transformers import AutoConfig
425
+
426
+ text_config = AutoConfig.from_pretrained(text_model_name_or_path)
427
+ kwargs_text["config"] = text_config
428
+
429
+ text_model = FlaxAutoModel.from_pretrained(
430
+ text_model_name_or_path, *model_args, **kwargs_text
431
+ )
432
+
433
+ vision_model = kwargs_vision.pop("model", None)
434
+ if vision_model is None:
435
+ assert (
436
+ vision_model_name_or_path is not None
437
+ ), "If `model` is not defined as an argument, a `vision_model_name_or_path` has to be defined"
438
+ from transformers import FlaxAutoModel
439
+
440
+ if "config" not in kwargs_vision:
441
+ from transformers import AutoConfig
442
+
443
+ vision_config = AutoConfig.from_pretrained(vision_model_name_or_path)
444
+ kwargs_vision["config"] = vision_config
445
+
446
+ vision_model = FlaxAutoModel.from_pretrained(
447
+ vision_model_name_or_path, *model_args, **kwargs_vision
448
+ )
449
+
450
+ # instantiate config with corresponding kwargs
451
+ dtype = kwargs.pop("dtype", jnp.float32)
452
+ config = HybridCLIPConfig.from_text_vision_configs(
453
+ text_model.config, vision_model.config, **kwargs
454
+ )
455
+
456
+ # init model
457
+ model = cls(config, *model_args, dtype=dtype, **kwargs)
458
+
459
+ if vision_config.model_type == "clip":
460
+ model.params["vision_model"]["vision_model"] = vision_model.params[
461
+ "vision_model"
462
+ ]
463
+ model.params["visual_projection"]["kernel"] = vision_model.params[
464
+ "visual_projection"
465
+ ]["kernel"]
466
+ else:
467
+ model.params["vision_model"] = vision_model.params
468
+
469
+ model.params["text_model"] = text_model.params
470
+
471
+ return model
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ jax
2
+ jaxlib
3
+ flax
4
+ tqdm
5
+ requests
6
+ nmslib
7
+ numpy