SWISS PLUS是什么品牌?

SWISS PLUS是什么品牌?,第1张

SWISSPLUS 是瑞士元素 的牌子 Skin Clarifying Complex 是防晒露vitamin C lotion II是维他命C化妆水 这个牌子的护肤产品比较适合给敏感肤质使用

搭建深度学习后台服务器

我们的Keras深度学习REST API将能够批量处理图像,扩展到多台机器(包括多台web服务器和Redis实例),并在负载均衡器之后进行循环调度。

为此,我们将使用:

KerasRedis(内存数据结构存储)

Flask (Python的微web框架)

消息队列和消息代理编程范例

本篇文章的整体思路如下:

我们将首先简要讨论Redis数据存储,以及如何使用它促进消息队列和消息代理。然后,我们将通过安装所需的Python包来配置Python开发环境,以构建我们的Keras深度学习REST API。一旦配置了开发环境,就可以使用Flask web框架实现实际的Keras深度学习REST API。在实现之后,我们将启动Redis和Flask服务器,然后使用cURL和Python向我们的深度学习API端点提交推理请求。最后,我们将以对构建自己的深度学习REST API时应该牢记的注意事项的简短讨论结束。

第一部分:简要介绍Redis如何作为REST API消息代理/消息队列

1:Redis可以用作我们深度学习REST API的消息代理/消息队列

Redis是内存中的数据存储。它不同于简单的键/值存储(比如memcached),因为它可以存储实际的数据结构。今天我们将使用Redis作为消息代理/消息队列。这包括:

在我们的机器上运行Redis

将数据(图像)按照队列的方式用Redis存储,并依次由我们的REST API处理

为新批输入图像循环访问Redis

对图像进行分类并将结果返回给客户端

