Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DIY一个以图搜图引擎1

DIY一个以图搜图引擎1

作者头像
mixlab
发布于 2018-04-17 07:14:36
发布于 2018-04-17 07:14:36
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,凡关注本公众号的用户都可参与到这个小实验中来,基于微信头像的数据,我发现这几个有趣的事情(注意保密,以下都只显示头像,我也只能取到头像和昵称的数据,其他没权限了):

这位用户一定是位机器学习资深玩家!

吉娃娃和小松糕....的故事,大家应该都看过吧,上面这图也是类似的,有很多长得像脸的食物,以至于让我训练的模型都认为是多个人。。

我还找出了不少的小动物们:

喜欢路飞的用户们:

这2用户很配:

这一组,有没有很酷:

美女/帅哥组,这个不方便公布。

这是怎么实现的?

本次试验采用Apple开源的Turicreate框架,只需简单7 行代码即可实现。我们继续使用Docker作为开发环境,在官网https://store.docker.com/搜索,找到turicreate的镜像。

1 开发环境准备

终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull tomirving92/turicreate

下载成功后,终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name wx_users -it -p 8888:8888 -v /Users/shadow/Documents/02-coding/kerasStudy:/root/kerasStudy  tomirving92/turicreate bash

进入伪终端中,安装jupyter,输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m pip install --upgrade
pip python -m pip install jupyter

安装vim,终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt-get install vim

vim 主要用来浏览和修改文本内容的:

按键盘上的ESC可以切换至什么模式?VimInsert Mode 输入模式BVisual Mode 视图模式CNormail Mode 命令模式AInsert Mode 输入模式BBVisual Mode 视图模式CCNormail Mode 命令模式AA

再来一张答题卡: 命令模式下保存并退出是哪个命令?Vim:wqB:q!C:AA:q!CC:AAA:wqBB

轻交互的公众号文章:

第一期 超简单的AI自测题

第二期 喵星人密信

终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jupyter notebook --generate-config --allow-root

运行成功后显示:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /root/.jupyter/jupyter_notebook_config.py

编辑文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#绑定所有地址
c.NotebookApp.ip='*' 

#启动后是否在浏览器中自动打开
c.NotebookApp.open_browser = False 

#端口
c.NotebookApp.port =8888

保存文件,关于如何编辑与保存,请做完vim答题卡后查阅相关资料。

运行jupyter,终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jupyter notebook --allow-root

打开浏览器,输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8888/

把终端显示的token输入页面所示的位置,即可使用notebook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:8888/?token=**********

root目录下找到我们的项目目录,可根据个人情况自行建立。

root/kerasStudy/05-turicreate-notebooks

新建一个notebook

2 代码

7 行代码,完成从训练至查询相似图像、生成相似图集合的功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1 引用turicreate库

import turicreate as tc


# 2 读取用户的头像

ref_data  = tc.image_analysis.load_images('./data/userAvatar/ok')


#3 给每一行编号

ref_data = ref_data.add_row_number()


#4 从ref_data,创建图像相似模型

model = tc.image_similarity.create(ref_data,label=None, feature=None, model='resnet-50', verbose=True)


#5 查询与图像A相似的k个图像,此处ref_data[2:3]表示ref_data里的id为2的图像A,k=10表示查询10张

similar_images = model.query(ref_data[2:3],label=None, k=10, radius=None, verbose=False)


#6 根据图像的相似度,生成相似图集合

similarity_graph = model.similarity_graph(k=20, radius=None, include_self_edges=False, output_type='SGraph', verbose=True)
similar_images = similarity_graph.edges

码代码的时候,有不清楚的可以在知识星球求助:

付费社群--知识星球

1 看到一些好案例,关键技术解决方案,写出文章又不成体系,发星球里最合适了;

2 我会在知识星球发一些非常机密的研究心得;

3 一些非常有技巧的知识,给付费用户;

4 公众号的迭代版本,针对文章发更为升级、核心的内容。

5 当然,还有资深的专家在星球里。

最后来个大图,头像关系错综复杂啊:

