NumPy与TensorFlow-tf.tensor异同点

ops/2024/11/14 2:20:59/

NumPy数组与TenosrFlow中的张量(即tf.tensor)有很多相似地方,而且可以互相转换。下表总结了NumPy与tf.tensor的异同点。

NumPy与tf.tensor的异同点

操作类别NumPyTensorFlow 2+
数据类型np.ndarraytf.Tensor
np.float32tf.float32
np.float64tf.double
np.int64tf.int64
从已有数据构建np.array([3.2, 4.3], dtype=np.float16)a=tf.constant([3.2, 4.3], dtype=tf.float16)#常量 v=tf.Variable([3.2, 4.3], type=tf.float16)#变量
x.copy()tf.identity(x);tf.tile(a,(n,m))# 元组里的每个数值对应该轴复制次数
np.concatenatetf.concat((a,b),axis)# 待拼接的轴对应的维度数值可以不等,但其他维度形状需一致
线性代数np.dot #内积 np.multiply(*)#逐元素相乘或哈达玛积tf.matmul(x, y, name=None) 或(@)#内积tf.multiply(x, y, name=None),或(*)#逐元素相乘或哈达玛积
属性x.ndimx.ndim #查看rank
x.shapex.shape
x.sizetf.size(x)
改变形状x.reshapetf.reshape(x,(n,(-1)))#-1表示自动计算其他维度
np.transpose(x, [新的轴顺序] )tf.transpose(x, [新的轴顺序] )
x.flatten()tf.reshape(x,[-1]);tf.keras.layers.Flatten()
维度增减np.expand_dims(arr, axis)tf.expend_dims(a,axis)
np.squeeze(arr, axis)tf.squeeze(a,axis),#如果不声明axis,那么将压缩所有数值为1的维度。
类型转换np.floor(x)x=tf.cast(x,dtype=XX) x=x.numpy()=>np.array
比较np.lesstf.less(x,threshold)
np.less_equaltf.less_equal(x, threshold)
np.greater_equaltf.greater_equal(x, threshold)
随机种子np.random.seedtf.random.set_seed(n)

它们可以互相转换,具体分析如下:

  • 通过使用 np.array 或 tensor.numpy 方法,可以将TensorFlow张量转换为 NumPy 数组;
  • tf.convert_to_tensor把Python对象(NumPy,list、tuple等),或使用tf.constant、tf.Variable把Python对象转换为TensorFlow张量。

http://www.ppmy.cn/ops/133439.html

相关文章

制造企业数字化中台(技术中台、数据中台、业务中台)建设方案

文件是一份关于制造企业数字化中台建设方案的详细报告,由郎丰利1519整理制作。报告内容涵盖了数字化中台的总体解决方案、技术中台(A)、数据中台(B)和业务中台(C)的架构和功能。以下是对PPT内容…

九州未来再度入选2024边缘计算TOP100

随着数智化转型的浪潮不断高涨,边缘计算作为推动各行业智能化升级的重要基石,正在成为支持万物智能化的关键点。近日,德本咨询(DBC)联合《互联网周刊》(CIW)与中国社会科学院信息化研究中心(CIS),共同发布《2024边缘计算TOP100》榜…

算法——移除元素(leetcode27)

对于移除元素这道题来讲,我首先想到的还是双指针,根据题目要求我们需要在给定的一组数组中找出与目标值不同的元素数量并且将与目标值不同的元素全部移至数组左边右边则不需关注数组元素的大小,我们利用两个指针一个指向数组首部位置(左指针&…

多线程之Semaphore信号量

一、什么是信号量 Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。在多线程中经常会遇到该应用场景,信号量如同交通公路中的红绿灯一样,需要限流&…

ThinkBook 14+ 2024 Ubuntu 触控板失效 驱动缺失问题解决

首先我的电脑是thinkbook14 2024,从ubuntu18到ubuntu24,笔者整个都试了一遍,触摸板都没反应,确认不是linux系统内核问题,原因为驱动缺失。 解决步骤: (1)下载驱动,网址如…

微搭低代码入门01变量

目录 1 变量的定义2 变量的赋值3 变量的类型4 算术运算符5 字符串的连接6 模板字符串7 检查变量的类型8 解构赋值8.1 数组的解构赋值8.2 对象的解构赋值 9 类型转换9.1 转换为字符串9.2 转换为数字9.3 转换为布尔值 总结 好些零基础的同学,在使用低代码的时候&#…

React Hooks在现代前端开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 引言 React Hooks …

计算机网络易混淆知识点串记

文章目录 计算机网络易混淆知识点串记各层PDU首部: 计算机网络易混淆知识点串记 各层PDU首部: PUD首部长度 (B:字节)首部单位数据链路–帧帧首:14B帧尾部:4B——IPV420~60字节4B [通过4位二进制表示]IPV6固定首部40字节[可拓展]4BTCP20~60字节4BUDP8B字节