def query_model(dogo, model, images): neighbours = get_images_from_ids(model.query(dogo, k=20), images) image_list = SFrame(data=None) shown_dogs = {dogo['images'][0][0]} for i in range(0, len(neighbours)): if len(shown_dogs) < 6: if neighbours[i]['images'][0] not in shown_dogs: # neighbours[i]['image'].show() dogo_clone = neighbours[i:i + 1].copy() image_list = image_list.append(SFrame(dogo_clone)) shown_dogs.add(neighbours[i]['images'][0]) else: break return image_list
def append_images(json_file): # we fill an SFrame with all the given metadata of the dogs meta = SFrame.read_json(json_file, orient='records') # this is the SFrame that we will fill with the data plus the image, which will be saved in the final file image_list = SFrame(data=None) # for each image in the images column in the meta SFrame, we add one line in the final SF with one image per line for i in range(0, len(meta) - 1): dogo = meta[i:i + 1] for image in dogo['images'][0]: # print image dogo_clone = dogo.copy() dogo_clone.add_column(SArray([(graphlab.Image(images_path + image)) ]), name='image') dogo_clone.add_column(SArray([image]), name='image_filename') image_list = image_list.append(SFrame(dogo_clone)) image_list.save(filename='prepared_data/')