torch7学习(一)——Tensor

这篇博客详细介绍了Torch7中的Tensor使用,包括初始化方法如rand、zeros、fill,Tensor的内容与信息,存储方式,复制和提取操作如select、narrow、sub以及用大括号{}进行提取。此外,还讲解了expand、repeatTensor、squeeze、view、transpose和permute等高级操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

torch7学习(一)——Tensor
Torch7学习(二) —— Torch与Matlab的语法对比
Torch7学习(三)——学习神经网络包的用法(1)
Torch7学习(四)——学习神经网络包的用法(2)
Torch7学习(五)——学习神经网路包的用法(3)
Torch7学习(六)——学习神经网络包的用法(4)——利用optim进行训练
Torch7学习(七)——从neural-style代码中看自定义重载函数的训练方式

第一篇博客是从torch7提取出来最常用的知识。
主要讲Tensor的用法及其一些函数。
**先说一嘴:**torch中一般有这个东西,就是
y = torch.func(x,…)等价于y = x:func(…),就是说如果用”torch”,那么“src”是第一个参数。否则就”src:”

初始化

Tensor/rand/zeros/fill

z = torch.Tensor(3,4,2,3,5)  --可以创建多维数组。里面是随机的数。
s = torch.Tensor(2,3):fill(1) --用1填充
t = torch.rand(3,3)
m = torch.zeros(3,
### PyTorch Tensor 类概述 PyTorch中的`Tensor`是该库的核心组成部分,用于表示多维数组并支持多种数学运算。作为深度学习框架的部分,`Tensor`不仅能够存储数值数据,还具备自动求导功能,这对于训练神经网络至关重要。 #### 创建 Tensor 实例 可以通过不同的方式来初始化个 `Tensor` 对象: - **从列表或NumPy数组创建** ```python import torch data_list = [[1, 2], [3, 4]] tensor_from_list = torch.tensor(data_list) print(tensor_from_list) ``` 此代码片段展示了如何利用Python内置的数据结构快速生成个新的张量实例[^4]。 #### Tensor 的主要属性 以下是几个重要的`Tensor`属性及其含义: - **requires_grad** 表明这个张量是否参与计算图构建过程,并记录其上的任何操作以便后续反向传播时能正确更新参数。当设置为True时,则会追踪所有对该变量的操作;反之则不会被纳入到梯度计算之中[^3]。 - **is_leaf** 判断当前对象是不是由用户直接定义出来的原始输入(叶子节点),还是说它是经过某些算子变换之后得到的结果。对于非叶子类型的张量来说,在执行`.backward()`之前通常不需要手动指定`.grad`字段的内容因为它们会被自动生成出来。 - **grad** 存储着对应于本体的偏微分值——即损失函数关于权重变化率的信息。只有那些标记了`requires_grad=True`而且属于叶子级别的张量才会拥有有效的`.grad`成员变量指向具体的梯度矩阵/矢量形式。 - **grad_fn** 如果某个特定的张量不是通过显式的构造器而是经由某种转换而来的话,那么这里就会保存有关联的那个Function对象引用,从而允许我们追溯整个前馈路径直至起点。 #### 基础操作与方法调用 除了上述提到的各种特性之外,`Tensor`也实现了大量实用的方法来进行诸如加减乘除之类的常规处理或是更复杂的线性代数变换等高级任务。值得注意的是,根据API设计的不同,有的时候这些行为可能隶属于全局命名空间下的静态辅助工具集(`torch.*`)之内,而另些则是挂载到了具体实例上成为成员级的服务接口(`tensor.*`)。 例如,要保存个模型的状态字典至磁盘文件中去,既可以采用前者的形式:`torch.save(model.state_dict(), 'model.pth')` ,也可以借助后者实现相同的效果:`some_tensor.save('tensor.pt')` 。不过需要注意区分两者的适用场景差异[^1]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值