编程语言
首页 > 编程语言> > 《Python深度学习》读书笔记(一)

《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