Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x cnn文本分类tensorflow POST请求格式的Python Flask_Python 3.x_Tensorflow_Flask_Deep Learning_Conv Neural Network - Fatal编程技术网

Python 3.x cnn文本分类tensorflow POST请求格式的Python Flask

Python 3.x cnn文本分类tensorflow POST请求格式的Python Flask,python-3.x,tensorflow,flask,deep-learning,conv-neural-network,Python 3.x,Tensorflow,Flask,Deep Learning,Conv Neural Network,我正在做。我的目标是从冻结图中进行预测 我的问题是如何从冻结的图表中进行预测。我发现了一个很棒的教程。他正在用烧瓶实现冻结图形 我正在使用下面的flask代码进行预测 import json, argparse, time import tensorflow as tf from linkedin import load_graph from flask import Flask, request from flask_cors import CORS ###################

我正在做。我的目标是从冻结图中进行预测

我的问题是如何从冻结的图表中进行预测。我发现了一个很棒的教程。他正在用烧瓶实现冻结图形

我正在使用下面的flask代码进行预测

import json, argparse, time

import tensorflow as tf
from linkedin import load_graph

from flask import Flask, request
from flask_cors import CORS
##################################################
# API part
##################################################
app = Flask(__name__)
cors = CORS(app)
@app.route("/api/predict", methods=['POST'])
def predict():
    start = time.time()

    data = request.data.decode("utf-8")
    if data == "":
        params = request.form
        x_in = json.loads(params['x'])
    else:
        params = json.loads(data)
        x_in = params['x']

    ##################################################
    # Tensorflow part
    ##################################################
    y_out = persistent_sess.run(y, feed_dict={
        x: x_in
        # x: [[3, 5, 7, 4, 5, 1, 1, 1, 1, 1]] # < 45
    })
    ##################################################
    # END Tensorflow part
    ##################################################

    json_data = json.dumps({'y': y_out.tolist()})
    print("Time spent handling the request: %f" % (time.time() - start))

    return json_data
##################################################
# END API part
##################################################

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--frozen_model_filename", default="frozen_model2.pb", type=str, help="Frozen model file to import")
    parser.add_argument("--gpu_memory", default=.2, type=float, help="GPU memory per process")
    args = parser.parse_args()

    ##################################################
    # Tensorflow part
    ##################################################
    print('Loading the model')
    graph = load_graph(args.frozen_model_filename)
    x = graph.get_tensor_by_name('prefix/input_x:0')
    y = graph.get_tensor_by_name('prefix/output/predictions:0')

    print('Starting Session, setting the GPU memory usage to %f' % args.gpu_memory)
    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=args.gpu_memory)
    sess_config = tf.ConfigProto(gpu_options=gpu_options)
    persistent_sess = tf.Session(graph=graph, config=sess_config)
    ##################################################
    # END Tensorflow part
    ##################################################

    print('Starting the API')
    app.run()
我正在使用MacOS上的终端运行此脚本

运行此命令后,我将使用postman发布请求:


如何正确构建此请求以获得正确响应。Postman在body中需要的确切输入是什么?

在Postman中,您以json格式发送POST请求和数据,因此需要对代码进行更改

要获取数据,首先按照以下步骤进行验证:

if not 'data' in request.json:
    abort(400)
x_in = request.json["data"]
{ 
   "data" : {
               "x" : "good movie it was"
             }
 }
之后,您可以按如下方式访问字符串:

if not 'data' in request.json:
    abort(400)
x_in = request.json["data"]
{ 
   "data" : {
               "x" : "good movie it was"
             }
 }
但是,如果您想对请求进行更改,则可以尝试按如下方式发送数据:

if not 'data' in request.json:
    abort(400)
x_in = request.json["data"]
{ 
   "data" : {
               "x" : "good movie it was"
             }
 }

如果不行,那么一定要让我知道。

{data:{x:这是一部好电影}这在postman中不起作用您需要更多信息吗我不确定如何调试这一个我更改了def predict:start=time.time data=request.data.decodeutf-8如果request.json:abort400 else:params=json.loadsdata x_in=request.json[data]中没有“data”,为什么要传递字符串@Ajinkya传递它时不带逗号