tensor张量练习
时间: 2025-02-25 13:47:13 浏览: 55
### 使用张量进行基础练习
#### 创建不同类型的张量
创建张量是使用PyTorch的基础之一。下面展示了如何利用不同的方法来初始化张量。
```python
import torch
# 创建全为0的张量,形状为 (2, 3)
zeros_tensor = torch.zeros((2, 3))
print(zeros_tensor)
# 创建全为1的张量,形状同样为 (2, 3),并指定了数据类型为 float64
ones_tensor = torch.ones((2, 3), dtype=torch.float64)
print(ones_tensor)
# 根据现有张量创建新张量,保持相同特性但填充随机数
random_tensor_like_ones = torch.rand_like(ones_tensor, dtype=torch.float)
print(random_tensor_like_ones)
```
#### 修改张量属性
了解如何改变张量的尺寸和其他属性对于灵活应用非常重要。
```python
# 改变张量的形状而不改变其内容
reshaped_tensor = random_tensor_like_ones.view(-1) # 将多维张量展平成一维
print(f"Reshaped Tensor:\n{reshaped_tensor}")
# 更改张量的数据类型
casted_tensor = reshaped_tensor.type(torch.int8)
print(casted_tensor.dtype)
```
#### 执行简单的算术运算
掌握基本的操作有助于更深入理解张量之间的交互方式。
```python
a = torch.tensor([1., 2., 3.])
b = torch.tensor([4., 5., 6.])
addition_result = a + b # 加法
multiplication_result = a * b # 逐元素乘法
dot_product_result = torch.dot(a, b) # 向量点积
print(addition_result)
print(multiplication_result)
print(dot_product_result)
```
#### 计算梯度
当涉及到优化算法时,能够追踪和更新参数是非常重要的技能。
```python
x = torch.tensor([1., 2., 3., 4.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad) # 应该打印出 [1., 1., 1., 1.] 表明每个位置上的偏导数值均为1[^2]
# 清除之前累积的梯度以便于下次计算
if x.grad is not None:
x.grad.zero_()
```
通过上述例子可以看出,张量不仅支持多种创建方式,还提供了丰富的接口来进行各种各样的变换与操作。这些基础知识构成了后续复杂任务实现的前提条件。
阅读全文
相关推荐

















