我正在尝试围绕openface api编写一个小瓶子REST API包装器,这样我就可以POST
将我的烧瓶服务器的URL映像并让它运行图像与分类器模型的比较< / p>
app = Flask(__name__)
@app.route('/compare', methods=['POST'])
def compare():
# create arguments object with default classifier and neural net
args = CompareArguments(image)
image = request.json['image']
args.imgs = image
align = openface.AlignDlib(args.dlibFacePredictor)
net = openface.TorchNeuralNet(args.networkModel, imgDim=args.imgDim, cuda=args.cuda)
# call openface and compare image to classifier
infer(args, align, net)
return jsonify({'image': image}), 201
if __name__ == '__main__':
app.run(host='0.0.0.0', threaded=True)
如果我发布这样的图像
curl -i -H "Content-Type: application/json" -X POST http://localhost:5000/compare -d '{"image": [ "../images/examples/clapton-1.jpg"]}'
创建了一个新的火炬进程,可以在ps -aux
的输出中看到,但似乎被阻止了,因为在重新加载服务器之前它不会运行
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 18184 3284 ? Ss 18:46 0:00 /bin/bash
root 188 3.5 2.4 676060 98320 ? S 19:35 0:00 python ./app.py
root 197 98.7 1.5 202548 62388 ? R 19:35 0:08 /root/torch/install/bin/luajit -e package.path="/root/.luarocks/share/lua/5.1/?.lua;/root/.luarocks/share/lua/5.1/?/init.lua;/root/torch/install
root 211 39.2 1.5 202548 60908 ? R 19:36 0:01 /root/torch/install/bin/luajit -e package.path="/root/.luarocks/share/lua/5.1/?.lua;/root/.luarocks/share/lua/5.1/?/init.lua;/root/torch/install
似乎火炬过程被烧瓶阻塞了?我已启用线程并尝试增加进程数。我不确定是什么阻止了这个过程?有没有什么方法可以调试Flask中的线程所需的额外配置?