张量的修改与运算|学习笔记

简介: 快速学习张量的修改与运算

开发者学堂课程【深度学习框架 TensorFlow 入门张量的修改与运算学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/773/detail/13543


张量的修改与运算


内容简介

一、ndarray 属性的修改

二、形状变化

三、张量的数学运算


一、ndarray 属性的修改

(1)类型的修改

ndarray.astype(type)

ndarray.tostring()  

代码如下:

def tensor_ demo():

……

#张量的演示

……

; return:

tensor1 = tf. constant(4.0)

tensor2 = tf. constant((1, 2, 3, 4])

linear_ squares = tf. constant([[4], [9], [16], [25]], dtype=tf. int32)

print ("tensor1:\n", tensor1)

print ("tensor2:\n", tensor2)

print ("linear_ squares_before:\n", linear_ squares )

#张量类型的修改

l_ cast = tf. cast(linear_ squares, dtype=tf. float32)

print ("linear_ squares_after:\n", linear_ squares )

print("l_cast:\n", l_cast)

return None

(2)形状的修改

ndarray.reshape(shape)

加上-1表示自动计算形状

ndarray.resize(shape)

reshape 与 resize 的区别,reshape 会返回一个新的数组,而resize 是就地修改原来的 ndarray。


二、形状变化

TensorFlow 的张量具有两种形状变换,动态形状和静态形状

tf.reshape

tf.set_shape

关于动态形状和静态形状必须符合以下规则

(1)静态形状

只有在形状完全没有固定下来的情况才能更新静态形状

tensor.set_shape(shape)

转换静态形状的时候,1-D到1-D, 2-D到2-D, 不能跨阶数改变形状

对于已经固定的张量的静态形状的张量,不能再次设置静态形状

代码案例:

#更新/改变静态形状

#定义占位符

#形状没有完全固定下来的静态形状

a_p = tf.placeholder(dtype=tf. float32, shape= (None, None])

b_P = tf.placeholder(dtype=tf. float32, shape= (None, 10])

c_p = tf.placeholder(dtype=tf. float32, shape=[3, 2])

print("a_ p:\n", a_p)

print("b_ p:\n", b_p)

print("c_ p:\n", c_p)

#更新形状未确定的部分

a_p.set_shape([2,3])

b_p.set_shape([2,10])

print(“a_p:\n”,a_p)

print(“b_p:\n”,b_p)

return None

(2)动态形状

通过 tf.reshape(tensor,shape)改变动态形状

不会改变原始的 tensor,返回新的改变形状后的 tensor  

tf.reshape() 动态创建新张量时,张量的元素个数必须匹配

代码案例:

a_p=tf.placeholder(dtype=tf.float32,shape=[None,None])

……

print("a_ p:\n", a_p)

……

# 动态形状修改

a_p_reshape = tf. reshape(a_p, shape=(2, 3, 1])

print("a_p:\n", a_p)

print("a_p_reshape:\n", a_p_reshape)

return None


三、张量的数学运算

算术运算符

基本数学函数

矩阵运算

reduce 操作

序列索引操作

详细请参考:

https://www.tensorflow.org/versions/r1.8/api guides/python/math ops

这些 API 使用,我们在使用的时候介绍,具体参考文档

相关文章
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
掌握 PyTorch 张量乘法:八个关键函数与应用场景对比解析
PyTorch提供了几种张量乘法的方法,每种方法都是不同的,并且有不同的应用。我们来详细介绍每个方法,并且详细解释这些函数有什么区别:
40 4
掌握 PyTorch 张量乘法:八个关键函数与应用场景对比解析
|
5月前
|
Python
数组运算
【5月更文挑战第6天】数组运算。
37 1
|
5月前
|
语音技术 Python
量化模型是将浮点数运算转换为整数运算的过程
【2月更文挑战第32天】量化模型是将浮点数运算转换为整数运算的过程
47 1
第3章 数组与矩阵——3.1 数组运算(2)
第3章 数组与矩阵——3.1 数组运算(2)
第3章 数组与矩阵——3.1 数组运算(1)
第3章 数组与矩阵——3.1 数组运算(1)
|
人工智能 算法
数组形式的整数加法
数组形式的整数加法
88 0
|
PyTorch 算法框架/工具
输入一个一行张量,如何转换成概率?
将一行张量转换为概率分布的常见方法是使用 softmax 函数。softmax 函数的作用是将一个向量映射到一个新的向量,其中每个元素都在 0 到 1 之间,并且所有元素的和等于 1。因此,可以将 softmax 函数应用于一行张量,以将其转换为概率分布。
195 0
|
Python
Python经典编程习题100例:第44例:两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵
Python经典编程习题100例:第44例:两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵
283 0
|
开发者 索引 Python
数值运算|学习笔记
快速学习数值运算
|
开发者 Python
转换成为整数|学习笔记
快速学习转换成为整数