温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

未探索的TensorFlow库都有哪些

发布时间:2021-12-23 16:12:26 来源:亿速云 阅读:207 作者:柒染 栏目:大数据

这篇文章给大家介绍未探索的TensorFlow库都有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

TensorFlow是一个端到端的开源机器学习平台,能够执行一系列任务。它为初学者和研究人员提供了一个易用性,可以用于不同的应用,如,但不限于,计算机视觉,自然语言处理和强化学习。

在计算机视觉领域,我们大多数人都熟悉TensorFlow的核心以及TensorFlow Lite和JS。它们用于在移动设备和边缘设备上运行模型,为后者在web上运行模型。然而,TensorFlow还提供了更多神秘的库,我们将在文中对此进行解释。


TensorFlow模型优化工具包

实时模型对于许多商业操作是必不可少的。MobileNet的推理速度使它成为了众人瞩目的焦点,即使这意味着要牺牲一点准确性。

优化TensorFlow模型首先想到的是将其转换为TensorFlow lite服务。但是,这在桌面上不太好用,因为它是为ARM neon优化的。这篇问题对此进行了解释(https://github.com/tensorflow/tensorflow/issues/35380),否则我们需要进一步优化模型。模型优化工具箱可以帮助我们完成这些任务。根据其主页,它可以用于:

减少云和边缘设备(如移动设备、物联网)的延迟和推理成本。

将模型部署到边缘设备,并限制处理、内存、功耗、网络使用和模型存储空间。

支持对现有硬件或新的专用加速器执行和优化。

它可以应用于已经训练过的模型,也可以在训练期间用于进一步优化解决方案。在编写本文时,它提供了三种技术,以及其他一些正在进行的改进模型的技术。

修剪

第一种方法是权重剪枝。它的工作原理是删除层之间的一些连接,从而减少所涉及的参数和操作的数量,从而优化模型。在训练过程中消除了不必要的张量。这有助于缩小模型的大小,通过训练后量化可以进一步减小模型的大小。

与只在训练期间进行的修剪不同,量化可以在训练和测试中进行。Tensorflow Lite模型也被量化为使用8位整数,而不是通常使用的32位浮点。这提高了性能和效率,因为整数运算比浮点运算快得多。

然而,这是有代价的。量化是一种有损技术。这意味着先前从-3e38到3e38表示的信息必须从-127表示到127。这回引入更多错误。为了解决这个问题,可以在训练期间应用量化。

量化训练

通过在训练中应用量化,我们迫使模型学习它将导致的差异并相应地采取行动。量化误差作为噪声引入,优化器试图将其最小化。用这种方法训练的模型具有与浮点模型相当的精度。很有意思的是,我们可以比较一下用这种方法创建的Tensorflow-Lite模型与普通模型。

训练后量化

虽然最好在训练期间应用量化,但有时这样做是不可行的,因为我们可能有预训练好的权重可供使用。

权重聚类

它将相似的权重组合起来,并用一个值替换它们。它可以想象成JPEG压缩。此外,由于相似的权重被插值到相同的数目,它也是有损的。

权重矩阵原本存储浮点值。这些值被转换成整数,整数代表簇号。我们再存储包含簇的查找表以便查询。这减少了所需的空间,因为整数需要更少的存储空间。

如下面的示例所示,16个float-32值被指定给4个float-32质心,层权重被转换为整数值。权重矩阵越大,节省的空间就越大。

未探索的TensorFlow库都有哪些

TensorFlow Graphics

TensorFlow graphics旨在将计算机视觉和计算机图形学结合起来,解决复杂的三维任务。

计算机图形工作流需要三维对象及其在场景中的绝对位置、对它们由灯光构成的材质的描述以及生成合成渲染的摄影机。另一方面,计算机视觉工作流将从图像开始,并尝试推导其参数。

这可以看作是一个自编码器,视觉系统(编码器)将尝试查找参数,而图形系统(解码器)将基于这些参数生成图像,并与原始图像进行比较。此外,该系统不需要标记数据,也不需要以自我监督的方式训练。一些用途是:

  1. 变换-可以对对象执行旋转和平移等对象变换。这可以通过神经网络学习来精确地找到物体的位置。它对于需要精确估计这些物体位置的机械手臂很有用。

  2. 建模摄像机-可以设置不同的摄像机内部参数来改变图像的感知方式。例如,更改摄影机的焦距会更改对象的大小。

  3. 材料-可以使用具有不同类型光反射能力的不同类型的材料。因此,创建的场景可以精确地模拟对象在真实世界中的行为。

  4. 三维卷积和池(点云和网格)-它有三维卷积和池层,允许我们对三维数据进行语义分类和分割。

  5. TensorBoard 3D-3D数据变得越来越普遍,可以用来解决从2D数据进行三维重建、点云分割、3D对象变形等问题。通过TensorBoard 3D,这些结果可以可视化,从而更好地了解模型。

进一步阅读:https://blog.tensorflow.org/2019/05/introducing-tensorflow-graphics_9.html

TensorFlow Federated

这个库也可以用于计算机视觉以外的其他领域。随着移动设备和边缘设备数量的增加,产生了大量的数据。

联邦学习的目标是在分散数据上执行机器学习,即在设备本身上!这意味着不需要向服务器上传大量(敏感)数据。它已经在谷歌键盘上使用。

TensorFlow Privacy

通过隐私攻击可以从经过训练的ML模型中提取敏感信息。

未探索的TensorFlow库都有哪些

左侧是仅使用人名和模型重建的图像。右边的图像是原始图像。

同样,像TensorFlow Federated一样,这并不是计算机视觉所独有的。最常用的技术是差分隐私。

差分隐私一种公开共享数据集信息的系统,通过描述数据集中组的模式,同时保留数据集中个人的信息。

假设敏感信息不会在数据集中完全重复,通过使用差分隐私模型,可以确保模型不会学习此类信息。

例如,假设有一个人与人之间聊天的数据集。现在,聊天中传递的敏感信息可以是密码、银行帐户详细信息等。因此,如果在这个数据集上创建了一个模型,则差分隐私将确保该模型无法学习这些细节,因为这些信息的数量很少。阅读这篇关于差分隐私的文章,它还包含了执行它的代码。

TensorFlow Hub

你们中的大多数人一定对这个库有所了解,所以我对它的介绍将非常简短。

TensorFlow Hub是一个在TensorFlow中发布、发现和重用部分机器学习模块的平台。把它称为TensorFlow模型的GitHub是正确的。

开发人员可以共享他们预训练过的模型,然后可以被其他人重用。通过重用,开发人员可以使用较小的数据集训练模型,提高泛化能力,或者只是加快训练速度。让我们快速了解一下现有的几种不同的计算机视觉模型。

  • 图像分类——从MobileNet到Inception 再到EfficientNet,有一百多个可用于此任务的模型。说出你想要的任何型号,很可能会在那里找到它。

  • 对象检测和分割-同样,你需要的任何模型都可以在这里找到,特别是在COCO数据集上训练的TensorFlow model-zoo对象检测器的集合中。Deeplab架构在图像分割领域占据主导地位。还有大量的TfLite和TensorFlow Js模型可用。

  • 图像样式化-图像样式化的不同的主干,以及一个卡通感兴趣。

  • **生成对抗网络-**提供了像Big GAN和Compare GAN这样的GAN模型,在ImageNet和Celeb数据集上进行训练。还有一个无边界的GAN,可以用来生成摄像机捕捉到的场景之外的区域。此外,他们中的大多数有一个Colab Notebook,所以实现他们不会太难。

关于未探索的TensorFlow库都有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI