当前位置:网站首页>动手学深度学习__数据操作
动手学深度学习__数据操作
2022-08-04 05:29:00 【CV小Rookie】
N维数组(机器学习和神经网络主要的数据结构)


创建数组
1. 形状;2. 元素数据类型;3. 每个元素的值;

访问元素
正常访问单个元素 [1, 2] ,访问第一行第二列的元素(有第0行和第0列)
访问一行 [1, :] ,访问第一行所有元素
访问一列 [:, 1] ,访问第一列所有元素
访问数组中某个连续的子区域 [1:3, 1:] ,从第一列到第三列(3是开区间)and第一列到最后

访问数组中的子区域 [::3, ::2] ,:: 标示跳跃,每3行取一次,每2列取一次

import torch
# 生成一个[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]的数组
x = torch.arange(12);
# x -> tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
x.shape()
# x 的形状,返回维度 torch.Size([12])
x.numel()
# x 元素的个数,返回值是个标量 12
x = x.reshape(3, 4)
# 改变 x 的形状
# tensor([0, 1, 2, 3],
# [4, 5, 6, 7],
# [8, 9, 10, 11]])
# 还可以使用全 0 全 1 创建
torch.zeros((2, 3, 4)) #torch.ones((2, 3, 4))
#tensor([[[0., 0., 0., 0.],
# [0., 0., 0., 0.],
# [0., 0., 0., 0.]],
#
# [[0., 0., 0., 0.],
# [0., 0., 0., 0.],
# [0., 0., 0., 0.]]])
1. 常见的标准运算(+, -,*, /,和**)都是按元素计算的

2. 多个张量连接,dim = 0 行拼接, dim =1 列拼接,以此类推。

3. 通过逻辑运算符构建

4. 对张量中所有元素进行求和,结果变为一个元素的张量

5. 即使形状不同,可以使用广播机制(broadcasting mechansim)执行按位操作。注意维度一致!

可以看出,其实是对a和b分别进行复制,把a复制一列,变成(3, 2); 把b复制3行,也变成(3, 2),然后就可以按位操作。
注意:广播机制触发是需要两个条件的,第一个是两个张量必须不为空,第二个是两个张量从右向左依次比较,要么相同,要么其中一个为1,要么其中一个为空。
边栏推荐
猜你喜欢
随机推荐
智能合约安全——delegatecall (1)
Android connects to mysql database using okhttp
(九)哈希表
MySQL事务详解(事务隔离级别、实现、MVCC、幻读问题)
【go语言入门笔记】13、 结构体(struct)
sklearn中的pipeline机制
postgresql 事务隔离级别与锁
[Deep Learning 21 Days Learning Challenge] 2. Complex sample classification and recognition - convolutional neural network (CNN) clothing image classification
Simple and clear, the three paradigms of database design
8.30难题留坑:计数器问题和素数等差数列问题
EPSON RC+ 7.0 使用记录一
记一次flink程序优化
flink on yarn任务迁移
读研碎碎念
win云服务器搭建个人博客失败记录(wordpress,wamp)
SQL练习 2022/7/2
安装dlib踩坑记录,报错:WARNING: pip is configured with locations that require TLS/SSL
MySQL leftmost prefix principle [I understand hh]
NFT市场开源系统
flink问题整理







![[Introduction to go language] 12. Pointer](/img/c8/4489993e66f1ef383ce49c95d78b1f.png)

