Mesh-TensorFlow:超大规模模型训练的突破性框架

Google技术帝国深度解析:从基础设施到AI生态的开发者指南 在当今云计算和人工智能时代,技术基础设施已成为支撑数字世界的核心骨架。其原理在于通过分布式系统、容器化和微服务架构,构建高可用、可扩展的计算平台。这一技术价值不仅体现在提升资源利用效率,更在于为上层应用创新提供坚实基础。从应用场景看,无论是企业数字化转型、大规模机器学习训练,还是全球化在线服务部署,都离不开强大的技术基础设施支撑。以Google为例,其通过自研TPU芯片、Kubernetes容器编排系统和全球数据中心网络,构建了深厚的技术护城河。这些基础设施与开源生态紧密结合,形成了包括Go语言、gRPC框 阅读详情

想象一下,你正在训练一个庞大的深度学习模型,参数达到数十亿级别,而单个GPU或TPU的内存完全不够用。或者你手头有一个超高分辨率的3D医学图像需要分析,但常规方法根本无法处理这么大的数据。这时候,Mesh-TensorFlow就成了你的救星!!!

在当今AI飞速发展的时代,模型规模越来越大,数据维度越来越高,传统的分布式训练方法面临严峻挑战。谷歌大脑团队开发的Mesh-TensorFlow框架应运而生,它彻底改变了我们处理超大规模深度学习模型的方式。本文将深入浅出地介绍这个强大框架的核心概念、工作原理和实际应用,帮助你掌握这一前沿技术!

为什么需要Mesh-TensorFlow?

在深入技术细节之前,让我们先理解为什么常规的分布式训练方法不足以应对当今的挑战:

传统数据并行的局限性

目前主流的分布式训练策略是"数据并行"(data-parallelism),也称为"批次切分"(batch-splitting)。这种方法简单直观:将训练数据分成几个批次,分发到不同设备上并行计算,然后汇总梯度。

但这种方法存在三大痛点:

  1. 内存瓶颈:模型参数必须完整地存储在每个设备上,这意味着无法训练参数量超过单个设备内存的超大模型(比如50亿参数的语言模型)
  2. 高延迟:随着批次增大,处理时间线性增长
  3. 小批量低效:在小批量场景下效率低下

模型并行的挑战

“模型并行”(model-parallelism)策略能解决上述问题,但实现起来复杂得多。尤其在大规模集群上,寻找、描述和实现高效的模型并行算法非常困难。

而Mesh-TensorFlow的出现,让模型并行变得前所未有的简单!

Mesh-TensorFlow核心概念

Mesh-TensorFlow本质上是一种描述分布式张量计算的语言,建立在TensorFlow之上。它的独特之处在于引入了几个关键概念:

1. 处理器网格(Mesh)

"网格"是处理器(GPU/TPU)的n维数组,每个维度都有名称。例如,可以将256个TPU核心组织成16行×16列的二维网格:

# 创建一个16x16的处理器网格
mesh_shape = [("row", 16), ("col", 16)]

2. 命名维度(Named Dimensions)

Mesh-TensorFlow中的每个张量都有"形状"(Shape),这是一个由不同"维度"组成的元组。而每个"维度"是一个(名称,大小)对。

比如,一批图像的张量形状可能是:

[("batch", 100), ("rows", 28), ("cols", 28), ("channels", 3)]

这种命名维度的设计看似简单,却是框架灵活性的关键!

3. 张量布局(Layout)

张量"布局"定义了如何将张量的维度映射到网格的维度上。简单说,就是指定张量的哪些维度要在网格的哪些维度上拆分。

例如,可以这样定义布局规则:

layout_rules = [("batch", "row"), ("hidden", "col")]

这表示张量的"batch"维度将在网格的"row"维度上拆分,"hidden"维度在"col"维度上拆分。

工作原理:远超数据并行的灵活性

Mesh-TensorFlow的核心思想可以概括为:将任意张量维度映射到任意网格维度。

