0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于医疗图像的深度学习开源框架

科技绿洲 来源:NVIDIA英伟达 作者:NVIDIA英伟达 2022-04-07 10:27 次阅读

一个完整的医疗影像推理流程一般包含数据的前处理、AI 推理以及数据后处理这几部分。通常情况下,我们可以通过 TensorRT, TensorFlow 或者 PyTorch 这些框架来实现 GPU 加速的 AI 推理部分,然而数据前后处理部分往往是放在 CPU 上执行的。对于一些比较大的数据,比如 CT 或者 MR 这种 3D 图像,CPU 上的数据前后处理会成为整个推理流程的瓶颈,导致推理的时延变长,GPU 使用效率不高。医疗影像推理的另一个需要考虑的问题是如何实现高效的部署。我们往往需要部署多个医疗影像 AI 应用,那么如何去调度多个模型,如何并发处理多个请求,并充分利用 GPU 资源成为挑战。

什么是 MONAI

MONAI 是一个专门针对医疗图像的深度学习开源框架。MONAI 致力于:

发展一个学术界、工业界和临床研究人员共同合作的社区;

为医疗图像创建最先进的端到端工作流;

为研究人员提供创建和评估深度学习模型的优化和标准化的方法。

MONAI 中包含一系列的 transforms 对医疗图像数据进行前后处理。在 MONAI 0.7 中,我们在 transforms 中引入基于 PyTorch Tensor 的计算,许多 transforms 既支持 NumPy array,也支持 PyTorch Tensor 作为输入类型和计算后端。当以 PyTorch Tensor 作为输入数据时,我们可以使用 GPU 来加速数据前后处理的计算。

什么是 NVIDIA Triton 推理服务器

Triton 推理服务器是一个开源的 AI 模型部署软件,可以简化深度学习推理的大规模部署。它能够对多种框架(TensorFlow、TensorRT、PyTorch、ONNX Runtime 或自定义框架),在任何基于 GPU 或 CPU 的环境上(云、数据中心、边缘)大规模部署经过训练的 AI 模型。Triton 可提供高吞吐量推理,以实现 GPU 使用率的最大化。

在较新的版本中,Triton 增加了 Python backend 这一新特性,Python backend 的目标是让使用者可以更加容易的部署 Python 写的模型,无需再去编写任何 C++ 代码。在一些场景下,我们的推理流程中可能会出现循环、条件判断、依赖于运行时数据的控制流和其他自定义逻辑与模型混合执行。使用 Triton Python backend,开发人员可以更加容易地在自己的推理流程中实现这些控制流,并且在 Python 模型中调用 Triton 部署的其他模型。

使用 MONAI 和 Triton 高效搭建和部署 GPU 加速的医疗影像推理流程

在本文介绍的例子中,我们将使用 MONAI 中 GPU 加速的数据处理以及 Triton 的 Python backend 来构建一个 GPU 加速的医疗影像推理流程。通过这个例子,读者可以了解到,在 GPU 上进行数据处理所带来的性能增益,以及如何使用 Triton 进行高效的推理部署。

整个推理流程如下图所示,包含数据预处理,AI 模型推理,和数据后处理三部分。

poYBAGJOS2uATpffAABiV1WiS1c316.png

通过 EnsureType 这个 transform,我们将输入数据转换成 PyTorch Tensor 并放到 GPU 上,这样之后的数据预处理操作都会在 GPU 上进行。我们使用 Triton 的 Torch backend 来作为 3DUnet 的推理后端,输出的结果为 GPU 上的 Torch Tensor,并作为后处理模块的输入,在 GPU 上进行后处理计算。

使用 Triton 的 Python backend,我们可以非常容易的将整个流程串联起来,即:按照 Triton Python backend 要求的模型结构构建前后处理的 Python 代码,并在其中调用 3DUnet 的推理。以下是我们例子中的代码片段。

poYBAGJOS5eAMny-AABypJrUjdg017.png

pYYBAGJOS7qAN2UEAACfh8SRwIw492.png

poYBAGJOS9mAaaQjAABme3OM1uo123.png

以 MSD Spleen 3D 数据作为输入,经过整个推理流程,将得到分割后的脾脏区域以及其轮廓。

poYBAGJOTACAWpo0AABesPaaKaw293.png

性能测试

我们在 RTX 8000 上对整个推理流程进行了性能测试,以了解 Triton 及 MONAI 不同特性对性能的影响。

HTTP vs. gRPC vs. shared memory

目前 Triton 支持 HTTP, gRPC 和共享内存等方式进行数据通信。由于三维医学图像通常很大,通信带来的开销不容忽视。对于许多常见的医学图像人工智能应用,客户端与服务器位于同一台机器上,因此使用共享内存是减少发送/接收开销的一种可行方法。在测试中,我们比较了客户端和服务器之间使用不同通信方式对性能的影响。所有过程(前/后处理和AI推理)都在 GPU 上。我们可以得出结论,当数据传输量很大时,使用共享内存将大大减少延迟。

