Python GCP上的Tensorflow模型-将JSON预测请求转换为正确的模型输入

Python GCP上的Tensorflow模型-将JSON预测请求转换为正确的模型输入,python,tensorflow,machine-learning,neural-network,google-cloud-platform,Python,Tensorflow,Machine Learning,Neural Network,Google Cloud Platform,我已经使用可以找到的CNN的Wild ML实现训练了一个模型,并将其部署到Google云平台。我现在正试图向模型发送JSON预测请求,但出现以下错误: Traceback (most recent call last): File "C:/Users/XXX/PycharmProjects/CNN-Prediction/prediction.py", line 73, in <module> print(predict_json(project, model, [json

我已经使用可以找到的CNN的Wild ML实现训练了一个模型,并将其部署到Google云平台。我现在正试图向模型发送JSON预测请求,但出现以下错误:

Traceback (most recent call last):
  File "C:/Users/XXX/PycharmProjects/CNN-Prediction/prediction.py", line 73, in <module>
    print(predict_json(project, model, [json_request], version="TestV2"))
  File "C:/Users/XXX/PycharmProjects/CNN-Prediction/prediction.py", line 63, in predict_json
    raise RuntimeError(response['error'])
RuntimeError: Prediction failed: Error during model execution: AbortionError(code=StatusCode.INVALID_ARGUMENT, details="Shape [-1,11] has negative dimensions
     [[Node: input_y = Placeholder[_output_shapes=[[-1,11]], dtype=DT_FLOAT, shape=[?,11], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]")

这个问题与train.py和text_cnn.py没有任何关系。他们建立你的模型。构建模型后,在eval.py代码中执行以下修改

首先,可以使用参数库获取JSON文件

import argparse
parser  = argparser.ArgumentParser()

# Input Arguments
parser.add_argument(
      '--eval-file',
      help='local paths to evaluation data',
      nargs='+',
      required=True
  )
args = parser.parse_args()
然后,您可以按如下方式执行代码:

python eval.py-eval文件YourJSONFile

然后用,

import json
json.loads(Data) 
从args获取数据或使用dict库 将数据转换为以下数组格式:

x_raw = ["key", "Value"] 
x_test = np.array(list(vocab_processor.transform(x_raw)))
将数据转换为x_raw后,上面的代码将数据转换为TensorFlow的适当格式

x_raw = ["key", "Value"] 
x_test = np.array(list(vocab_processor.transform(x_raw)))