问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么去调用百度ai显卡

发布网友 发布时间:2022-04-22 12:23

我来回答

5个回答

热心网友 时间:2023-11-01 06:55

百度AI开放平台- API实战调用

一、 前言

首先说一下项目需求。

两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-100条左右,不会更多,只会更少。最终的需求是:从这些匹配结果中找到相似度较高的那些条目。

自己编写算法来实现是一个很大的工程,涉及到自然语言处理的一些方面,比较复杂。于是上网搜了搜,发现百度开放平台的自然语言处理可以免费调用,而且每天有10W的调用次数,对我的小项目来说正好满足。但是,在往下翻的时候,发现百度给了提示,不保证并发,也就是说,在我调用的时候很容易出现返回错误结果的情况,这部分需要进行适当的处理。

既然是实战,我们从头开始说。

二、 准备工作

从哪里开始说呢,从在百度开放平台创建一个应用说起。创建应用之后(下面的开发环境是PHP,所以在选择应用使用类型的时候填写HTML),会有应用的ID,key,secret。后两个参数接下来会有用。

我使用的是短文本相似度API,其他类型的功能与此基本一模一样(不接受抬杠)。先去看开发文档http://ai.baidu.com/docs#/NLP-API/top可以看到提供了两种调用方式,这里我们以调用方式一为例-向API服务地址使用POST发送请求,这种方式来实现上述功能。看描述,需要一个参数叫做access_token,原文也提供了其获取方式。以获取短文本相似度的access_token为例子:

https://aip.bce.com/oauth/2.0/token?grant_type=client_credentials&client_id=MzRN******Txgske3QRf5Yj69&client_secret=a30CAbc*****bDuuGLdHLeyRaZk1tq5&

其中一共涉及三个参数,第一个固定为client_credentials不要改变。

第二第三个分别为前面获取到的key,secret。

把这一串地址放在地址栏中,回车即可返回json格式的字符串,找到access_token复制存在一个文件中,留着备用。

注意:复制地址的时候,中间可能会带有空格,一定要删去。特别是复制开发文档中的那段代码的时候,带有空格,是得不到返回结果的。可以复制我的这一段地址则没有问题。

三、 动手

下面开始编写PHP代码。整个过程我们只需一个文件就好。

PHP可以使用curl来请求url参数。在开发文档中,说明了要传参access_token以及要把请求文本以json格式传过去(编码是GBK)。下面是代码:

$access_token = "24.a810b4be2b5683a4d6af2f47b420877f.2592000.1507883636.282335-10044457";

$url = "https://aip.bce.com/rpc/2.0/nlp/v2/simnet?access_token=" . $access_token;

$body=array(

"text_1"=>"我在二舍B门口看到一床被子,应该是哪位同学忘记收走了,记得来取哦。",

"text_2"=>"信息A门口有一辆自行车,*的,没上锁,请失主前去认领。"

);

$json_data=json_encode($body);

这段代码及时实现了上述功能。在把$body转为json格式的时候,已经默认把中文从UTF8转到GBK了,无需另外的操作。

$curl=curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dataArray[$i]);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//取消SSL鉴权验证

最后这个取消SSL鉴权验证是必须的,否则会报错!

$result = curl_exec($ch);

//var_mp($result);

$json = iconv("gb2312", "UTF-8", $result);//返回格式是中文GBK编码,需要转为UTF8

输出$json则可以看到返回结果。

但是上述过程仅仅实现了一条记录的相似度匹配,怎么实现多条呢?使用循环???NO!NO!NO!自己去测试一下如果同时10条url请求,会发生什么事情。好吧答案是:结果正确返回。。但是返回时间非常慢,因为10条请求是顺序执行的,不会并行。所以下面的问题就是要解决并行问题。

四、 解决并行问题以及QPS并发问题

说一个大家都知道的不好的消息,就是PHP本身是不支持多线程的。有木有想死的感觉??

再说一个好消息,curl是可以并行处理多个url请求来模拟多线程的,这点非常好,啪啪!30条url请求同时发送,最终时间取决于最慢的那个请求。但是这个结果也非常棒了好不好。

下面是先是代码(我做了20条数据(文字内容都是一样的,其实一不一样无所谓)):

<?php

header('content-type:text/html;charset=utf8');

$localtime=date('y-m-d H:i:s',time());

echo "开始时间:".$localtime;

$access_token = "24.a810b4be2b5*******************507883636.282335-10044457";

$url = "https://aip.bce.com/rpc/2.0/nlp/v2/simnet?access_token=" . $access_token;

$body=array(

"text_1"=>"我在二舍B门口看到一床被子,应该是哪位同学忘记收走了,记得来取哦。",

"text_2"=>"信息A门口有一辆自行车,*的,没上锁,请失主前去认领。"

);

$json_data=json_encode($body);

$dataArray=array();

for($i=0;$i<160;$i++){

array_push($dataArray,$json_data);

}

$jsonResultArray=array();

mFunction($url,$dataArray,$jsonResultArray);

/*$jsonResultArray=func($url,$json_data);//存储返回的json数组*/

function mFunction($url,$dataArray,&$jsonResultArray){

$multicurl=curl_multi_init();

$curls=array();//存放所有的ch对象

for($i=0;$i<count($dataArray);$i++){

$curl=curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dataArray[$i]);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//取消SSL鉴权验证

curl_multi_add_handle($multicurl,$curl);

array_push($curls,$curl);

}

/* $running = null;

do {

$mrc = curl_multi_exec($multicurl, $running);

} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($running && $mrc == CURLM_OK) {

if (curl_multi_select($multicurl) != -1) {//$mh批处理中还有可执行的$ch句柄,curl_multi_select($mh) != -1程序退出阻塞状态。

do { //继续执行需要处理的$ch句柄。

$mrc = curl_multi_exec($multicurl, $running);

} while ($mrc == CURLM_CALL_MULTI_PERFORM);

}

}*/

