栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

动手学深度学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

动手学深度学习

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,要么其中一个为空。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号