首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >识狗君微信小程序的部署

识狗君微信小程序的部署

作者头像
云水木石
发布2019-07-02 14:37:41
1.9K0
发布2019-07-02 14:37:41
举报

日历哗啦啦的往前翻,很快就要翻过2018,迎来2019年。今天预报了好久的大雪终于降临到了武汉,外面白雪皑皑,家中温暖如春,这个时候感觉最惬意。古人有诗云:绿蚁新醅酒,红泥小火炉。晚来天欲雪,能饮一杯无?,而现代人则在朋友圈中欢呼着下雪,各有各的庆祝方式,并无高下之分。

在后台有收到朋友询问识狗君微信小程序的部署,我开始觉得之前的几篇文章已经讲的很清楚,问的朋友多了,返回去再看,发觉几篇文章是站在开发的角度写的,比较散,决定在2018年最后的一篇文章整理一下关于识狗君微信小程序的部署,算是对2018年机器学习项目的一个总结。

如果你还不了解识狗君微信小程序这个项目,请参考以下几篇文章:

当微信小程序遇上TensorFlow:Server端实现

当微信小程序遇上TensorFlow:Server端实现补充

当微信小程序遇上TensorFlow:小程序实现

当微信小程序遇上TensorFlow:接收base64编码图像数据

当微信小程序遇上TensorFlow:终章

项目主页: https://github.com/mogoweb/AIDog

说是微信小程序的部署,但本文并不打算讲解如何申请、开发和审核微信小程序,而是说明服务端的部署。如果想了解微信小程序的开发,请参考腾讯官方文档。

以下步骤中涉及到的模型、数据集,我上传到了百度网盘,可以根据需要下载:

链接: https://pan.baidu.com/s/1kaoiV_uMFS_7IK-HMO1G8A 提取码: ct9e

训练模型

这个步骤是可选步骤,你可以使用训练好的模型:inception_v3.tar.gz,这个版本是我在Google官方inception V3模型的基础上,使用stanford dog datasets数据集训练而得的模型,请注意和原版的区别。

如果想自行训练模型,请接着往下看。

带标签的狗狗数据集采用stanford dog datasets,请自行下载并解压,然后执行如下命令进行训练:

python retrain.py --image_dir=./Images --saved_model_dir=models/inception_v3 --model_version 2

训练的模型保存于models/inception_v3/2,其中2是版本号,可以通过retrain.py脚本的命令行参数进行指定。

注意:这个训练过程会从网络下载Inception V3原版模型,需要访问外国网站才行。无法访问外国网站的朋友也可以采用如下的方法,将tfhub_modules.tgz的内容解压到/tmp目录下,内容大体如下:

alex@alex-550-279cn:~/work/ai/workspace/AIDog/serving$ ls -la /tmp/tfhub_modules/
total 88
drwxr-xr-x  3 alex alex  4096 12月 30 19:27 .
drwxrwxrwt 15 root root 73728 12月 30 19:31 ..
drwxr-xr-x  4 alex alex  4096 10月  9 10:04 11d9faf945d073033780fd924b2b09ff42155763
-rw-rw-r--  1 alex alex   161 10月  9 10:04 11d9faf945d073033780fd924b2b09ff42155763.descriptor.txt
alex@alex-550-279cn:~/work/ai/workspace/AIDog/serving$

这个训练过程有点长,在的PC上带GTX 960的显卡训练,大约需要两个小时。

申请证书

因为微信小程序要求HTTP请求走更加安全的HTTPS协议,所以必须提供一个SSL证书。

我们可以上阿里云申请一个免费的证书,虽然有效期只有一年,但商业用的证书比较贵,根据需要选择吧。需要注意的是,阿里云上申请证书很隐蔽,我也是尝试了好几个组合,那个免费证书的选项才出现。因为我的主机就是托管在阿里云上,域名也是使用阿里云的DNS服务,所以申请完后,很快就审核通过,然后就可以下载证书。证书下载时我选择证书for Nginx,下载下来就是两个文件:一个pem文件,一个key文件。

安装Simple TensorFlow Serving

这个Simple TensorFlow Serving是一个Google官方TensorFlow Serving的封装,是机器学习模型的通用且易于使用的服务。项目主页:https://github.com/tobegit3hub/simple_tensorflow_serving

Simple TensorFlow Serving的安装非常简单:

pip install simple_tensorflow_serving

启动服务

接下来启动server:

simple_tensorflow_serving --enable_ssl=True --model_base_path="./tensorflow/serving/models/inception_v3" --secret_pem="./certs/215052392380319.pem" --secret_key="./certs/215052392380319.key" --log_level="debug" --debug=True

其中:

  • enable_ssl参数表示是否启用https
  • model_base_path指定模型的基础路径,需要注意的是,这个基础路径不带版本号数字,我们可以有多个版本的模型,所以这个目录下可能有1, 2, 3之类的子目录,分别对应不同版本的模型,微信小程序或客户端可以选择使用哪个版本
  • secret_pem 和 secret_key 为证书申请过程中获得的两个证书文件
  • 后面两个参数用于调试,可以不用

要验证服务器是否部署成功,可以使用简单的客户端程序测试一下:

python test_client.py --image=./Images/n02116738-African_hunting_dog/n02116738_1105.jpg

结果如下:

n02116738 african hunting dog 0.780203342438
n02115913 dhole 0.0102733308449
n02092002 scottish deerhound 0.00600153999403

前面是类别标签,后面是属于某个类别的概率,上面结果中Top 1概率0.78。

微信小程序的代码可以参见github项目,这里就不多说明了。

小结

到这里,关于识狗君微信小程序的部署就讲完了,如果这个步骤中有疑问的地方,请与我联系。

马上就要到2019年了,在这里祝各位朋友在2019年工作顺利,心想事成!

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

本文分享自 云水木石 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 训练模型
  • 申请证书
  • 安装Simple TensorFlow Serving
  • 启动服务
  • 小结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档