文章中对Redis官网有一个超链接(https://redisio/topics/introduction),但是要翻出去,所以我就截图一个放上去仅供参考。

第二部分:安装和配置Redis

官网做法,linux系统的安装:

自己的安装方法:

conda install redis

开启方式相同:

resdis-server

结果:

测试和原文的命令一致。

第三部分:配置Python开发环境以构建Keras REST API

文章中说需要创建新的虚拟环境来防止影响系统级别的python项目(但是我没有创建),但是还是需要安装rest api所需要依赖的包。以下为所需要的包。

第四部分:实现可扩展的Keras REST API

首先是Keras Redis Flask REST API数据流程图

让我们开始构建我们的服务器脚本。为了方便起见,我在一个文件中实现了服务器,但是它可以按照您认为合适的方式模块化。为了获得最好的结果和避免复制/粘贴错误,我建议您使用本文的“下载”部分来获取相关的脚本和图像。

为了简单起见,我们将在ImageNet数据集上使用ResNet预训练。我将指出在哪里可以用你自己的模型交换ResNet。flask模块包含flask库(用于构建web API)。redis模块将使我们能够与redis数据存储接口。从这里开始,让我们初始化将在run_keras_serverpy中使用的常量

我们将向服务器传递float32图像,尺寸为224 x 224,包含3个通道。我们的服务器可以处理一个BATCH_SIZE = 32。如果您的生产系统上有GPU(s),那么您需要调优BATCH_SIZE以获得最佳性能。我发现将SERVER_SLEEP和CLIENT_SLEEP设置为025秒(服务器和客户端在再次轮询Redis之前分别暂停的时间)在大多数系统上都可以很好地工作。如果您正在构建一个生产系统,那么一定要调整这些常量。

让我们启动我们的Flask app和Redis服务器:

在这里你可以看到启动Flask是多么容易。在运行这个服务器脚本之前,我假设Redis服务器正在运行(之前的redis-server)。我们的Python脚本连接到本地主机6379端口(Redis的默认主机和端口值)上的Redis存储。不要忘记将全局Keras模型初始化为None。接下来我们来处理图像的序列化:

Redis将充当服务器上的临时数据存储。图像将通过诸如cURL、Python脚本甚至是移动应用程序等各种方法进入服务器,而且,图像只能每隔一段时间(几个小时或几天)或者以很高的速率(每秒几次)进入服务器。我们需要把图像放在某个地方,因为它们在被处理前排队。我们的Redis存储将作为临时存储。

为了将图像存储在Redis中,需要对它们进行序列化。由于图像只是数字数组,我们可以使用base64编码来序列化图像。使用base64编码还有一个额外的好处,即允许我们使用JSON存储图像的附加属性。

base64_encode_image函数处理序列化。类似地,在通过模型传递图像之前,我们需要反序列化图像。这由base64_decode_image函数处理。

预处理

我已经定义了一个prepare_image函数,它使用Keras中的ResNet50实现对输入图像进行预处理,以便进行分类。在使用您自己的模型时,我建议修改此函数,以执行所需的预处理、缩放或规范化。

从那里我们将定义我们的分类方法

classify_process函数将在它自己的线程中启动,我们将在下面的__main__中看到这一点。该函数将从Redis服务器轮询图像批次,对图像进行分类,并将结果返回给客户端。

在model = ResNet50(weights="imagenet")这一行中,我将这个操作与终端打印消息连接起来——根据Keras模型的大小,加载是即时的,或者需要几秒钟。

加载模型只在启动这个线程时发生一次——如果每次我们想要处理一个映像时都必须加载模型,那么速度会非常慢,而且由于内存耗尽可能导致服务器崩溃。

加载模型后,这个线程将不断轮询新的图像,然后将它们分类(注意这部分代码应该时尚一部分的继续)

在这里,我们首先使用Redis数据库的lrange函数从队列(第79行)中获取最多的BATCH_SIZE图像。

从那里我们初始化imageIDs和批处理(第80和81行),并开始在第84行开始循环队列。

在循环中,我们首先解码对象并将其反序列化为一个NumPy数组image(第86-88行)。

接下来,在第90-96行中,我们将向批处理添加图像(或者如果批处理当前为None,我们将该批处理设置为当前图像)。

我们还将图像的id附加到imageIDs(第99行)。

让我们完成循环和函数

在这个代码块中,我们检查批处理中是否有图像(第102行)。如果我们有一批图像,我们通过模型(第105行)对整个批进行预测。从那里,我们循环一个图像和相应的预测结果(110-122行)。这些行向输出列表追加标签和概率,然后使用imageID将输出存储在Redis数据库中(第116-122行)。

我们使用第125行上的ltrim从队列中删除了刚刚分类的图像集。最后,我们将睡眠设置为SERVER_SLEEP时间并等待下一批图像进行分类。下面我们来处理/predict我们的REST API端点

稍后您将看到,当我们发布到REST API时,我们将使用/predict端点。当然,我们的服务器可能有多个端点。我们使用@app。路由修饰符以第130行所示的格式在函数上方定义端点,以便Flask知道调用什么函数。我们可以很容易地得到另一个使用AlexNet而不是ResNet的端点,我们可以用类似的方式定义具有关联函数的端点。你懂的,但就我们今天的目的而言,我们只有一个端点叫做/predict。

我们在第131行定义的predict方法将处理对服务器的POST请求。这个函数的目标是构建JSON数据,并将其发送回客户机。如果POST数据包含图像(第137和138行),我们将图像转换为PIL/Pillow格式,并对其进行预处理(第141-143行)。

在开发这个脚本时,我花了大量时间调试我的序列化和反序列化函数,结果发现我需要第147行将数组转换为C-contiguous排序(您可以在这里了解更多)。老实说,这是一个相当大的麻烦事,但我希望它能帮助你站起来,快速跑。

如果您想知道在第99行中提到的id,那么实际上是使用uuid(通用唯一标识符)在第151行生成的。我们使用UUID来防止hash/key冲突。

接下来,我们将图像的id和base64编码附加到d字典中。使用rpush(第153行)将这个JSON数据推送到Redis db非常简单。

让我们轮询服务器以返回预测

我们将持续循环,直到模型服务器返回输出预测。我们开始一个无限循环,试图得到157-159条预测线。从这里,如果输出包含预测,我们将对结果进行反序列化,并将结果添加到将返回给客户机的数据中。我们还从db中删除了结果(因为我们已经从数据库中提取了结果,不再需要将它们存储在数据库中),并跳出了循环(第163-172行)。

否则,我们没有任何预测,我们需要睡觉,继续投票(第176行)。如果我们到达第179行,我们已经成功地得到了我们的预测。在本例中,我们向客户机数据添加True的成功值(第179行)。注意:对于这个示例脚本,我没有在上面的循环中添加超时逻辑,这在理想情况下会为数据添加一个False的成功值。我将由您来处理和实现。最后我们称烧瓶。jsonify对数据,并将其返回给客户端(第182行)。这就完成了我们的预测函数。

为了演示我们的Keras REST API,我们需要一个__main__函数来实际启动服务器

第186-196行定义了__main__函数,它将启动classify_process线程(第190-192行)并运行Flask应用程序(第196行)。

第五部分:启动可伸缩的Keras REST API

要测试我们的Keras深度学习REST API,请确保使用本文的“下载”部分下载源代码示例图像。从这里,让我们启动Redis服务器,如果它还没有运行:

redis-server

然后,在另一个终端中,让我们启动REST API Flask服务器:

python run_keras_serverpy

另外,我建议在向服务器提交请求之前,等待您的模型完全加载到内存中。现在我们可以继续使用cURL和Python测试服务器。

第七部分:使用cURL访问Keras REST API

使用cURL来测试我们的Keras REST API服务器。这是我的家庭小猎犬Jemma。根据我们的ResNet模型,她被归类为一只拥有946%自信的小猎犬。

curl -X POST -F image=@jemmapng 'http://localhost:5000/predict'

你会在你的终端收到JSON格式的预测:

{"predictions": [{"label": "beagle","probability": 09461546540260315},{"label": "bluetick","probability": 0031958919018507004},{"label": "redbone","probability": 0006617196369916201},{"label": "Walker_hound","probability": 00033879687543958426},{"label": "Greater_Swiss_Mountain_dog","probability": 00025766862090677023}],"success": true}

第六部分:使用Python向Keras REST API提交请求

如您所见,使用cURL验证非常简单。现在,让我们构建一个Python脚本,该脚本将发布图像并以编程方式解析返回的JSON。

让我们回顾一下simple_requestpy

# import the necessary packagesimport requests# initialize the Keras REST API endpoint URL along with the input# image pathKERAS_REST_API_URL = "http://localhost:5000/predict"IMAGE_PATH = "jemmapng"

我们在这个脚本中使用Python请求来处理向服务器提交数据。我们的服务器运行在本地主机上,可以通过端口5000访问端点/predict,这是KERAS_REST_API_URL变量(第6行)指定的。

我们还定义了IMAGE_PATH(第7行)。png与我们的脚本在同一个目录中。如果您想测试其他图像,请确保指定到您的输入图像的完整路径。

让我们加载图像并发送到服务器:

# load the input image and construct the payload for the requestimage = open(IMAGE_PATH, "rb")read()payload = {"image": image}# submit the requestr = requestspost(KERAS_REST_API_URL, files=payload)json()# ensure the request was sucessfulif r["success"]: # loop over the predictions and display them for (i, result) in enumerate(r["predictions"]): print("{} {}: {:4f}"format(i + 1, result["label"], result["probability"]))# otherwise, the request failedelse: print("Request failed")

我们在第10行以二进制模式读取图像并将其放入有效负载字典。负载通过请求发送到服务器。在第14行发布。如果我们得到一个成功消息,我们可以循环预测并将它们打印到终端。我使这个脚本很简单,但是如果你想变得更有趣,你也可以使用OpenCV在图像上绘制最高的预测文本。

第七部分:运行简单的请求脚本

编写脚本很容易。打开终端并执行以下命令(当然,前提是我们的Flask服务器和Redis服务器都在运行)。

python simple_requestpy

使用Python以编程方式使用我们的Keras深度学习REST API的结果

第八部分:扩展深度学习REST API时的注意事项

如果您预期在深度学习REST API上有较长一段时间的高负载,那么您可能需要考虑一种负载平衡算法,例如循环调度,以帮助在多个GPU机器和Redis服务器之间平均分配请求。

记住,Redis是内存中的数据存储,所以我们只能在队列中存储可用内存中的尽可能多的图像。

使用float32数据类型的单个224 x 224 x 3图像将消耗602112字节的内存。

很好用。是全新男士护肤系列延续优良的瑞士护肤技术,男士护肤系列包含8款照顾男士日常及深层的护肤需要的产品,为男士护肤写下新一章。只消数分钟,便可保持肌肤于良好状态。

中国的化妆品市场是全世界最大的新兴市场,在短短的20多年里,中国化妆品行业从小到大,由弱到强,从简单粗放到科技领先、集团化经营,全行业形成了一个初具规模、极富生机活力的产业大军。随着国内居民消费水平的升级,化妆品行业发展也已经进入新的里程。

其中,护扶品行业是化妆品行业中发展最快的一个细分市场。中国护肤品行业以年均15%以上的速度递增,全行业正处在消费结构逐渐升级、消费层次多元化的阶段,护肤品生产和销售方面也已形成相对完善的法律法规。

据调查数据显示,2010年,中国护肤品行业共实现销售收入52300亿元,同比增长1668%,实现利润总额3422亿元,同比增长373%。海关数据显示,2010年中国护肤品行业进出口总额为16329736万美元,其中,进口额为7456382万美元,同比增长3669%;出口额为8873354万美元,同比增长2495%;实现贸易顺差1416972万美元。

以上内容参考-护肤品

SWISS MADE

瑞士制造

瑞士机芯

相关例句:

Only one high-quality resistor in the signal path and using the Swiss made precision attenuator with goldcontacts for low contact resistance and longtime durability  

一高质量电阻器在信号道路和使用瑞士与黄金接触适合低接触电阻和长期的耐久性一起使精密衰减器内只。

Strictly speaking, for a watch or movement to legally have the "Swiss Made" designation upon it, thewatch or movement does not have to be made or assembled completely in Switzerland  

严格地说为手表或运动合法拥有“瑞士制造”在它指定,手表或运动不必作出或组装在瑞士完全。

Swiss made stone have the right to import and export, and have a professional team engaged in foreign trade business, business development for international trade and lay a solid foundation  

瑞发石材具备自营进出口权,并有一支专业从事外贸业务的队伍,为企业发展国际贸易打下坚实的基础。

  swISS MADE的中文翻译_

  swISS MADE

  瑞士制造

  双语例句

  1

  This is a Swiss made watch

  这是一块瑞士产的手表。

  2

  The watch is Swiss made, and features anti-reflective, scratch and

shock-resistant sapphire crystal

  手表为瑞士制造,拥有防反光、防划痕和抗震的蓝宝石水晶表镜。

建议用旁氏的洗面奶。旁氏一共有10种类型。

1旁氏祛痘洗面奶

2旁氏深层透白洁面乳

3旁氏活性净肤洗面奶

4旁氏润肤洗面奶

5旁氏盈润滋养洗面奶

6旁氏水油平衡洗面奶

7旁氏粉润白皙洁面乳

8旁氏活性矿物颜泥系买牛奶

9旁氏海藻洗颜泥

10旁氏无暇透白洗面奶

11旁氏亮采净白洗面奶

12旁氏深层柔珠洗面奶

最推荐使用的是第一种、第三种、第六种。比较适合你的肤质。

旁氏的洗面奶一般20多元左右。

面膜的话用相宜本草深层清洁的比较好,去除黑头和控油。让皮肤干干净净。

20~30元左右。

BB霜的话,用谜尚的挺好的。因为韩国的BB霜比较有名气。价格在50~60之间。

去角质的产品,如果正常使用是不会伤害皮肤的,并且会让皮肤更好,但是切记不要频繁使用。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/2779205.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-12-29
下一篇2023-12-29

随机推荐

  • 如何自制简单的去斑的美白面膜

    鲜果美白祛斑面膜制作方法:柠檬、香蕉、苹果等新鲜水果,可单独使用也可一起使用,用榨汁机榨汁,然后加入新鲜鸡蛋清一个,搅拌成泥状,用刷子均匀的涂在脸上,也可以涂在脖子上,20分钟后用清水洗净。蔬菜美白祛斑面膜制作方法:去14根苦瓜,与青椒、

    2024-04-15
    1028900
  • 创意生日礼物网(创意生日礼物定制)

    今天小编辑给各位分享创意生日礼物网的知识,其中也会对创意生日礼物定制分析解答,如果能解决你想了解的问题,关注本站哦。有创意的生日礼物"最好的礼物并不一定要贵,而是贴心,至于怎么个贴心法,这个就要具体问题具体分析了。1个性惊喜型。可

    2024-04-15
    44400
  • 香奈儿香水辨别真假的方法

    1、不管是正版标准装还是正版小样,在香水瓶底大都有一张透名塑料纸,上有这款香水的品名,规格和产地的介绍(也有的是直接将产地刻印在瓶底)。假香水没有这张纸,也没有刻纹。这是第一个可以用来辩别真假香水的方法。2、正版香水的瓶底和外包装盒底都有统

    2024-04-15
    37700
  • 韩国护肤品十大排名品牌

    韩国十大品牌护肤品如下:1、whoo后在韩国十大护肤品品牌中,whoo荣登榜首,这个品牌将宫廷的美容秘笈与现代的东方医学相互结合,让广大的亚洲女性为之倾心。2、呼吸37度在韩国十大护肤品品牌中,起着重要的地位,它一直坚持自然美丽的概念,致力

    2024-04-15
    40100
  • 妮维雅美白身体乳需要避光吗

    需要。根据查询妮维雅官网得知,妮维雅身体乳中的成分会因为长时间暴露在阳光下而失去活性,影响保湿效果和质量,所以需要避光存储,正确存储方式是放在阴凉干燥处,避免阳光直射和高温环境。妮维雅(NIVEA)德国拜尔斯道夫公司所有的大型全球护肤品与身

    2024-04-15
    29400
  • 清莹露和神仙水的区别

    清莹露和神仙水的区别为价格区别、外观区别、功效区别、适用人群不同、效果区别。1、成分区别:神仙水是由半乳糖酵母的发酵物过滤液组成,除了丁二醇和其它润肤成份之外,没有其它有效成份。清莹露是用水做溶剂,加入了酵母、甘油、适量的乳化剂和酸类,水杨

    2024-04-15
    28700
  • 淫羊藿的功效与作用

    ……*羊藿酒 *羊藿300g,米酒2500ml。先将*羊藿洗净晒干,放入瓷瓶内,加酒,密封,一周后即可饮用。本酒内可补肾壮阳,外可祛风散湿。既可以作为补肾壮阳之品饮用,也可作为治疗风湿性关节疼痛的药酒饮用。每次30~5

    2024-04-15
    28800

发表评论

登录后才能评论
保存