留待下一篇再介绍更好玩的:比如夫妻相之类的,逢年过节帮你自动生成个节庆头像之类的。。。

参考资料:

苹果的API文档写得很清楚: https://apple.github.io/turicreate/docs/api/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科技Mix设计Lab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【玩转Lighthouse】使用轻量云服务器搭建jupyter服务器
背景 Jupyter Notebook简介 Jupyter Notebook是一款开源的Web应用,类似于Web笔记本,我们可以使用它编写代码、公式、Markdown解释性文本和绘图,并且可以把创建好的文档进行分享。 Jupyter Notebook最为方便的功能在于其可以实时运行代码,并且返回代码段的运行结果,支持可视化、IDE等能力,大大提高了模型搭建和分析的效率。 目前已经广泛应用于数据处理、数据模拟、统计建模、机器学习等重要领域。 image.png 结合轻量云服务器的优点,我们可以实现快速开发
大鹅
2022/04/20
2.6K1
极简主义︱利用apple机器学习平台Turicreate实现图像相似性检索(二)
利用 apple 开源机器学习框架 Turicreate,实现基于 ResNet-50 提取图像特征,并利用相似度度量进行图像检索。该框架具有友好的图形界面和可扩展性,可广泛应用于图像检索和相似度计算任务。
悟乙己
2018/01/02
1.1K0
极简主义︱利用apple机器学习平台Turicreate实现图像相似性检索(二)
手把手教你白嫖一个服务器并搭建自己的远程Notebook
大家好,关于学Python为什么需要一台自己的服务器来跑程序在之前我们就讲过,对于我来说大多是就是用来
刘早起
2020/06/05
6.1K1
远程部署CentOS上的Jupyter Notebook并在浏览器访问
生成的config file在/root/.jupyter/jupyter_notebook_config.py
SL_World
2021/09/18
1.3K0
Docker,救你于「深度学习环境配置」的苦海
导师提供了一台高性能GPU机器,但是装系统的老师对深度学习不大了解,所以环境需要我自己安装。在折腾了一两周后若干次失败后,我是在忍不住发了一条朋友圈:
beyondGuo
2019/05/14
1.6K0
Docker,救你于「深度学习环境配置」的苦海
玩转 Jupyter Notebook (CentOS)
1 安装 Jupyter Notebook Jupyter Notebook 简介 Jupyter Notebook 是一个开源的 Web 应用程序,可以用来创建和共享包含动态代码、方程式、可视化及解释性文本的文档。 其应用于包括:数据整理与转换,数值模拟,统计建模,机器学习等等。 详情可以访问Jupyter官网 检查 Python 环境 CentOS 7.2 中默认集成了 Python 2.7,可以通过下面命令检查 Python 版本: python --version 安装 pip pip 是一个
98k
2018/04/12
3.4K1
玩转 Jupyter Notebook (CentOS)
配置 jupyter notebook远程访问
默认情况下,安装好 Jupyter之后,可以用 localhost:8888 即可。但是如果要需要远程访问,默认是不支持101.101.101.101:8888 这样的访问,需要额外配置。
行 者
2019/12/05
7710
我在办公室远程办公?四个远程写代码的工具
(题图 This image was marked with aCC BY-NC-SA 2.0license.)
段清华DEAN
2020/06/22
3.5K0
我在办公室远程办公?四个远程写代码的工具
安装conda和jupyter notebook
今天,安装conda因为默认安装时,环境变量选择的是on,然后我不小心点了过去,于是 开始,一个小时的安装记。。。。。 写一遍文章,记录一下,防止自己不再掉坑 先说一下conda吧 Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。 下面是conda的一些基本命令: 升级 conda update conda conda update anaconda conda update anaconda-navigator //update最新版本的anaconda-navigator 卸载 计算机控制面板->程序与应用->卸载 //windows rm -rf anaconda //ubuntu 最后,建议清理下.bashrc中的Anaconda路径。 conda环境使用基本命令: conda update -n base conda //update最新版本的conda conda create -n xxxx python=3.5 //创建python3.5的xxxx虚拟环境 conda activate xxxx //开启xxxx环境 conda deactivate //关闭环境 conda env list //显示所有的虚拟环境
废江_小江
2022/09/05
2K0
jupyter远程安装文档
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
xbhog
2019/09/08
8690
将你的PC变成一个Jupyter服务器
前些日子在复习线代,因此避免不了繁杂的行列式计算,关键算出来还不知道对不对,所以想借助 Matlab 来验证。但这玩意太重了,而且复习的时候手头只有一个 iPad,没有 PC,于是我下载了一个叫 Matlab mobile 的 APP,但是一点用也没有,输入输出十分麻烦,而且公网的访问速度也十分感人,于是我想到了可以用局域网搭建一个服务器。
棒棒鸡不棒
2022/09/01
1.5K0
将你的PC变成一个Jupyter服务器
远程工作利器:高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问
pip 是 Python 的包管理工具,用于安装和管理 Python 库。在终端中运行以下命令来安装 pip:
汀丶人工智能
2024/05/30
2.5K2
远程工作利器:高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问
远程CentOS7安装Jupyter
即之前运行jupyter notebook --generate-config命令产生的配置文件。用vim打开编辑即可。
无道
2019/11/12
8030
jupyter notebook 服务安装与启动
执行后会生成配置文件, ~/.jupyter/jupyter_notebook_config.py
大鹅
2021/06/02
2.2K0
使用jupyter notebook连接服务器进行远程炼丹
执行完之后退出python终端,具体命令为: exit() 接下来生成秘钥: openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem # 按照提示填写一大堆东西
AI算法与图像处理
2019/12/12
1.8K0
使用jupyter notebook连接服务器进行远程炼丹
自己动手做一个识别手写数字的web应用01
最近在深入地学习keras,发现网上各种教程都是教你怎么训练模型的,很少有问题提到如何把训练好的模型部署为后端服务,为web及app提供服务。 于是,我决定把学习的过程完整的记录下来,帮大家更快地把深度学习的模型应用到实际场景中。 用到的技术: keras+tensorflow+flask 这个教程分为4篇。 第一篇 介绍开发环境--训练模型--保存至本地; 第二篇 介绍导入训练好的模型--识别任意的手写数字图片; 第三篇 介绍用Flask整合keras训练好的模型,并开发后端服务; 第四篇 介绍前端we
mixlab
2018/04/17
1.3K0
自己动手做一个识别手写数字的web应用01
Python开发环境—— jupyter Notebook 安装使用
这篇说一下 Linux 下配置一个 Python 的 jupyter Notebook并可以外网访问进行开发的方法,这样就可以随时轻松的使用 jupyter Notebook进行pythob的开发学习,十分方便。
李郑
2018/01/14
2.4K0
考虑将Docker引入您的数据科学工作流程
作为数据科学家的一个重要问题是正确配置数据科学环境。有时这意味着安装了很多软件包,等待软件包编译,处理模糊的错误,设置一切正常工作......大多数时候,这是一个痛苦。但是,正确配置环境对于重现分析并与他人共享工作是必要的。
February
2018/11/19
7660
全栈AI工程师指南,DIY一个识别手写数字的web应用
本文从「全栈」的角度,通过训练模型、部署成后端服务、前端页面开发等内容的介绍,帮大家更快地把深度学习的模型应用到实际场景中。
AI科技大本营
2019/03/06
1.6K0
全栈AI工程师指南,DIY一个识别手写数字的web应用
如何远程访问服务器的 Jupyter notebook
当我们拥有一台服务器的时候,通常服务器都可能包含比本地电脑比较好的配置,特别是如果做深度学习的,服务器通常意味着有好的 GPU;然后,Jupyter notebook 允许我们可以非常直观地调试代码,每完成一个函数或者一部分代码,运行一下,保存当前代码的运行结果。
kbsc13
2019/08/16
10.5K0
推荐阅读
相关推荐
【玩转Lighthouse】使用轻量云服务器搭建jupyter服务器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验