| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> pytorch入门笔记 -> 正文阅读 |
|
[人工智能]pytorch入门笔记 |
张量的创建: 1.直接创建: torch.tensor(data, dtype=None, device=None, requires_grad=False, pin_memory=False) 从data创建tensor data: 数据,可以是list,numpy dtype: 数据类型,默认与data的一致 device: 所在设备,cuda/cpu requires_grad: 是否需要梯度 pin_memory: 是否存于锁页内存
从numpy创建tensor torch.from_numpy(ndarray) 功能:从numpy创建tensor 注意事项:从torch.from_numpy创建的tensor于原ndarray共享内存,当修改其中一个数据,另一个也将会被改动。
?2.依据数值创建 torch.zeros(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) size创建全0张量 size: 张量的形状,如(3, 3)、(3, 224, 224) out: 输出的张量 layout: 内存中布局形式,有strided, sparse_coo等 device: 所在设备,gpu/cpu requires_grad: 是否需要梯度
torch.zeros_like(input, dtype=None, layout=None, device=None, requires_grad=False) 依input形状创建全0张量 input: 创建与input同形状的全0张量 dtype: 数据类型 layout: 内存中布局形式
torch.ones和torch.ones_like用法和上述zeros的一样 torch.full(size, fill_value, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) torch.full_like() 和ones和zeros的用法一样,不过生成的值是fill_value torch.arange(start=0, end. step=1, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)?????? 功能:创建等差的1维张量 start: 数列起始值 end: 数列“结束值” step: 数列公差,默认为1注意事项:数值区间为[𝑠𝑡𝑎𝑟𝑡,𝑒𝑛𝑑)是左闭右开 torch.linspace(start, end, steps=100, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False),解释类似上面 torch.logspace(start, end, steps=100, base=10.0, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) 功能: 创建对数均分的1维张量 注意事项:长度为steps,底为base start: 数列起始值end: 数列结束值steps: 数列长度base: 对数函数的底,默认为10
3.依概率分布创建张量 torch.normal(mean, std, out=None) 功能:生成正态分布(高斯分布),mean: 均值,std: 标准差 有四种模式: mean为标量,std为标量 mean为标量,std为张量 mean为张量,std为标量 mean为张量,std为张量
torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)生成标准正态分布,size是张量的形状
torch.rand(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)在区间[0,1)[0,1)上,生成均匀分布。
torch.randint(low=0, high, size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)区间 $[low, high)$ 生成整数均匀分布
torch.randperm(n, out=None, dtype=torch.int64, layout=torch.strided, device=None, requires_grad=False)生成从0到n-1的随机排列,张量的长度为n(该功能和用法和matlab中的randperm类似)
torch.bernoulli(input, *, generator=None, out=None),以input为概率,生成伯努利分布(0-1分布,两点分布),input:概率值。
张量的操作: 张量的拼接和切分 torch.cat(tensors, dim=0, out=None)功能:将张量按维度dim进行拼接
?torch.stack(tensors, dim=0, out=None)?功能:在新创建的维度dim上进行拼接
?torch.chunk(input, chunks, dim=0) ?input:要切分的张量
torch.split(tensor, split_size_or_sections, dim=0)
张量索引: torch.index_select(input, dim, index, out=None) 功能:在维度dim上,按index索引数据 返回值:依index索引数据拼接的张量index:要索引的张量 dim:要索引的维度 index:要索引数据的序号
torch.masked_select(input, mask, out=None) 功能:按mask中的True进行索引 返回值:一维张量input:要索引的张量 mask:与input同形状的布尔类型张量
张量变换: tensor的形状大小:size()和shape等价
torch.tensor和torch.Tensor: torch.Tensor是torch.empty和torch.tensor之间的一种混合,但是,当传入数据时,torch.Tensor 使用全局默认dtype(FloatTensor),而torch.tensor是从数据中判断数据类型。 torch.tensor(1)返回一个固定值1,而torch.Tensor(1)返回一个大小为1的张量,它是随机初始化的
修改tensor形状 torch.size()返回张量的shape属性值 torch.numel()计算tensor的元素个数 torch.view(*shape),修改Tensor的shape,与Reshape类似,但是View返回的对象与源Tensor共享内存,修改一个,另外一个同时修改,Reshape将生成新的Tensor,而且不要求源Tensor是连续的,View(-1)展平数组。 torch.resize(),类似view,但在size超出时会重新分配内存空间 torch.item,若Tensor为单元素,则返回Python的标量 torch.unsqueeze,在指定维度增加一个'1' torch.squeeze,在指定维度压缩一个'1'
torch.view和torch.reshape的区别: reshape()课由torch.reshape(),也可以由torch.Tensor.reshape()调用,但是view()只可由torch.Tensor.view()来调用。对于一个将被view的Tensor,新的size必须与原来的size和stride兼容,否则在view之前必须调用conyiguous()方法。 如果只想重塑张量就用torch.reshape,如果还关注内存使用情况并希望确保两个张量共享相同的数据,就用torch.view。 torch.transpose(input, dim0, dim1) 功能:交换张量的两个维度 input:要交换的张量 dim0:要交换的维度 dim1:要交换的维度
torch.t(input)功能:2维张量转置,对矩阵而言,等价于torch.transpose(input, 0, 1)? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 18:34:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |