TensorCraft是Keras模型的服务器
tensorcraft的Python项目详细描述
张力器筏
tensorcraft是一个服务于Keras的http服务器。 使用TensorFlow运行时的模型。
目前tensorcraft处于beta测试阶段,客户端和服务器api可能在 未来版本。
此服务器解决了如下问题:
- 模型的版本控制。
- 模型仓库。
- 为机器学习模型启用CI/CD。
安装
使用snap安装
这是安装tensorcraft
的推荐方法。只需运行以下命令
命令:
snap install tensorcraft --devmode --edge snap start tensorcraft
使用Docker安装
tensorcraft可以用作码头集装箱。这种方法的主要注意事项是
安装在Docker映像中的tensorflow
库未编译
支持AVX指令或GPU。
docker pull netrack/tensorcraft:latest
要启动容器,请运行以下命令:
docker run -it -p 5678:5678/tcp netrack/tensorcraft
您可以选择指定卷,以便在重新启动控制器之间保持模型:
docker run -it -p 5678:5678/tcp -v tensorcraft:/var/run/tensorcraft netrack/tensorcraft
使用pypi
安装从pypi存储库安装最新版本。
pip install tensorcraft
使用TensorCraft
路缘石要求
目前,tensorcraft
只支持tensorflow保存的模型,因此
为了发布keras模型,首先必须将其保存为已保存的模型。
考虑以下路缘石模型:
fromtensorflowimportkerasfromtensorflow.kerasimportlayersinputs=keras.Input(shape=(8,),name='digits')x=layers.Dense(4,activation='relu',name='dense_1')(inputs)x=layers.Dense(4,activation='relu',name='dense_2')(x)outputs=layers.Dense(2,activation='softmax',name='predictions')(x)model=keras.Model(inputs=inputs,outputs=outputs,name='3_layer_mlp')
使用2.0 tensorflow api中的export_saved_model
函数保存它:
keras.experimental.export_saved_model(model,"3_layer_mlp")
启动服务器
要启动服务器,请运行server
命令:
sudo tensorcraft server
默认情况下,它在本地主机上的http://localhost:5678
开始侦听unsecured端口。
默认配置将模型保存到/var/lib/tensorcraft
目录。除了
该服务器需要访问/var/run
目录才能保存pid文件
在那里。
推新车型
注意,tensorcraft
应用程序的客户端和服务器共享相同的代码
基地。这意味着需要为
客户。这将在取消注释版本中得到改进。
模型保存到目录中后,使用tar
实用程序对其进行打包。例如,这个
是前面示例中的3_layer_mlp
模型的外观:
tar -cf 3_layer_mlp.tar 3_layer_mlp
现在,打包到归档文件中的模型可以被推送到 任意标记:
tensorcraft push --name 3_layer_mlp --tag 0.0.1 3_layer_mlp.tar
列出可用型号
您可以使用以下命令列出服务器上所有可用的型号:
tensorcraft list
执行list
命令后,您将看到可用的型号:
3_layer_mlp:0.0.1 3_layer_mlp:latest
这是tensorcraft
服务器的特性,每个发布的模型名都会导致
创建模型组。每个模型组都有它的latest
标记,它引用
最新推出的模型。
移除模型
使用remove
命令可以删除未使用的模型:
tensorcraft remove --name 3_layer_mlp --tag 0.0.1
执行remove
命令将删除模型本身,并且
模型组,when是该组中的最后一个模型。
使用模型
为了使用推送模型,tensorcraft
公开rest api。示例查询
对于服务器,如下所示:
curl -X POST https://localhost:5678/models/3_layer_mlp/0.0.1/predict -d \'{"x": [[1.0, 2.1, 1.43, 4.43, 12.1, 3.2, 1.44, 2.3]]}'
许可证
代码和文档在Apache 2.0 license下发布。