poYBAGJOTAmAS6zJAAB09pI1hSM743.png

Pre/Post-processing on GPU vs. CPU

接着我们测试了分别在 GPU 和 CPU 进行前后数据处理时,整个推理流程的速度。可以看到,当使用 GPU 进行数据处理时,可以实现 12 倍的加速。

pYYBAGJOTBCAJyScAABpLNl58GM805.png

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8111

    浏览量

    82485
  • 医疗
    +关注

    关注

    8

    文章

    1726

    浏览量

    58136
  • 数据通信
    +关注

    关注

    2

    文章

    395

    浏览量

    33511
  • 人工智能
    +关注

    关注

    1776

    文章

    43818

    浏览量

    230574
收藏 人收藏

    评论

    相关推荐

    Nanopi深度学习之路(1)深度学习框架分析

    就能实现!还请关注我后面的日记。实际上我也是刚刚有时间学习深度学习,我是个纯初学者,但面对深度学习里的各种复杂理论和公式推导,自己实现个小功
    发表于 06-04 22:32

    开源深度学习框架对比研究的三个主要维度学习

    本节对5个开源深度学习框架进行对比研究,主要侧重于3个维度研究:硬件支持率、速度和准确率、社区活跃性。他们分别是:TensorFlow、Caffe、Keras、Torch、DL4j 。
    发表于 11-15 12:04 3938次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>框架</b>对比研究的三个主要维度<b class='flag-5'>学习</b>

    通过对比深度学习各大框架的优缺点寻找最优

    开源深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力。那么如何决定哪个
    发表于 11-15 19:04 2.2w次阅读
    通过对比<b class='flag-5'>深度</b><b class='flag-5'>学习</b>各大<b class='flag-5'>框架</b>的优缺点寻找最优

    深度学习发展的5个主力框架

    在这篇文章中,我想向大家介绍推动深度学习发展的5个主力框架。这些框架使数据科学家和工程师更容易为复杂问题构建深度
    发表于 05-04 10:30 3814次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>发展的5个主力<b class='flag-5'>框架</b>

    小米自研开源移动端深度学习框架MACE

    MACE,是指小米公司自研的移动端深度学习框架Mobile AI Compute Engine。2017年12月,这一深度学习
    的头像 发表于 07-26 14:06 3529次阅读

    你最看好哪个深度学习框架呢?

    开源深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力。
    的头像 发表于 09-21 17:02 6402次阅读

    深度学习框架你了解多少

    开源深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力。
    发表于 07-08 10:31 2083次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>框架</b>你了解多少

    旷视深度学习框架旷视天元宣布开源

    3月25日下午,旷视科技举办线上发布会,宣布开源新一代AI生产力平台Brain++的核心深度学习框架旷视天元(MegEngine)。
    的头像 发表于 03-25 16:56 2250次阅读

    旷视科技正式宣布开源新一代核心深度学习框架旷视天元 国产深度学习框架开源势在必行

    3月25日下午,中国人工智能领军企业旷视科技举办线上发布会,正式宣布开源新一代AI生产力平台Brain++的核心深度学习框架旷视天元(MegEngine),成为全球首个将底层
    发表于 03-26 11:50 3674次阅读

    深度学习框架大PK

    近年来,开发者社区中,「开源」成了新流行趋势。 尤其是深度学习框架,自腾讯2017年将ncnn开源之后,各大AI实验室都「慷慨」的将自
    发表于 07-10 18:37 1164次阅读

    天才黑客George Hotz开源了一个小型深度学习框架tinygrad

    最近,天才黑客 George Hotz 开源了一个小型深度学习框架 tinygrad,兼具 PyTorch 和 micrograd 的功能。tinygrad 的代码数量不到 1000
    的头像 发表于 12-16 09:36 3922次阅读

    PyTorch开源深度学习框架简介

    PyTorch 是一种开源深度学习框架,以出色的灵活性和易用性著称。这在一定程度上是因为与机器学习开发者和数据科学家所青睐的热门 Pytho
    的头像 发表于 07-29 10:26 3711次阅读

    深度学习中的图像分割

    深度学习可以学习视觉输入的模式,以预测组成图像的对象类。用于图像处理的主要深度
    的头像 发表于 05-05 11:35 831次阅读

    深度学习框架pytorch入门与实践

    的。PyTorch是一个开源深度学习框架,在深度学习领域得到了广泛应用。本文将介绍PyTorc
    的头像 发表于 08-17 16:03 1194次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度
    的头像 发表于 08-17 16:03 1748次阅读