ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《Python深度学习》读书笔记(一)

2021-04-05 17:05:47  阅读:329  来源: 互联网

标签:ndim 12 读书笔记 Python 张量 print 深度 np numpy


文章目录

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为形状为(22)的随机张量
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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有