美文网首页
图片识别app从keras+flask代码到kubernetes

图片识别app从keras+flask代码到kubernetes

作者: MunCN | 来源:发表于2018-12-06 23:03 被阅读0次

    博客搬家至 Mun: https://kiddie92.github.io

    简书同步更新

    机器学习+kubernetes

    使用python flask 以及 keras建立一个简单的image recognition的工具,主要参考了这里
    觉得有点意思就实现了一下,里面涉及到python编程、docker、k8s的使用,image recognition模型不涉及训练,使用的是开源模型,下次自己train个模型出来看看效果_
    代码托管在github

    测试一下代码是否可用

    # 安装依赖模块,南七技校的pip源比较好用
    pip install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple/ 
    # 运行代码
    python app.py  
    # 找个图片辨认一下
    curl -X POST -F image=@dog.jpg 'http://127.0.0.1:2400/predict
    

    首次运行代码后,需要等待一段时间,因为要下载图片识别的模型

    制作docker镜像

    sudo docker build -t keras-app:latest .
    

    出现如下提示则镜像制作成功

    Successfully built pyyaml gast absl-py termcolor MarkupSafe
    ...
    ...
    Removing intermediate container 3a21aa77c06c
    Successfully built fc03d48b4096
    

    查看一下镜像信息:

    [conan@localhost deeplearning_flask]$ sudo docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    keras-app           latest              fc03d48b4096        43 minutes ago      1.7 GB
    

    1.7G.. [捂脸] 应该还可以优化一下...

    测试docker镜像

    # 运行
    sudo docker run --name image-recon -d -p 2400:2400 keras-app:latest
    # 测试
    curl -X POST -F image=@dog.jpg 'http://127.0.0.1:2400/predict'
    # 打包带走
    sudo docker save keras-app:latest > keras-app.tar
    

    在kubernetes上调度

    使用k8s集群部署应用,推荐使用yaml文件,前置条件是把刚刚的镜像push到k8s使用的镜像仓库中
    这里使用简单一点的deployment方式来部署imagerecon_deployment_test_for_fun.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: imagerecon-deployment
      labels:
        app: imagerecon
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: imagerecon
      template:
        metadata:
          labels:
            app: imagerecon
        spec:
          containers:
          - name: imagerecon
            image: keras-app:latest
            ports:
            - containerPort: 2400
    

    部署

    kubectl create -f imagerecon_deployment_test_for_fun.yaml
    # 查看
    kubectl get pods --show-labels
    

    参考资料

    https://medium.com/analytics-vidhya/deploy-your-first-deep-learning-model-on-kubernetes-with-python-keras-flask-and-docker-575dc07d9e76

    相关文章

      网友评论

          本文标题:图片识别app从keras+flask代码到kubernetes

          本文链接:https://www.haomeiwen.com/subject/lpaacqtx.html