首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文上手最新TensorFlow2.0系列(二)

另外TensorFlow的GPU版本仅支持Linux环境,不支持Windows和Mac环境,因此本节的安装部分仅针对Linux系统环境。...这里列出了默认路径下的所有目录和文件,我们可以打开自己存放代码的目录。...图13 在notebook文件中编写代码 3 TensorFlow2.0使用 3.1 “tf.data”API 除了GPU和TPU等硬件加速设备以外,一个高效的数据输入管道也可以很大程度的提升模型性能...Transform:数据的预处理(例如数据清洗、格式转换等)。 Load:将处理好的数据加载到计算设备(例如CPU、GPU以及TPU等)。...因为我们是想把该训练好的模型迁移到我们的花朵分类问题中来,所以代码我们设置该模型的参数不可训练和更新。 接下来我们打乱一下数据集,以及定义好训练过程中每个“batch”的大小。

2.2K31

为了加速在GPU上进行深度学习训练,NVIDIA原来还做了这么多事情,你都知道么?

TensorRT 5.0.2支持低精度数据类型,如16位浮点数或8位整数。 在相关的注释中,NVIDIA为分析器提供了对CUDA应用程序性能的强大洞察。...现有的默认PyTorch实现需要多次进出GPU设备内存的冗余通道。这些冗余传递会产生巨大的开销,特别是在以数据并行方式跨多个gpu扩展培训时。...例如,在DGX-1V、8 Tesla V100 gpu上训练SSD网络(带有ResNet-34骨干)时,使用cuDNN新的NHWC和融合批处理规范化支持,与使用NCHW数据布局运行且没有融合批处理规范化相比...即使在使用多个CPU内核进行此处理时,CPU也难以足够快地为gpu提供数据。这会导致GPU在等待CPU完成任务时出现空闲时间。将这些数据管道从CPU移动到GPU是非常有利的。...DALI是一个开放源码的、与框架无关的、用于GPU加速数据输入和扩充管道的库,它的开发就是为了解决这个问题,将工作从CPU迁移到GPU。 让我们以流行的单镜头探测器(SSD)模型为例。