数据并行只是沿"批次"维度拆分张量和操作,而Mesh-TensorFlow允许用户指定任何张量维度在多维处理器网格的任何维度上拆分。这种灵活性带来了巨大优势:

  1. 可训练超大模型:参数可以分布在多个设备上,突破单设备内存限制
  2. 处理超大输入:可以处理单个设备无法容纳的大型3D图像等数据
  3. 混合并行策略:可以轻松结合数据并行和模型并行的优势

一个Mesh-TensorFlow图会编译成SPMD(Single Program Multiple Data,单程序多数据)程序,由并行操作和集体通信原语(如Allreduce)组合而成。

实际应用案例

Mesh-TensorFlow已在多个重要领域展示出强大实力:

1. 大规模语言模型训练

谷歌研究团队使用Mesh-TensorFlow实现了Transformer序列到序列模型的高效数据并行+模型并行版本。在多达512个TPU核心组成的网格上,他们训练了参数量高达50亿的Transformer模型,在WMT’14英法翻译任务和10亿词语言建模基准测试中超越了当时的最高水平。

这种规模的模型在单个设备上根本无法训练,充分展示了Mesh-TensorFlow的威力。

2. 超高分辨率医学图像分析

另一个引人注目的应用是3D医学图像分析。研究人员使用Mesh-TensorFlow实现了一种创新的"halo交换"算法,可以处理跨空间分区的卷积操作,保持相邻分区之间的关系。

这使得他们能够在超高分辨率图像(每个维度512像素的3D图像)上训练3D U-Net模型,采用256路模型并行。这类图像的像素总量约为1.3亿,远超传统方法能处理的范围。

3. 计算机视觉与3D渲染

Mesh-TensorFlow还可以与TensorFlow Graphics结合,用于处理3D网格和点云数据。这为计算机视觉研究提供了强大工具,特别是在需要处理大规模3D数据的应用中。

实现细节:与传统TensorFlow的区别

Mesh-TensorFlow语言与TensorFlow非常相似,保留了图、张量、操作和自动梯度计算等熟悉概念。主要区别在于:

  1. 每个张量分配给一个网格,而不是设备
  2. 每个张量有静态形状,由不同的命名维度组成
  3. 张量在其网格上布局,每个处理器上有一个切片
  4. 张量"布局"定义了如何在网格上拆分张量维度

这种设计使得用户可以用简洁的代码表达复杂的分布式计算策略。

集体通信的奥秘

某些Mesh-TensorFlow操作会触发网络通信。例如,einsum(广义矩阵乘法)的计算方式是:

  1. 在每个处理器上,计算该处理器上本地的两个操作数切片的einsum
  2. 如果没有拆分被约简的维度,那么就完成了
  3. 如果被约简的维度被拆分,则对结果切片执行"allreduce"操作—在被约简维度所拆分的任何网格维度上求和

这种精心设计的通信机制确保了计算结果的正确性和高效性。

代码示例:一窥究竟

以下是一个简单的MNIST图像分类模型在Mesh-TensorFlow中的实现:

# 第一部分:数学运算描述
def mnist_model(image, mesh):
    # 定义命名维度
    batch_dim = mtf.Dimension("batch", 100)
    row_dim = mtf.Dimension("row", 28)
    col_dim = mtf.Dimension("col", 28)
    channel_dim = mtf.Dimension("channel", 1)
    hidden_dim = mtf.Dimension("hidden", 1024)
    class_dim = mtf.Dimension("class", 10)

    # 重塑输入图像
    x = mtf.reshape(image, [batch_dim, row_dim, col_dim, channel_dim])
    
    # 第一层:全连接+ReLU
    w1 = mtf.get_variable(mesh, "w1", [row_dim, col_dim, channel_dim, hidden_dim])
    b1 = mtf.get_variable(mesh, "b1", [hidden_dim])
    h1 = mtf.relu(mtf.einsum(x, w1, output_shape=[batch_dim, hidden_dim]) + b1)
    
    # 第二层:全连接
    w2 = mtf.get_variable(mesh, "w2", [hidden_dim, class_dim])
    b2 = mtf.get_variable(mesh, "b2", [class_dim])
    logits = mtf.einsum(h1, w2, output_shape=[batch_dim, class_dim]) + b2
    
    return logits