$running = null;

// 执行批处理句柄

do {

usleep(10000);

curl_multi_exec($multicurl, $running);

} while ($running > 0);

$failArray=array();

for($i=0;$i<count($dataArray);$i++){

$temp=iconv("gb2312", "UTF-8", curl_multi_getcontent($curls[$i]));//得到的是返回结果的json格式字符串

$resultarray=json_decode($temp);//得到一个数组

if(array_key_exists("error_msg",$resultarray)){//出错则重新发送请求,最后得到的结果要赋值给temp

array_push($failArray,$dataArray[$i]);

curl_multi_remove_handle($multicurl, $curls[$i]);

}else{

array_push($jsonResultArray,$temp);

curl_multi_remove_handle($multicurl, $curls[$i]);

}

}

if($failArray!=null){//如果$failArray数组不为空,继续调用func()

curl_multi_close($multicurl);

mFunction($url,$failArray,$jsonResultArray);//$url,$json_data,&$jsonResultArray

}else{//如果$failArray数组为空,return 即可退出函数。

curl_multi_close($multicurl);

return;

}

}

for($i=0;$i<count($jsonResultArray);$i++){

var_mp($jsonResultArray[$i]);

}

$localtime=date('y-m-d H:i:s',time());

echo "结束时间:".$localtime;

上面这段代码,没错就是全部代码都贴出来了,注释也可以看。代码中一道都把并发带来的问题都解决了。

curl_multi_init(); 的用法不多说,上网查到处都是,可以去菜鸟教程看。下面说一说处理QPS的问题。

因为并行提交速度太快,服务器容易达到QPS*,就会返回错误代码:

'{"error_msg":"Open api qps request limit reached","error_code":18}' (length=66)
没什么好的解决方式,要想免费使用,我的方案是,对返回结果检测是否存在error_msg只要存在,就得重新发送请求。返回结果正常呢,就把返回结果现存人数组中。在处理重新发送请求部分,使用了函数迭代,直到没有错误信息才结束调用。最终所有的正确结果都存在数组中了。

五、 测试结果

经测试:

测试数据条目以及对应的响应时间,从结果来看,还是可以接受的。

/*

* 20条=>1s

*

*40条=>3s

*

* 80条=>7s

*

* 160条=>16s

* */

文章是昨晚上熬夜写的,没想到学校突然断网断电,断电不可怕,重要的是电没了,手机移动网络也跟着消失……消失……失……

热心网友 时间:2023-11-01 06:56

想要去掉百度AI显卡,你可以在系统的设置里面进行卸载AI显卡这一操作用360卫士进行操作卸载。

热心网友 时间:2023-11-01 06:56

想要调用这个AI显卡的话,我们需要在软件当中进行一定的设置,然后进行安装。
因为这个显卡需求比较多,在常规设置当中,需要将详细的参数设置完整之后才可以运用。

热心网友 时间:2023-11-01 06:57

你可以直接在设置里面调整到显卡设置,然后在里面就可以按照参数调节

热心网友 时间:2023-11-01 06:57

呃,首先你需要登录相关的主页,在主页中会有设置的选项就可以进行设置了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抗击疫情祝福语简短 疫情早日结束愿大家平安(精选76句) 新肺炎防范祝福语 2024年为武汉加油的朋友圈祝福语暖心句子 qq对对碰为什么在QQ游戏客户端页面没有QQ对对碰游戏 关于山地车骑行装备 烧心反酸吃什么药缓解 反胃酸烧心吃什么药 我第第因为喜欢一位女孩不和他谈拉受刺激神经错乱厌世厌学 怎么办 精神错乱你了解了吗 溯洄从之道阻且长什么意思 涓怎么读音 新手求助 ai宽度配置文件 怎么改变方向 为什么AI会比PS难学呢? 数位板新手在 Ps,Ai 中画画有哪些实用技巧 自学平面设计,用ps和ai用什么书啊? 新手用ai怎样制作名片 Illustrator里填充颜色总是灰的怎么处理? 关于AI填充颜色的问题,新手求教 关于AI(Adobe Illustrator)的简单问题,我是新手 我想学ps和Ai,怎么学?是新手,求解? 404 Not Found 微信公众平台编辑模式和开发模式有哪些优缺点 为什么有的人就是不上镜呢! 为什么有些人想读书而成绩一直不上 终于知道为什么有些人永远都上不了分,永远都是坑 为什么有的人怎么也考不上大学? 为什么有些人跟不上正常人的思维和想法呢? 拍照片,为什么有些人上照,有些人不上照? 为什么有的人喝酒老上厕所,而有的人确不上。 为什么很多人考不上大学? illustaror cs是什么软件? 微信公众号开发运营需要掌握哪些能力 华为魅特30微信聊天记录。长按不出现删除按钮了? 华为手机微信聊天记录删除怎么恢复 竹子怎么抛光要上油吗 竹子该怎样抛光 zu竹子怎么抛光 实心竹煮完就打磨可以吗? 打磨玉竹需要多少目的砂纸 竹子怎么防腐处理 竹子防腐防裂方法 新砍竹子如何防裂 竹子怎样可以做到做旧的效果 怎样让竹子包浆 如何竹子上漆?保证竹子因时间久而不开裂? 怎么把干竹子表面变得光滑明亮 竹子工艺品开裂了怎么补救? 怎么化淡妆视频 淡妆怎么画视频教程:3分钟搞定生活淡妆,手把手教你 如何化淡妆视频 如何画好淡妆