为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 中的 Rest API:{'error':“缺少 'inputs' }

PHP 中的 Rest API:{'error':“缺少 'inputs' }

PHP
湖上湖 2023-06-24 17:59:23
对于UBUNTU 终端中的此功能,它非常适合我的 dockerized 容器(使用 Tensorflow Serving 制作):curl -d '{"instances": [[ 1.18730158, -0.70909592,  1.21082918, -0.15897608, -0.87693017],       [-0.3015204 , -0.44457891,  0.67090776,  1.1188499 , -0.87693017],       [-0.52579254, -0.05989349,  0.40094705,  1.62998029,  1.13982729],       [ 0.13322252,  0.58198159, -0.94885648,  1.1188499 , -0.87693017],       [ 0.77441082, -0.68638116, -0.13897436,  0.35215431,  1.13982729],       [ 0.69102759,  1.49057189, -0.13897436, -0.67010647,  1.13982729],       [-0.25436574, -0.58819479,  0.13098635, -0.15897608,  1.13982729],       [ 1.54671206,  2.58088026,  2.0207113 , -1.56458465,  1.13982729],       [-0.97261165, -0.6292279 ,  0.40094705, -1.56458465, -0.87693017],       [-0.36190136,  0.14893573,  0.40094705,  0.09658912,  1.13982729]]}'     -X POST http://localhost:8501/v1/models/model:predict我在PHP中创建了一个curl函数:    <?php         $endpoint = "http://localhost:8501/v1/models/model:predict";$inputData = array(    "instances" =>        [[ 1.18730158, -0.70909592,  1.21082918, -0.15897608, -0.87693017],       [-0.3015204 , -0.44457891,  0.67090776,  1.1188499 , -0.87693017],       [-0.52579254, -0.05989349,  0.40094705,  1.62998029,  1.13982729],       [ 0.13322252,  0.58198159, -0.94885648,  1.1188499 , -0.87693017],       [ 0.77441082, -0.68638116, -0.13897436,  0.35215431,  1.13982729],       [ 0.69102759,  1.49057189, -0.13897436, -0.67010647,  1.13982729],       [-0.25436574, -0.58819479,  0.13098635, -0.15897608,  1.13982729],       [ 1.54671206,  2.58088026,  2.0207113 , -1.56458465,  1.13982729],       [-0.97261165, -0.6292279 ,  0.40094705, -1.56458465, -0.87693017],       [-0.36190136,  0.14893573,  0.40094705,  0.09658912,  1.13982729]])        但我不断收到错误:{'error': "Missing 'inputs' or 'instances' key"}我确信我没有正确提供输入,但我不知道在哪里进行更改。任何帮助将不胜感激。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

我认为您正在将额外的"data" => $inputData密钥传递到您的$jsonData. 在没有数据的情况下尝试这种方式,


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost:8501/v1/models/model:predict');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"instances\": [[ 1.18730158, -0.70909592,  1.21082918, -0.15897608, -0.87693017],\n       [-0.3015204 , -0.44457891,  0.67090776,  1.1188499 , -0.87693017],\n       [-0.52579254, -0.05989349,  0.40094705,  1.62998029,  1.13982729],\n       [ 0.13322252,  0.58198159, -0.94885648,  1.1188499 , -0.87693017],\n       [ 0.77441082, -0.68638116, -0.13897436,  0.35215431,  1.13982729],\n       [ 0.69102759,  1.49057189, -0.13897436, -0.67010647,  1.13982729],\n       [-0.25436574, -0.58819479,  0.13098635, -0.15897608,  1.13982729],\n       [ 1.54671206,  2.58088026,  2.0207113 , -1.56458465,  1.13982729],\n       [-0.97261165, -0.6292279 ,  0.40094705, -1.56458465, -0.87693017],\n       [-0.36190136,  0.14893573,  0.40094705,  0.09658912,  1.13982729]]}");


$headers = array();

$headers[] = 'Content-Type: application/x-www-form-urlencoded';

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


$result = curl_exec($ch);

if (curl_errno($ch)) {

    echo 'Error:' . curl_error($ch);

}

curl_close($ch);

编辑:您可以直接传递$inputData如下


在哪里


$inputData = [

    "instances" => [

       [1.18730158, -0.70909592,  1.21082918, -0.15897608, -0.87693017],

       [-0.3015204 , -0.44457891,  0.67090776,  1.1188499 , -0.87693017],

       [-0.52579254, -0.05989349,  0.40094705,  1.62998029,  1.13982729],

       [ 0.13322252,  0.58198159, -0.94885648,  1.1188499 , -0.87693017],

       [ 0.77441082, -0.68638116, -0.13897436,  0.35215431,  1.13982729],

       [ 0.69102759,  1.49057189, -0.13897436, -0.67010647,  1.13982729],

       [-0.25436574, -0.58819479,  0.13098635, -0.15897608,  1.13982729],

       [ 1.54671206,  2.58088026,  2.0207113 , -1.56458465,  1.13982729],

       [-0.97261165, -0.6292279 ,  0.40094705, -1.56458465, -0.87693017],

       [-0.36190136,  0.14893573,  0.40094705,  0.09658912,  1.13982729]

     ]

    ];

进而CURLOPT_POSTFIELDS => json_encode($inputData)


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信