# 第二部分:设备和张量/计算布局
mesh_shape = [("processor_rows", 2), ("processor_cols", 2)]
layout_rules = [("batch", "processor_rows"), ("hidden", "processor_cols")]

在这个例子中,我们创建了一个2×2的处理器网格,并定义了批次维度在行上拆分,隐藏层维度在列上拆分的布局规则。这实现了混合并行:数据并行+模型并行!

安装与使用

安装Mesh-TensorFlow非常简单:

# 使用pip安装
pip install mesh-tensorflow

# 注意:这不会自动安装或更新TensorFlow
# 建议安装TensorFlow:
pip install tensorflow  # CPU版本
# 或
pip install tensorflow-gpu  # GPU版本

如果你正在使用Mesh-TensorFlow的开发版本,可能需要使用TensorFlow的夜间版本(tf-nightly)。

未来发展与挑战

Mesh-TensorFlow代表了分布式深度学习的重要发展方向,但仍有一些挑战和改进空间:

  1. 自动布局选择:目前用户需要手动指定布局规则,未来可能实现自动选择最优布局
  2. 更广泛的硬件支持:虽然支持TPU和GPU/CPU,但TPU实现更为成熟
  3. 更多模型支持:扩展到更多类型的深度学习模型

总结

Mesh-TensorFlow是一个革命性的框架,它通过引入灵活的张量维度拆分和网格映射概念,彻底改变了分布式深度学习的实现方式。它不仅使超大规模模型训练成为可能,还提供了简洁直观的接口,大大降低了实现复杂分布式策略的门槛。

对于需要训练大规模模型或处理超大输入数据的研究人员和工程师来说,Mesh-TensorFlow无疑是一个强大的武器。随着AI模型规模不断增长和应用场景日益复杂,这类分布式框架的重要性将持续提升。

无论你是深度学习研究者还是实践者,了解Mesh-TensorFlow的原理和应用都会为你打开新的可能性视野!未来的AI突破很可能建立在这类能够扩展到超大规模的框架之上。

