从GraphLab Create 库里面导入一个深度学习的模型
deep_learning_model=graphlab.load_model('http://s3.amazonaws.com/GraphLab-Datasets/deeplearning/imagenet_model_iter45')
接着,利用deep_learning_model从我们定义的image_train中去抽取深度特征
deep_learning_model.extract_features(image_train)
执行完毕之后,
我们的深层特征也是给求出来了
knn_model=graphlab.nearest_neighbors.create(image_train,features=['deep_features'],label='id')
通过运用深度特征的图像检索模型找到相似图像
通过运用深度特征的图像检索模型找到相似图像¶
In [8]:
cat =image_train[18:19]
In [14]:
graphlab.canvas.set_target('browser')
In [15]:
cat['image'].show()
Canvas is accessible via web browser at the URL: http://localhost:55693/index.html
Opening Canvas in default web browser.
In [11]:
cat['image'].show()
开始检索
In [17]:
knn_model.query(cat)
knn_model.query(cat)
Starting pairwise querying.
+--------------+---------+-------------+--------------+
| Query points | # Pairs | % Complete. | Elapsed Time |
+--------------+---------+-------------+--------------+
| 0 | 1 | 0.0498753 | 127.073ms |
| Done | | 100 | 311.842ms |
+--------------+---------+-------------+--------------+
Out[17]:
query_label reference_label distance rank
0 384 0.0 1
0 6910 36.9403137951 2
0 39777 38.4634888975 3
0 36870 39.7559623119 4
0 41734 39.7866014148 5
[5 rows x 4 columns]
通过 reference_label关联id得到images
In [18]:
def get_images_from_id (query_result):
return image_train.filter_by(query_result['reference_label'],'id')
通过上面的函数得到猫的邻居
In [19]:
cat_neighbors
cat_neighbors=get_images_from_id(knn_model.query(cat))
Starting pairwise querying.
+--------------+---------+-------------+--------------+
| Query points | # Pairs | % Complete. | Elapsed Time |
+--------------+---------+-------------+--------------+
| 0 | 1 | 0.0498753 | 18.013ms |
| Done | | 100 | 241.681ms |
+--------------+---------+-------------+--------------+
In [20]:
cat_neighbors['image'].show()
Canvas is updated and available in a tab in the default browser.
接下来找到和红色小轿车相似的图像
代码:
car=image_train[8:9]
car['image'].show()
get_images_from_id(knn_model.query(car))['image'].show()
构建一个lambda函数来方便寻找
返回image的函数
def get_images_from_id (query_result):
return image_train.filter_by(query_result['reference_label'],'id')
show_neighbors=lambda x: get_images_from_id(knn_model.query(image_train[x:x+1]))['image'].show()