《Python深度学习》读书笔记(一)
作者:互联网
文章目录
2.2张量
张量(tensor):矩阵是二维张量,张量是矩阵任意维度上的推广。
1、0D张量——标量:仅包含一个数字的张量叫做标量。
import numpy as np
x=np.array(12)
print(x.ndim)#numpy数组的ndim属性可以查看张量轴的个数
2、1D张量——向量:一个轴
import numpy as np
x=np.array([12,13,14,15])
print(x.ndim)#numpy数组的ndim属性可以查看张量轴的个数
3、2D张量——矩阵:两个轴行和列
import numpy as np
x=np.array([[12,13,14,15],[12,23,43,26]])
print(x.ndim)#numpy数组的ndim属性可以查看张量轴的个数
4、3D张量与更高维张量
多个2D张量组成一个3D张量
多个3D张量组成一个4D张量
以此类推。。。
import numpy as np
x=np.array([[[12,13,14,15],[12,23,43,26]],[[12,233,32,23],[12,34,43,34]]])
print(x.ndim)#numpy数组的ndim属性可以查看张量轴的个数
5、关键属性
轴的个数–阶:ndim属性
形状:表示张量沿每个轴的维度大小即元素的个数。标量为空(),向量为(n),2D为(n,m)以此类推
数据类型:可以为float32,float64等
张量运算
1、广播
当两个阶数不同的向量相加时,较小的张量会被广播以匹配较大的张量。
步骤:1、为较小的张量添加轴,和较大张量的ndim相同
2、将较小的张量沿新轴重复
eg x(12,3) y(3,) .先为y添加新轴变为(1,3)再将y沿新轴重复12次变为(12,3)
import numpy as np
x=np.random.random((2,2,2,2))#x为形状为(2,2,2,2)的随机张量
y=np.random.random((2,2))#y为形状为(2,2)的随机张量
z=np.maximum(x,y)
print(z)#z的形状与x相同
2、点积
张量的点积,一般都是两个矩阵的点积和线性代数里两个矩阵的相同
import numpy as np
x=[
[1,2],
[5,6]
]
y=[
[9,10,11],
[12,13,14]
]
z=np.dot(x,y)
print(z)
3、变形
改变张量的行和列以得到想要的形状
import numpy as np
x=np.array([
[1,2],
[5,6]
])
print(x.shape)
x=x.reshape((4,1))
print(x)
x=x.reshape((1,4))
print(x)
特殊变形:转置(将矩阵的行和列互换)
y=np.zeros((4,1))#生成一个零矩阵
y=np.transpose(y)#对矩阵进行转置
print(y.shape)
标签:ndim,12,读书笔记,Python,张量,print,深度,np,numpy 来源: https://blog.csdn.net/weixin_45827387/article/details/115439726