2.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    独家 | 兼顾速度和存储效率的PyTorch性能优化(2022)

    在这之后,我对本博所提供的每个点都做了详细的研究,并为每个秘籍、技巧提供了代码片段,同时标注了该秘籍、技巧对应的设备类型(CPU/GPU)或模型。 内容清单 数据加载 1....1.将活跃数据移到SSD中 不同机器有不同的硬盘,如HHD和SSD。建议将项目中使用的活跃数据移到SSD(或具有更好i/o的硬盘驱动器)之中,以获得更快的速度。...#GPU #SaveTime 4.直接在程序运行的设备上将向量、矩阵、张量创建为 torch.Tensor 当PyTorch需要用到torch.Tensor数据的时候,首先应尝试在运行它们的设备上创建它们...如果源数据是具有相同数据类型和设备类型的张量,那么torch.as_tensor(others)可以在适用的情况下,会避免复制数据。...模型的性能除了与算法、数据和问题类型有关之外,混合精度也的确会降低模型的性能。 PyTorch很容易将混合精度与自动混合精度(AMP)包区别开来。PyTorch中的默认的浮点类型是32位浮点数。

    1.7K20

    优化PyTorch速度和内存效率的技巧汇总

    对于每个技巧,我还提供了代码片段和注释,告诉你它是特定于设备类型(CPU/GPU)还是模型类型。...设置pin_memory=True 可以为CPU主机上的数据直接分配临时内存,节省将数据从可分页内存转移到临时内存(即固定内存又称页面锁定内存)的时间。...直接在设备中创建张量 只要你需要torch.Tensor,首先尝试在要使用它们的设备上创建它们。不要使用原生Python或NumPy创建数据,然后将其转换为torch.Tensor。...如果源数据是一个具有相同数据类型和设备类型的张量,那么torch.as_tensor(others) 可以避免拷贝数据。...我之前确实发现混合精度可能会降低模型的精度,这取决于算法,数据和问题。 使用自动混合精度(AMP)很容易在PyTorch中利用混合精度。PyTorch中的默认浮点类型是float32。

    2.5K30

    文末福利|一文上手TensorFlow2.0(一)

    的安装(CPU和GPU) Tensorflow2.0 的使用 使用 GPU 加速 从现在开始我们就正式进入TensorFlow2.0的学习了,在这一系列文章里我们将重点介绍TensorFlow的基础知识和使用方法...通过设置运算操作的属性可以让运算操作支持不同的张量(tensor)元素类型,例如让向量加法操作运算只接受浮点类型的张量。...模型的参数是保存在变量中的,在模型的训练过程中,参数在不断地更新。变量的值可以修改,但是维度不可以变。) tf.constant(常量,常量定义时必须初始化值,且定义后其值和维度不可再改变。)...TensorFlow 1.x中有各种机制旨在帮助用户再次找到他们所创建的变量,而在2.0中则取消了所有这些机制,支持默认的机制:跟踪变量。当我们不再用到创建的某个变量时,该变量就会被自动回收。 4....TensorFlow支持CPU、GPU以及TPU等硬件加速器,我们可以将训练任务分配到单节点/多加速器以及多节点/多加速器。 5.

    1.3K31

    (译)Dart2.12版本发布,可靠的空安全,dart:ffi正式投入生产

    似乎很容易孤立地发现此错误,但实际上,即使是经过严格的代码审查过程(如Flutter主分支中所用的代码),这种代码也会无时无刻不在出现。出于安全考虑,静态分析会立即捕获此问题。...使用protobuf的代码中最经常出现此问题,其中可选字段在未设置时返回默认值,并且永远不会为null。如此一来,通过混淆默认值和空值,代码错误地检查了默认条件。...当命名参数被标记为required(在Flutter小部件API中经常发生)并且调用者忘记提供参数时,就会发生分析错误: 5.逐步迁移到无效安全性 因为可靠的安全性是对我们的打字系统的根本改变,所以如果我们坚持强制采用...15.Dart语言的下一步是什么? 声音无效安全性是我们几年来对Dart语言所做的最大改变。接下来,我们将考虑在我们强大的基础上对语言和平台进行更多的增量更改。...通用元数据注释(#1297):扩展元数据注释以也支持包含类型参数的注释。

    2.7K20

    业界 | 英伟达官方解读:Volta Tensor Core GPU实现AI性能新里程碑

    为了消除这些转置,我们采用的方法是直接用 NHWC 格式表示 ResNet-50 模型图中的每个张量,这是 MXNet 框架支持的功能。...使用 NNVM(神经网络虚拟机),在 MXNet 中实现这些类型的优化是很简单的。 ? 图 4:融合层能消除数据读/写 最后,我们通过为常出现的卷积类型创建额外的专用核来继续优化单个卷积。...图 5:用于图像解码和增强的数据流程 为了解决这一问题,我们开发了 DALI(数据增强库),这是一个不受限于具体框架的库,可以将 CPU 的工作负载迁移到 GPU 上执行。...如图 6 所示,DALI 将部分 JPEG 解码工作以及尺寸调整和所有其它增强工作移到了 GPU 上。这些操作在 GPU 上的执行速度比在 CPU 上快得多,因此减轻了 CPU 的工作负载。...此外,英伟达 GPU 能用于各种各样且越来越多的网络类型,其中包括 CNN、RNN、GAN、RL、混合网络架构以及每年新出现的数以千计的变体架构。

    71550

    动态 | TensorFlow 2.0 新特性来啦,部分模型、库和 API 已经可以使用

    由于 TensorFlow 支持一系列硬件加速器,如 CPU、GPU 和 TPU,因此您可以将训练工作量分配到单节点/多加速器以及多节点/多加速器配置,包括 TPU Pods。...无论是在服务器、边缘设备还是网络上,使用何种语言或平台,TensorFlow 都可以让您轻松地训练和部署模型。...TensorFlow 的 contrib 模块已经超出了在单个存储库中可以维护和支持的范围。较大的项目单独维护会更好,而较小的扩展将整合到核心 TensorFlow 代码。...兼容性和连续性 为了简化代码迁移到 TensorFlow 2.0 的过程,将有一个转换工具,它可以更新 TensorFlow 1.x Python 代码以使用与 TensorFlow 2.0 兼容的 API...我们对 TensorFlow2.0 和它即将带来的变化感到非常兴奋。TensorFlow 已经从一个用于深度学习的软件库成长为所有包括类型机器学习的整个生态系统。

    1.1K40

    教程 | TensorFlow 官方解读:如何在多系统和网络拓扑中构建高性能模型

    使用 NHWC 和 NCHW 建模 CNN 使用的绝大多数 Tensorflow 操作都支持 NHWC 和 NCHW 数据格式。...在 GPU 中,NCHW 更快;但是在 CPU 中,NHWC 只是偶尔更快。 构建一个支持日期格式的模型可增加其灵活性,能够在任何平台上良好运行。基准脚本是为了支持 NCHW 和 NHWC 而编写的。...NHWC 在 CPU 中有时速度更快。在 GPU 中可以使用 NCHW 对一个灵活的模型进行训练,在 CPU 中使用 NHWC 进行推理,并从训练中获得合适的权重参数。...分布式复制,将每个 GPU 中的训练参数副本与参数服务器上的主副本放置在一起,在变量数据可用时,正向计算和反向计算立即开始。...这个参数服务器方法同样可以应用在本地训练中,在这种情况下,它们不是在参数服务器之间传播变量的主副本,而是在 CPU 上或分布在可用的 GPU 上。

    1.7K110

    JAX 中文文档(十六)

    CPU 设备现在在分布式作业中接收全局唯一的 ID 号码;以前 CPU 设备将接收进程本地的 ID 号码。...目前仅在 Cloud TPU 上实现。 重新添加了对 CPU 设备上 Python 缓冲协议(memoryview)的支持。...对于 deepcopy,复制的数组位于与原始数组相同的设备上。对于 pickle,反序列化的数组将位于默认设备上。 在函数转换(即跟踪代码)内部,deepcopy 和 copy 以前是空操作。...Bug 修复: 对于 jaxlib 默认使用较旧的“stream_executor” CPU 运行时,以解决#7229,这导致 CPU 上由于并发问题输出错误结果。...jaxlib 0.1.68(2021 年 6 月 23 日) Bug 修复: 修复了 TFRT CPU 后端中将 TPU 缓冲区传输到 CPU 时出现 NaN 的错误。

    40810

    【AI系统】布局转换原理与算法

    数据布局转换目前已经越来越多地用于编译器的前端优化,将内部数据布局转换为后端设备友好的形式。...举个例子,比如 32 位系统从内存中以 4 字节为粒度进行读取,64 位系统从内存中以 8 字节为粒度进行读取,所以当在处理器上进行未对齐的地址访问时,处理器将读取多个字,还有些处理器平台不支持访问任意地址上的任意数据...CPU 总是以其字的大小进行内存读取,进行未对齐的内存访问时,处理器将读取多个字,需要读取变量所跨越内存的所有字,同时进行处理。将导致访问请求数据所需要的内存事务增加 2 倍。...如“Conv1x1”1x1 卷积操作:"NHWC"更适合多核 CPU 运算,CPU 的内存带宽相对较小,每个像素计算的时延较低,临时空间也很小,有时计算机采取异步的方式边读边算来减小访存时间,计算控制灵活且复杂...AI 框架排布常用的 AI 框架中默认使用 NCHW 的有 caffe、NCNN、PyTorch、mxnet 等,默认使用 NHWC 的有 TensorFlow、OpenCV 等,设置非默认排布格式只需要修改一些参数即可

    10810

    谷歌重磅发布TensorFlow 2.0正式版,高度集成Keras,大量性能改进

    通过几行代码,并利用 Volta 和图灵 GPU 上的混合精度,TensorFlow 2.0 的训练性能最高提升 3 倍。...tf.function 装饰器可用于将代码转化为图,从而可以实现远程执行、序列化和性能优化。....train.Optimizers; Estimator.export_savedmodel 已更名为 export_saved_model; 当保存模型时,Estimators 会自动去除默认的算子属性...要设置进程数量,可使用 tf.config.threading; tf.keras.model.save_model 和 model.save 是默认的模型保存 API,但 HDF5 依然支持; tf.keras.experimental.export_saved_model...CPU 版本为: pip install tensorflow GPU 版本为: pip install tensorflow-gpu 示例代码 因为使用 Keras 高级 API,TensorFlow2.0

    1.1K30

    Reddit热议:为什么PyTorch比TensorFlow更快?

    我所知道的惟一优化是 PyTorch 使用 NCHW 格式 (针对 cuDNN 进行了更好的优化),而 TensorFlow 默认使用 NHWC。...更新:看起来新的 Volta GPU 使用 NHWC 格式 (TensorFlow 的默认格式) 的性能更好:https://devblogs.nvidia.com/tensor-core-ai-performance...对 torch 函数的 Python 调用将在排队操作后返回,因此大多数 GPU 工作都不会占用 Python 代码。这将瓶颈从 Python 转移到了 CUDA,这就是为什么它们执行起来如此相似。...un_om_de_cal: 根据我将项目从 PyTorch 转移到 TF 的经验,虽然 PyTorch 的基本训练操作 (前向传播、反向传播、更新参数) 更快,但是一些不寻常的操作 (包括 argmax...我想到的另一点是,PyTorch 教程在 CPU 上做数据增强,而 TF 教程在 GPU 上做数据增强 (至少 1-2 年前我看到的教程是这样)。

    1.5K20

    Reddit热议:为什么PyTorch比TensorFlow更快?

    我所知道的惟一优化是 PyTorch 使用 NCHW 格式 (针对 cuDNN 进行了更好的优化),而 TensorFlow 默认使用 NHWC。...更新:看起来新的 Volta GPU 使用 NHWC 格式 (TensorFlow 的默认格式) 的性能更好:https://devblogs.nvidia.com/tensor-core-ai-performance...对 torch 函数的 Python 调用将在排队操作后返回,因此大多数 GPU 工作都不会占用 Python 代码。这将瓶颈从 Python 转移到了 CUDA,这就是为什么它们执行起来如此相似。...un_om_de_cal: 根据我将项目从 PyTorch 转移到 TF 的经验,虽然 PyTorch 的基本训练操作 (前向传播、反向传播、更新参数) 更快,但是一些不寻常的操作 (包括 argmax...我想到的另一点是,PyTorch 教程在 CPU 上做数据增强,而 TF 教程在 GPU 上做数据增强 (至少 1-2 年前我看到的教程是这样)。

    2.6K30

    行稳致远:腾讯自研DPU商用情况与技术演进

    腾讯自研DPU通过主动保护和被动保护两大措施,来最大限度减低软失效带来的负面影响: A.主动保护措施,芯片逻辑与业务软件联动,采用软硬件结合的方式支持业务端到端错误校验,达到系统级主动保护的目的。...B.被动保护措施,通过系统层面背景探测报文,检查芯片功能是否异常,出现异常时联动运维系统尽快备份云盘数据,迁移子机,保障SLA。 2....为了避免自研DPU卡出现共性问题后,不能热升级,导致所有自研DPU卡都有出问题的风险,需要支持从自研DPU卡虚机迁移到标卡机型虚机的能力。...B.为了能更多的将客户子机迁移到自研DPU卡上,加大灰度测试的压力,需要支持标卡到DPU卡母机的热迁移。 C.支持标卡和DPU卡之间的相互迁移,才能最大限度共享母机资源。...,把更多计算资源留给子机/容器;未来还需要支持RDMA、NVMe等设备,做到统一硬件底座。

    3.2K41

    JVM史上最全实践优化没有之一

    2)如果是其他操作系统上,机器配置有2GB以上的内存同时有2个以上CPU的话默认使用server模式,否则使用client模式。...(5)64位操作系统 1)只有server类型,不支持client类型。...其中参数有boolean类型和数字类型,值的操作符是=或:=,分别 代表默认值和被修改的值。...给内存一个快照并导出一个dump文件 用MAT进行文件分析 8 jstack的使用 有些时候我们需要查看下jvm中的线程执行情况,比如,发现服务器的CPU的负载突然增高了、出现了死锁、死循环等,我们...可以使用VisualVM工具进行JVM问题的排查 8.2.1 查看程序运行时类加载的过程 -verbose:class : 在输出设备上显示虚拟机运行信息 -verbose:gc :查看虚拟机中内存回收情况

    89010

    TensorFlow2.X学习笔记(1)--TensorFlow核心概念

    它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。...TensorFlow的主要优点: 灵活性:支持底层数值计算,C++自定义操作符 可移植性:从服务器到PC到手机,从CPU到GPU到TPU 分布式计算:分布式并行计算,可指定操作符对应计算设备 1、张量数据结构...在TensorFlow2.0时代,采用的是动态计算图,即每使用一个算子后,该算子会被动态加入到隐含的默认计算图中立即执行得到结果,而无需开启Session。...而静态计算图构建完成之后几乎全部在TensorFlow内核上使用C++代码执行,效率更高。此外静态图会对计算步骤进行一定的优化,剪去和结果无关的计算步骤。...如果需要在TensorFlow2.0中使用静态图,可以使用@tf.function装饰器将普通Python函数转换成对应的TensorFlow计算图构建代码。

    92510

    行稳致远:腾讯自研DPU商用情况与技术演进

    腾讯自研DPU通过主动保护和被动保护两大措施,来最大限度减低软失效带来的负面影响: A.主动保护措施,芯片逻辑与业务软件联动,采用软硬件结合的方式支持业务端到端错误校验,达到系统级主动保护的目的。...B.被动保护措施,通过系统层面背景探测报文,检查芯片功能是否异常,出现异常时联动运维系统尽快备份云盘数据,迁移子机,保障SLA。 2....为了避免自研DPU卡出现共性问题后,不能热升级,导致所有自研DPU卡都有出问题的风险,需要支持从自研DPU卡虚机迁移到标卡机型虚机的能力; B.为了能更多的将客户子机迁移到自研DPU卡上,加大灰度测试的压力...IO工作下沉到智能网卡上,把更多计算资源留给子机/容器;未来还需要支持RDMA、NVMe等设备,做到统一硬件底座。...为了支持不同子机网卡设备的混部和迁移,就需要硬件支持可编程能力,包括控制面的Smart Endpoint和数据面的Smart DMA;当前腾讯自研DPU主机网络/存储下沉到智能网卡,获得了硬件的高性能,

    2.7K10

    一行代码让训练速度提升2倍,飞桨自动混合精度技术详解

    飞桨 AMP 技术仅仅通过一行代码即可帮助用户简便快速的将单精度训练的模型修改为自动混合精度训练。...为了简化说明,这里省略了迭代训练的相关代码,仅体现损失函数及优化器定义相关的内容。...用户仅需要使用飞桨提供的 AMP 函数 fluid.contrib.mixed_precision.decorate 将原来的优化器 SGDOptimizer 进行封装,然后使用封装后的优化器(mp_sgd...fluid.contrib.mixed_precision.decorate 函数携带了自动调整 Loss Scaling 功能相关的参数,这些参数都带有默认值,如下面代码所示。...如图 2 所示,在优化之前的参数梯度更新过程中,梯度计算时虽然使用的是半精度数据类型,但是不同 GPU 卡之间的梯度传输数据类型仍为单精度。 ?

    66130
    领券