如果你对超大规模模型训练或复杂的分布式策略感兴趣,不妨亲自尝试Mesh-TensorFlow,探索其强大功能!(开源地址:https://github.com/tensorflow/mesh)


参考资料:

  • Shazeer, N., Cheng, Y., Parmar, N., et al. (2018). Mesh-TensorFlow: Deep Learning for Supercomputers. In Neural Information Processing Systems.
  • Google Research Blog (2020). Ultra-High Resolution Image Analysis with Mesh-TensorFlow.
  • TensorFlow官方GitHub: https://github.com/tensorflow/mesh
【企业管理】【管理科学】企业全岗位综合运营与组织知识矩阵体系01 岗位类别核心职责工作内容(详细)协作模式协商焦点博弈策略信任建立机制序列化工作流程关键绩效指标研发类​技术创新与产品开发1.需求分析:R=f(U,M,T) 2.概念设计:C=D(S,B) 3.原型开发 4.测试验证 5.文档编写敏捷团队、跨功能协作技术方案、资源分配、优先级纳什均衡:ui​(si​,s−i​)≥ui​(si′​,s−i​)代码审查、技术分享、结果透明瀑布模型/敏捷迭代1.专利数量P 2.技术就绪度TRL 3.缺陷密度D<0.1/KLOC其中:U=用户需求, 阅读详情

相关推荐

Python-MeshTensorFlow是一种用于分布式深度学习的语言能够指定一大类分布式张量计算

Mesh TensorFlow的目的是为您的硬件/处理器上的计算图形化和实现分发策略。 例如:“将批处理拆分为多行处理器,并将处理列中的单元拆分为隐藏层。” Mesh TensorFlow实现为TensorFlow上的一个层。

Docker-tutorial安全防护:容器安全最佳实践与漏洞防范

Docker容器技术已成为现代应用部署的主流方式,但安全问题也随之而来。本文将介绍Docker容器安全的核心防护策略,帮助新手用户从基础开始构建安全的容器环境,有效防范常见漏洞与风险。 ## 选择安全基础镜像:从源头降低风险 容器安全的第一道防线是选择安全的基础镜像。在项目的Dockerfile中,我们可以看到两种基础镜像的使用方式: ``` FROM python:3.8.12 ``` `

gitblog_00044的博客 815

【OTDR曲线工具箱】04 批量生成sor文件

软件下载地址:http://120.78.150.214:9999/isora.zip 通过一个测试数据sor文件,批量生成多个测试文件(基于Bellcore GR196及SR-4731标准)。主要考虑哪些问题: 1、sor测试是否符合要求(主要是衰减系数) 2、多个文件的创建时间 3、文件必须随机处理,不要看省去一模一样。 来说说怎么操作的 第一步:选择参考曲线 参考曲线的选择由两种方法:从文件中导入、从曲线库中选择。 其中曲线库分为公共库和个人库两种,平时浏览的sor文件都可以加载到库中。 第二步

夜晚是传说的博客 5273

TensorFlow Mesh(TF Mesh)技术总结学习

TensorFlow Mesh(TF Mesh)是 TensorFlow 的一个扩展库,专门用于大规模分布式训练。它旨在简化和优化模型并行训练,特别是用于训练超大规模的深度学习模型。TF Mesh 提供了一种灵活的编程接口,帮助研究人员和工程师高效地在多设备、多节点集群上进行并行计算。概述是 TensorFlow 的一个扩展库,用于大规模分布式训练。专注于模型并行,特别是处理超大规模的深度学习模型。提供灵活的编程接口和优化工具,简化并行计算的实现。

weixin_40426261的博客 682

基于FaceX-Zoo实现的Face Mask Adding人脸戴口罩

人脸系列文章目录 文章目录人脸系列文章目录前言一、加口罩效果二、实现原理二、代码实现 前言 目前人脸加口罩均为在人脸位置贴图式的,非常不真实。前段时间京东开源一个基于PRnet实现的3D口罩拟合人脸,加口罩非常逼真,但是只是单独一个加口罩demo,没有完整的流程。于是本人结合人脸检测,关键点对齐。PRnet加口罩实现一个完整的加口罩流程。只需一个命令简单方便调用,实现人脸加口罩。 https://github.com/JDAI-CV/FaceX-Zoo 一、加口罩效果 下图可以看出效果还是非常逼真的

zengwb的博客 3390

用OpenIPC复活你的旧摄像头:手把手教你给君正T31芯片设备刷开源固件

本文详细介绍了如何使用OpenIPC项目为君正T31芯片的旧摄像头刷入开源固件,解锁更多功能并延长设备寿命。从硬件识别、风险控制到详细刷机步骤和后期配置,手把手教你将闲置摄像头改造为智能监控设备,实现隐私可控、功能扩展等优势。

weixin_30790841的博客 769

DKChainableAnimationKit与Core Animation对比:为什么选择DSL动画框架

DKChainableAnimationKit是一款专为iOS Swift开发打造的链式动画DSL框架,它通过直观的语法设计让复杂动画实现变得简单高效。相比系统原生的Core Animation,这款框架能显著降低动画开发门槛,提升代码可读性和维护性,是iOS开发者实现精美动画效果的理想选择。 ## 📌 核心优势对比:DSL vs 原生API ### 1. 代码量对比:链式调用 vs 冗长配

gitblog_00890的博客 559

AutoDock Vina实战:从零开始完成分子对接(附7VU6案例详解)

本文提供了一份详细的AutoDock Vina分子对接实战指南,以SARS-CoV-2 3CL蛋白酶(PDB ID: 7VU6)为例,从零开始手把手教学。内容涵盖软件安装、环境配置、受体与配体文件准备、对接参数设置,以及结果分析与可视化解读,旨在帮助计算生物学与药物发现领域的新手快速掌握这一核心技能。

ooo22的博客 536

图像分割tensorflow_使用 MeshTensorFlow 进行超高分辨率图像分析

文 / 软件工程师 Le Hou 和 Youlong Cheng,Google Research深度神经网络模型是构成大多数尖端图像分析和自然语言处理算法的基础。随着数据和模型并行计算等大规模深度学习技术的最新发展,我们已经可以使用包含数百万图像的数据集,在数分钟内即可训练完成大型卷积神经网络(CNN) 模型。但在将 CNN 模型应用于超分辨率图像 (Ultra-High Resol...

weixin_39778668的博客 639

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

机器人动力学仿真软件:Webots_(14).机器人声音仿真

Webots 中的声音仿真主要通过Sound和两种节点来实现。Sound节点用于播放预定义的音频文件,而节点则允许在仿真过程中动态生成和播放声音。这些节点可以用于模拟机器人的语音输出、报警声、环境噪音等。以下是一个示例,展示如何在控制器代码中播放预定义的声音。// 控制器代码(.c) # include <webots/robot.h> # include <webots/sound.h> # define TIME_STEP 64 const char * sound_name = "sound";

kkchenjj的博客 1312

TensorFlow实战指南

本文系统介绍了TensorFlow 2025的最新特性与工业应用实践。重点解析了三大核心改进:DTensor API实现分布式训练突破、oneDNN性能优化带来4倍加速、Keras v3格式支持复杂模型保存。通过图像分类和音高识别两个实战案例,展示了TensorFlow在CV和音频领域的应用优势。文章还分享了大规模训练优化策略、工业部署经验以及边缘计算实践,对比分析了TensorFlow与PyTorch的适用场景。最后推荐了学习资源,指出多模态融合和自监督学习是未来发展方向。TensorFlow 2025在

2503_91821476的博客 1349

MATLAB 基于 Baker 映射和 Logistic 混沌序列的图像加解密实现

图像加密是信息安全领域的重要研究方向,在数字版权保护、隐私保护等领域有着广泛应用。本文将介绍基于 MATLAB 的 Baker 映射和 Logistic 混沌序列的图像加解密算法,该算法利用混沌系统的初值敏感性和伪随机性,能够有效地对图像进行加密和解密。基于 Baker 映射和 Logistic 混沌序列的图像加解密算法是一种有效的方法,可以应用于数字版权保护、隐私保护等领域。MATLAB 提供了强大的工具和函数,可以方便地实现该算法。

走向CTO的路上... 937

WebGazer.js:基于普通摄像头的网页眼动追踪技术深度解析

WebGazer.js是一个革命性的开源JavaScript库,通过普通网络摄像头实现了网页端的实时眼动追踪技术。这项技术无需专用硬件设备,仅凭用户交互即可完成自校准,为网页用户体验分析、无障碍交互和用户行为研究提供了全新的技术路径。 ## 技术挑战与解决方案:从硬件依赖到软件智能 ### 传统眼动追踪的局限性 传统眼动追踪技术长期面临两大核心挑战:**硬件成本高昂**和**部署复杂度高**

gitblog_00523的博客 880

Proxmox VE 9 更换源

创建一键更换Proxmox VE 9.0源的Bash脚本,实现快速替换软件源。脚本需包含订阅提醒关闭功能,兼容Proxmox VE 9.0系统,执行命令为bash /proxmox_9.0_Repo.sh。该工具可简化源配置过程,自动处理系统更新源替换及订阅提示屏蔽,适合需要快速配置Proxmox环境的用户使用。

极致,细节 4987

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

为什么RXT4090显卡会受到AI圈追捧?

RTX 4090凭借强大算力与显存,在AI训练与推理中表现优异,支持FP8、Tensor Core等技术,适配主流框架,是高性价比的本地AI开发平台。

weixin_30838971的博客 753

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Mac Mouse Fix 鼠标增强完全指南:如何让普通鼠标好用过触控板

插上第三方鼠标的 Mac 体验立刻降级?Mac Mouse Fix 是一款开源鼠标增强工具,能把普通鼠标的输入体验做到接近 Apple 触控板。本文讲清安装、选版、窗口吸附与按键映射等进阶技巧,适合所有被鼠标手感折磨的 Mac 用户。 ## 两步装好 Mac Mouse Fix:官网与 Homebrew 命令 📦 两条路,任选其一: 1. 从官网下载最新版,把应用拖进「应用程序」文件夹。

gitblog_00280的博客 858

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Holistic Tracking低延迟部署:实时视频流处理实战指南

本文介绍了基于星图GPU平台自动化部署“AI 全身全息感知 - Holistic Tracking”镜像的实战方案。该平台支持一键部署与高效运行,适用于虚拟主播、体感交互等低延迟场景,助力开发者快速实现全身动作实时追踪与AI应用开发。

weixin_42462474的博客 315

O-CNN深度探索:革命性八叉树卷积神经网络如何重塑3D形状分析

在当今计算机视觉和深度学习领域,3D形状分析一直是一个充满挑战的重要研究方向。传统的2D卷积神经网络在处理3D数据时面临着数据表示和计算效率的双重困境。O-CNN(Octree-based Convolutional Neural Networks)作为一种革命性的八叉树卷积神经网络,通过创新的数据结构和算法设计,为3D形状分析带来了突破性的解决方案。本文将为您全面解析O-CNN的核心技术、应用场

gitblog_00237的博客 734

基于物理建模的视频眼镜移除:从光学原理到可微分渲染实践

在计算机视觉与视频处理领域,动态遮挡物的移除与修复是一项基础且关键的技术挑战,尤其在涉及人脸的身份验证、虚拟试妆与肖像修复等应用场景中。其核心原理在于如何从受损或遮挡的视频序列中,稳定、连贯地恢复出原始内容。传统基于图像修复或区域替换的方法,往往难以处理视频中由运动、光线变化及复杂物理效应(如折射、反光)带来的时序不一致问题。本文聚焦于一种更具鲁棒性的技术路径:将领域知识(光学物理)引入深度学习框架,通过将眼镜建模为可学习的物理透镜扭曲场,构建一个可微分的渲染与反渲染流程。这种方法不仅提升了修复结果的时间一

weixin_30721077的博客 441

技术深度解析:Momentum-Firmware在Flipper Zero上的架构创新与工程实践

Momentum-Firmware作为Flipper Zero设备上功能最丰富的第三方固件,通过创新的架构设计和工程优化,为硬件安全测试和嵌入式开发提供了全新的可能性。本文将从技术实现角度深入分析该固件的核心价值、架构设计、应用场景以及开发实践,为中级技术用户和开发者提供全面的技术参考。 ## 项目定位与核心价值主张 Momentum-Firmware基于官方固件构建,继承了Unleashed

gitblog_00117的博客 304

ESP32-P4视觉革命:从零构建智能摄像头系统的实战解决方案

在物联网视觉应用领域,开发者常常面临三大挑战:图像质量不稳定、开发周期过长、硬件兼容性差。ESP32-P4凭借其强大的MIPI-CSI接口和片上ISP处理能力,正在重塑边缘视觉设备的开发范式。本文将深度解析如何利用ESP32-P4构建高性能视觉系统,突破传统开发瓶颈。 ## 如何解决"信号干扰导致画面噪点"的行业痛点? 图像质量是视觉应用的核心,但传统方案常受限于传感器噪声和信号干扰。ESP3

gitblog_00102的博客 628

TensorFlow常用函数总结(二)

上一篇:TensorFlow常用函数(一) 1、tf.meshgrid() 2、tf.stack()、tf.vstack()、tf.hstack() 3、tf.transpose() : 对tensor进行转置 4、tf.maximum()、tf.minimum() 5、tf.image.non_max_suppression():非极大抑制算法 6、tf.gather():可以把向量...

蓬莱道人的博客 7749

tensorflow之tf.meshgrid()

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。用法:[A,B]=Meshgrid(a,b),生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列 a=[0,5,10]b=[0,5,15,20,25]A,B=tf.meshgrid(a,b)with t...

weixin_30299709的博客 1182

【Pytorch】PyTorch: meshgrid的用法(与tensorflow的差异)

meshgrid Example:: >>> x = torch.tensor([1, 2, 3]) >>> y = torch.tensor([4, 5, 6]) >>> grid_x, grid_y = torch.meshgrid(x, y) >>> grid_x tensor([[1, 1, 1], [2, 2,

Felaim的博客 1501
上一篇: 容器引擎的心脏:揭秘 Containerd,低调但不可或缺的力量!
下一篇: Trivy:一站式容器安全扫描神器
普通网友
博客等级 码龄1年 18粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值