三、tensorflow进阶

使用numpy实现李代数se(3)和SE(3)之间的指对数映射 SE(3)李群和se(3)李代数元素之间存在着指对数的映射关系(矩阵指数、对数运算关系),对于se(3)李代数,存在着向量形式(六维螺旋向量S)和4×4标准矩阵(E矩阵)两种表达,他们之间可以相互转换,我们把从S转换成E的过程称为升维(upgrade),把E转换为S的过程称为降维(upgrade),那么我们可以简单地得到以下的转换关系示意图: 李代数se(3)的螺旋向向量形式和标准4×4表示之间的转换关系比较简单,只需要对其中的角速度向量做一个伴随(反对称)变换即可,然后反对称矩阵和速度向量进行拼接,然后 阅读详情

(一) 合并与分割

  • 合并
# 1.拼接 tf.concat(tensors,axis),拼接并不创建新的维度
# 注意地方是非拼接维度必须一致
a = tf.random.normal([4,32,32,3])
b = tf.random.normal([2,32,32,3])
c = tf.concat([a,b],axis=0)
# 2.堆叠 tf.stack(tensors,axis),可以增减新的维度
a = tf.random.normal([2,2])
b = tf.random.normal([2,2])
c = tf.stack([a,b],axis=0)
# out:shape=(2,2,2)
# 注意:需要所有合并的张量维度一致。
  • 分割
# tf.split(x,axis,num_or_size_split)
# num_or_size_split 表示分割方案
# 当它为单个数值时,表示分割份数,当它是列表时,列表的长度表示切割份数,列表中每个元素表示每份分割长度。
x = tf.random.normal([32,32,4])
tf.split(x,axis=0,num_or_size_split=8)
# 进行不等长切割
tf.split(x,axis=0,num_or_size_split=[9,8,2])

(二) 数据统计

  • 向量范数

L1范数:∣∣x∣∣1=Σi∣xi∣||x||_1=\Sigma_i{|x_i|}∣∣x∣∣1​=Σi​∣xi​∣
L2范数:∣∣x∣∣2=Σi∣xi∣2||x||_2=\sqrt{\Sigma_i{|x_i|^2}}∣∣x∣∣2​=Σi​∣xi​∣2​
∞\infty∞-范数:∣∣x∣∣∞=maxi∣x∣i||x||_\infty=max_i{|x|_i}∣∣x∣∣∞​=maxi​∣x∣i​

# 可用tf.norm(x,ord)来求范数
a = tf.ones([2,2])
l1 = tf.norm(a,ord=1)
l2 = tf.norm(a,ord=2)
l3 = tf.norm(a,ord=np.inf)
  • 最大最小值,均值,和
# 1.最大值与最小值
x = tf.random.normal([32,32])
tf.reduce_max(x,axis=1)
tf.reduce_min(x,axis=0)
# 2.均值
tf.reduce_mean(x,axis=1)
# 3.求和
tf.reduce_sum(x,axis=1)
# 4.返回最大值最小值的索引
tf.argmax(x,axis=1)
tf.argmin(x,axis=1)
  • 张量比较
c = tf.equal(a,b)
# 返回布尔型,需要转化为浮点型或者整型
out = tf.cast(c,tf.float32)
correct_sum = tf.reduce_sum(out)

(三) 填充与复制

  • 填充(padding)
tf.pad(x,padding)
# padding是包含多个[left padding,rigth padding]
# 例如:[0,0],[1,1],[2,2]分别表示第1维不填充,第2为左右起始处与结尾处各填充1单元,第3维表示左右起始处与结尾处个填充2单元
a = tf.constant([1,2,3,4,5.,6])
b = tf.constant([7,8,9])
c = tf.pad(b,[[0,3]])
#即表示b末尾处填充3个单元
  • 复制
x = tf.random.normal([3,32,32,4])
y = tf.tile(x,[2,3,2,1])
# 表示x第1维度复制1份,第2维度复制2份,第3维度复制1份,第4维度不复制。

(四) 数据限幅

  • 上限
tf.minimum(x,a)
  • 下限
tf.maximum(x,a)

*上下限

tf.clip_by_value(x,a,b)

(五) 高级操作

  • 根据索引号收集数据
a = tf.random.uniform([4,35,8],maxval=100,dtype=tf.int32)
# 说明:4代表4个班级,35代表学生个数,8代表科目个数
# 1.规则索引:收集1~2班的成绩
tf.gather(a,[0,1],axis=0)
# 2.不规则索引:收集2,34,23,,24号学生的成绩
tf.gather(a,[1,33,22,23],axis=1)
# 3.收集第5,8科目的成绩
tf.gather(a,[4,7],axis=2)
# 4.问题更复杂一些,比如,收集第2,3个班级的12,23,26,号同学的第4,5,6门科目
class_ = tf.gather(a,[1,2],axis=0)
students = tf.gather(class_,[11,22,25],axis=1)
subjects = tf.gather(students,[3,4,5],axis=2) 
  • 指定坐标采取样本点

