[英]how to send an numpy array or a pytorch Tensor through http post request using requests module and Flask
我有一张图片,我想将它发送到服务端。 我正在使用requests
模块执行简单的发布请求,如下所示(信息是字典):
import requests
print(type(info["array_image"]))
print(type(info["visual_features"]))
response = requests.post("url", data=info)
output:
<class 'numpy.ndarray'>
<class 'torch.Tensor'>
在服务器端,我至少尝试将它们作为 arrays 接收:
from flask import Flask, request
@app.route('/path', methods=['POST'])
def function_name():
visual_features = request.form['visual_features']
array_image = request.form['array_image']
print(type(array_image))
print(type(visual_features))
output:
<class 'str'>
<class 'str'>
我想得到一个字节数组来构建图像,但我得到的是一个字符串......如果我没有找到一种方法,我将在 bas64 中编码 arrays 然后在服务器中对其进行解码......
感谢@praba230890 给了我一个简单易学的例子。
我仍然会在这里写下解决方案,因为提供的链接不完全适合我的情况。
import pickle
import io
array_image = pickle.dumps(info["array_image"])
stream = io.BytesIO(array_image)
files = {"array_image": stream}
info["array_image"] = None
response = http.post("url", data=info, files=files)
在服务器端:
from flask import Flask, request
@app.route('/path', methods=['POST'])
def function_name():
image = request.files.get('array_image')
array_image = image.read()
如果要从文件中获取图像,则:
requests.post("http://localhost:5000/predict",
files={"file": open('<PATH/TO/.jpg/FILE>/cat.jpg','rb')})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.