IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 动手学深度学习——数据操作 -> 正文阅读

[人工智能]动手学深度学习——数据操作

N维数组样例

N维数组是机器学习和神经网络的主要数据结构

0-d(标量)1-d(向量)2-d(矩阵)
1.0【1.0,2.7,3.4】

【【1.0,2.7,3.4】

【5.0,4.8,0.2】

【4.3,8.5,0.2】】

一个类别一个特征向量一个样本(特征矩阵)
3-d4-d5-d

【【【1.0,2.7,3.4】

【5.0,4.8,0.2】

【4.3,8.5,0.2】】

【【1.0,2.7,3.4】

【5.0,4.8,0.2】

【4.3,8.5,0.2】】】

【【【【

.....

.....

.....

】】】】

【【【【

.....

.....

.....

】】】】

RGB图片(宽x高x通道)x乘一个RGB图片批量(批量大小x宽x高x通道)一个视频批量(批量大小x时间宽x高x通道)

创建数组

创建数组需要:

形状:例如3X4矩阵

每个元素的数据类型:例如32位浮点数

每个元素的值,例如全是0,或者随机数

访问元素

一个元素:[1,2]

一行:[1,:]

一列:[:,1]

子区域:[1:3,1:] 从第一行开始到三行开区间结束,从第一列开始拿到所有。

子区域:[::3,::2]双冒号是跳着访问,每三行一跳。每两列一跳。

?数据操作

"""
首先,我们应该导入torch。注意,虽然它被称为Pytorch,但我们应该导入torch而不是Pytorch。
"""
import torch
"""
张量表示一个数值组成的数组,这个数组可能有多个维度
"""
x=torch.arange(12)
print(x)
"""
我们可以通过张量的shape属性来访问张量的形状和张量中元素的总数
"""
print(x.shape)
print(x.numel())

?

"""
我们可以通过张量的shape属性来访问张量的形状和张量中元素的总数
"""
print(x.shape)
print(x.numel())
"""
要改变一个张量的形状而不改变元素数量和元素值,我们可以调用reshape函数
"""
x=x.reshape(3,4)
print(x)
"""
使用全0、全1、其他常量或者从特定分布中随机采样的数字
"""
x=torch.zeros((2,3,4))
print(x)
x=torch.ones((2,3,4))

"""
通过提供包含数值的python列表(或嵌套列表)来为所需张量中的每个元素赋予确定值
"""
x=torch.tensor([[2,1,4,3],[1,2,3,4],[4,3,2,1]])
print(x)

?

"""
常见的标准算术运算符(+、-、*、/、**)都可以被升级为按元素运算
"""
x=torch.tensor([1.0,2,4,8]) #1.0表示浮点数
y=torch.tensor([2,2,2,2])
print(x+y)
print(x-y)
print(x*y)
print(x/y)
print(x**y)#**运算符是求幂运算

?

?

"""
我们也可以把多个张量连接在一起
"""
X=torch.arange(12,dtype=torch.float32).reshape((3,4)) #代码的意思是随机生成一个12位的数组,然后改变形状变成3行4列
Y=torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])

print(torch.cat((X,Y),dim=0) )#dim=0 表示按行合并起来(添加记录)
print(torch.cat((X,Y),dim=1) )#dim=1 表示按列合并起来(拼接起来)

"""
通过逻辑运算符构建二元张量
"""
X=torch.arange(12,dtype=torch.float32).reshape((3,4)) #代码的意思是随机生成一个12位的数组,然后改变形状变成3行4列
Y=torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
print(X==Y)
"""
对张量中的所有元素进行求和会产生一个只有一个元素的张量
"""
print(X.sum())
"""
即使形状不同,我们仍然可以通过调用广播机制来执行按元素操作
"""
a=torch.arange(3).reshape((3,1))
b=torch.arange(2).reshape((1,2))
print(a)
print(b)
print(a+b)

?

"""
可以用【-1】选择最后一个元素,可以用【1:3】选择第二个和第三个元素
"""
X=torch.arange(12,dtype=torch.float32).reshape((3,4)) #代码的意思是随机生成一个12位的数组,然后改变形状变成3行4列
print(X[-1])
print(X[1:3])
"""
除读取外,我们还可以通过指定索引来将元素写入矩阵
"""
X=torch.arange(12,dtype=torch.float32).reshape((3,4)) #代码的意思是随机生成一个12位的数组,然后改变形状变成3行4列
print(X)
X[1,2]=9
print(X)
"""
为多个元素赋值相同的值,我们只需要索引所有元素,然后为他们赋值
"""
X=torch.arange(12,dtype=torch.float32).reshape((3,4)) #代码的意思是随机生成一个12位的数组,然后改变形状变成3行4列
print(X)
X[0:2,:]=12 #第0行到第2行的所有元素赋值为12
print(X)
"""
运行一些操作可能会导致为新结果分配内存
"""
before=id(Y) #id表示唯一的标识号
Y=Y+X
print(id(Y)==before)
"""
执行原地操作
"""
Z=torch.zeros_like(Y)
print('id(Z):',id(Z))
Z[:]=X+Y
print('id(Z):',id(Z))
"""
如果在后续计算中没有重复使用X,我们也可以使用X[:]=X+Y或者X+=Y来减少操作的内存开销
"""
before=id(X) #id表示唯一的标识号
X+=Y
print(id(X)==before)
"""

?

"""
转换为numpy张量
"""
A=X.numpy()
B=torch.tensor(A)
print(type(A))
print(type(B))
"""
将大小为1的张量转换为python标量
"""
a=torch.tensor([3.5])
print(a)
print(a.item())
print(float(a))
print(int(a))

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 15:52:28  更:2021-11-15 15:54:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:34:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码