通过 tf.gather_nd,可以通过指定每次采样的坐标来实现采样多个点的目的.
回到上面的挑战,我们希望抽查第 2 个班级的第 2 个同学的所有科目,第 3 个班级的第 3 个同学的所有科目,第 4 个班级的第 4 个同学的所有科目。 那么这 3 个采样点的索引坐标可以记为:[1,1], [2,2], [3,3], 我们将这个采样方案合并为一个 List 参数: [[1,1], [2,2], [3,3]]

tf.gather_nd(a,[[1,1],[2,2],[3,3]]
  • 通过给定掩码(mask)的方式采样,tf.boolean_mask(x,mask)
# 比如采取第2,3班级成绩
tf.boolean_mask(a,mask=[False,True,True,False],axis=0)
# 多维采集,收集第1班的0-1,第2班的2-3
x = tf.random.uniform([2,3,8],maxval=100,dtype=tf.int32)
tf.boolean_mask(x,mask=[[True,True,False],[Fasle,True,True]])
# 等价于
tf.gather_nd([[0,0],[0,1],[1,1],[1,2]])
  • tf.where
    tf.where(conditions,a,b)
# 假设我们需要提取数据中所有正数的索引
a = tf.random.normal([3,3],dtype=tf.float32)
mask = x>0
indices = tf.where(mask)
tf.gather_nd(x,indices)
# or
tf.boolean_mask(x,indices)
  • tf.scatter_nd(indices,updates,shape)
    在这里插入图片描述
    图片援引《tensorflow2深度学习》
# 1.构造需要刷新的位置
indices = tf.constant([4],[3],[1],[7])
# 2.构造需要新写入的数据
new_data = tf.constant([3.,2.,3.,5.])
# 3.在长度为8的全0向量上根据indices刷新
tf_scatter_nd(indices,new_data,[8])

在这里插入图片描述

# 1.构造写入位置
indices = tf.constant([[1],[3]])
# 2.构造新数据
updates = tf.constant([# 构造写入数据
[[5,5,5,5],[6,6,6,6],[7,7,7,7],[8,8,8,8]],
[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
]
# 3.在shape=(4,4,4)的
tf.scatter_nd(indices,updates,[4,4,4])
  • meshgrid
    在这里插入图片描述
    在这里插入图片描述
    图片来源于<tensorflow2深度学习>
AI开发教程(二十二):框架进阶应用 本文深入探讨PyTorch、TensorFlow/Keras和JAX三大主流深度学习框架的进阶应用技术,涵盖计算图优化、分布式训练、模型部署等核心内容。PyTorch部分重点介绍动态图优化、ZeRO优化器和Torch.compile性能提升;TensorFlow章节详解自定义训练循环、TFLite量化部署和模型剪枝;JAX章节突出其自动微分、JIT编译和大规模并行特性。通过框架特性对比和工业级案例(如推荐系统、CV大模型训练)分析,提供选型建议和性能优化checklist,帮助开发者从基础使用进阶到高效应用 阅读详情

相关推荐

TensorFlow进阶二(高阶操作)

TensorFlow进阶二(高阶操作)

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 932

基于python的李代数实现方法

本文分享了一种在python中实现李代数的方法,源码简单明了,只依赖于numpy库,非常实用,也便于在次基础上做二次开发。

sky4403的博客 2631

谎言:使用Sympy和由Rust的pyO3和ndarray提供支持的后端的李代数

谎言 使用Sympy和由Rust的pyO3和ndarray支持的后端的谎言代数 概述 为了向python提供相同的计算机代数软件(CAS)功能, 得以编写。 这个python库写得很好,并允许以开源方式替代Mathematica / WolframLanguage和Maple等专有选择。 由于SymPy的编写方式的本质,某些符号计算在python中可能极度未优化。 甚至使用numpy都无法提高速度,因为它不适合有理数(分数)。 Sympy当前确实提供了liealgebras模块,但是由于性能限制,必须做出某些权衡,例如锁定经典lie代数的基础以利于速度。 这是一个公平的折衷,但是需要任何使用不同基础的人来重新计算代数的表示形式。 解决此问题的另一种方法是使用支持泛型的已编译后端(并且使用python进行构建也很容易)。 Rust通过具有良好的python绑定支持,并允许使用通过numpy

anaconda安装tensorflow的user权限错误

在Anaconda中的Anaconda Prompt中安装tensorflow报错如下: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: 'd:\\anaconda3\\envs\\tensorflow\\Lib\\site-packages\\numpy\\fft\\fftpack_lite....

zhou_209的博客 1805

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

IEC104协议下的文件传输与软件升级的技术细节与操作流程

本文深入探讨IEC104协议下的文件传输过程和软件升级机制,揭示其背后的技术细节和操作流程。

2401_86189088的博客 2526

win 10 anaconda3 安装tensorflow keras cpu版本

1、打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes 2、用Anaconda3创建一个python3.6的环境,环境名...

owenfy的博客 559

XGBoost详解(原理篇)

XGBoost全称为eXtreme Gradient Boosting,即极致梯度提升树。XGBoost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器(个体学习器间存在强依赖关系,必须串行生成的序列化方法)。Note:关于Boosting算法详见博文集成学习详解_tt丫的博客-优快云博客XGBoost是一种提升树模型,即它将许多树模型集成在一起,形成一个很强的分类器。其中所用到的树模型则是CART回归树模型。

tt丫的博客 7万+

【Python TensorFlow】进阶指南(续篇三)

在前几篇文章中,我们探讨了TensorFlow的高级功能,包括模型优化、分布式训练、模型解释等多个方面。本文将进一步深入探讨一些更具体和实用的主题,如模型持续优化的具体方法、异步训练的实际应用、在线学习的实现细节、模型服务化的最佳实践、安全与隐私保护的技术细节,以及数据流处理的高级应用等,帮助读者全面掌握TensorFlow在实际部署中的应用。

极客代码 1315

基于Stigmergy的团队LLM wiki协作机制与FastAPI工程实践

大语言模型驱动的知识管理正在改变个人笔记与团队文档的维护方式,但当多人共同维护一个维基时,如何避免版本覆盖、上下文丢失和幻觉污染成为核心挑战。Stigmergy这一源自生物学的协作机制提供了新思路:通过共享环境中的痕迹(如评论、标记、修订历史)实现异步协作,无需实时沟通或中心协调者。本文将原理落地为可工程化的系统,设计Page、Revision、Trace三大实体,并结合向量索引与LLM审查流程,最终用FastAPI与SQLite搭建一个最小可运行原型。从白蚁筑巢到团队知识库,Stigmergy让每个参与者

weixin_34174322的博客 364

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1798

TensorFlow学习(三)——神经网络进阶

TensorFlow学习(三)——神经网络进阶DNN一、神经网络的进阶概念激活函数偏置项损失函数经典损失函数交叉熵(cross entropy)损失函数——分类问题示例展示代码表示代码说明均方误差——回归问题(数值预测等)代码展示代码说明自定义损失函数示例展示代码展示代码说明使用自定义损失函数实现的神经网络 一、神经网络的进阶概念 激活函数 在线性模型中,模型的输出是输入的加权和,例如通过下面这个...

u011609063的博客 895

chromium通信系统-ipcz系统(二)-ipcz系统代码实现-同Node通信

在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,handle类似于文件描述符,用IpczHandle类型表示ipcz系统内的一个对象。一个可以用IpczHandle 句柄表示的对象必须是APIObject子类。APIObject数据结构如下 class APIObject : public RefCou

woai110120130的专栏 1775

第五章 TensorFlow进阶(三) 加载经典数据集 minist

“”“第五章 TensorFlow进阶(三) 加载经典数据集 minist”"" import tensorflow as tf from tensorflow import keras from keras import datasets (x, y), (x_test, y_test) = datasets.mnist.load_data() print(x.shape) train_db = tf.data.Dataset.from_tensor_slices((x, y)) print(train_

qq_43629060的博客 503

基于YOLOv8的人群聚集检测系统:含UI界面设计与数据集应用

人群聚集检测是智慧城市、公共安全和疫情防控等领域的重要任务。本文结合YOLOv8最新目标检测技术,设计并实现了一个高效的人群聚集检测系统,支持可视化UI界面操作,方便用户实时检测和分析视频中的人群密度。本文详细介绍了系统设计思路、使用的数据集、YOLOv8模型训练和推理过程,以及UI界面的开发与整合。最后通过实验验证了该系统的实用性和性能表现。更灵活的模型架构强化的特征融合网络(PAN++)自动混合精度训练支持支持多任务学习(目标检测+分类+分割)预训练模型丰富,适应多种应用场景。

YOLO 434

实现两端固支梁热力耦合的有限元分析

在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。

CyberSparkZ的博客 396

TensorFlow初学者入门(三)——MNIST进阶

本人学习TensorFlow中的一些学习笔记和感悟,仅供学习参考,有疑问的地方可以一起交流讨论,持续更新中。 本文学习地址为:TensorFlow官方文档,在此基础上加入了自己的学习笔记和理解。 文章是建立在有一定的深度学习基础之上的,建议有一定理论基础之后再同步学习。 这次是利用TensorFlow搭建两层的cnn的一个实验,具体流程如下。 1.基本操作 import tensorf...

u010949998的博客 442

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TensorFlow进阶(三)---变量的创建、初始化

变量的的创建、初始化、保存和加载 其实变量的作用在语言中相当,都有存储一些临时值的作用或者长久存储。在Tensorflow中当训练模型时,用变量来存储和更新参数。变量包含张量(Tensor)存放于内存的缓存区。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。值可在之后模型训练和分析是被加载。 Variable类 tf.Variable.init(initial_v...

weixin_30685029的博客 239

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python1.0_L6等级教案ppt及素材_05_tensorflow进阶(三)

【TensorFlow进阶课程教案摘要】本教案围绕TensorFlow三大核心知识点展开:1)图(Graph)的创建与属性方法;2)会话(Session)的运行机制与资源管理;3)模型保存恢复的Saver类应用。采用"情景案例+代码互动"教学法,设置120分钟课程,包含知识讲解、课间活动、总结反思环节。重点培养逻辑思维与耐心,通过生活化案例激发学习兴趣,强调教学设备检查与课堂安全预案,注重师生互动反馈与教学持续改进。(149字)

我是慎独玩家,无人见处,自有尺度! 986

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

人工智能爱好者的进阶之路(三)——利用Anaconda安装tensorflow

人工智能时代已经到来,快来加入吧! 工欲善其事,必先利其器! 想要成为一名人工智能的爱好者、研究者,首先,你得有一个舒适软件调试开发环境。人工智能方向的标配语言是python,单独安装python需要配置的东西很多,所以诸多大牛的建议是在anaconda环境下安装python。接下来就让我们开始吧! Anaconda的安装 Anaconda指的是一个开源的Python发行版本,其包含了conda、...

lijinmao2007的博客 180

Sklearn 与 TensorFlow 机器学习实用指南

机器学习是人工智能的一个重要分支,它通过构建能够从数据中自动学习和改进的算法系统,使计算机具备从经验中获取知识的能力。其核心在于让计算机程序通过分析大量数据样本,自动发现数据中隐藏的模式和规律,而非依赖显式的编程指令。例如,图像识别系统通过分析数百万张标注图片,自动学习区分猫狗的特征表示。计算图静态图优势自动微分实现定制梯度函数模型定制自定义层开发模型子类化混合精度训练分布式训练Mirrored策略参数服务器梯度聚合生产部署SavedModel格式签名函数版本控制。

Made In SQL 930

tensorflow:tensorflow进阶

文章目录推荐文章一.合并与分割1.1 合并1.2 分割2.数据统计2.1 向量范数2.2 最大最小值、均值、和2.3 张量比较2.4 填充与复制3.数据限幅4.高级操作4.1 tf.gather4.2 tf.gather_nd4.3 tf.boolean_mask4.4 tf.where4.5 scatter_nd4.6 meshgrid5.数据集加载5.1 随机打乱5.2 批训练5.3预处理5.4 循环训练6.MNIST手写数字识别实战 推荐文章 Tensorflow:TensorFlow基础(一) T

逐梦er的博客 3561

【Python TensorFlow】进阶指南

在前文中,我们介绍了TensorFlow的基础知识及其在实际应用中的初步使用。现在,我们将进一步探讨TensorFlow的高级特性,包括模型优化、评估、选择、高级架构设计、模型部署、性能优化等方面的技术细节,帮助读者达到对TensorFlow的精通程度。

极客代码 1923

TensorFlow进阶

TensorFlow进阶

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 227

Python与深度学习库TensorFlow进阶

TensorFlow是由Google团队开发的一个开源软件库,它为开发者提供了一种强大的工具来设计、构建和训练深度学习模型。TensorFlow不仅仅是一个简单的机器学习库,它是深度学习领域的瑞士军刀,集成了自动微分、大规模数据处理、分布式计算等多种功能,支持多种编程语言,如Python、C++、Java等。最重要的是,TensorFlow拥有活跃的社区支持,无论是新手还是经验丰富的工程师都能在这里找到所需的学习资源和技术支持。本项目使用的数据集来自于电影评论,每条评论都被标记为正面或负面。

master_chenchen的博客 999

Tensorflow进阶

计算图中的矩阵 Tensorflow的嵌入Layer Tensorflow的多层Layer Tensorflow实现损失函数 Tensorflow实现反向传播 Tensoflow实现随机训练和批量训练 Tensoflow实现创建分类器 Tensorflow实现模型评估

君子以阅川的博客 500
上一篇: 二、tensorflow基础
下一篇: HADOOP框架搭建记录
李代数
博客等级 码龄8年 527粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值