Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python中torch的用法

作者:穹上之月   发布日期:2026-04-02   浏览:52

import torch

# 创建一个张量 (Tensor)
x = torch.tensor([1.0, 2.0, 3.0])
print("创建的张量 x:", x)

# 创建一个随机初始化的张量
y = torch.rand(2, 3)
print("随机初始化的张量 y:\n", y)

# 张量加法
z = x + x
print("张量 x 和 x 相加的结果 z:", z)

# 自动求导功能
a = torch.tensor([2.0], requires_grad=True)
b = torch.tensor([3.0], requires_grad=True)
c = a * b
c.backward()  # 计算梯度
print("a 的梯度:", a.grad)
print("b 的梯度:", b.grad)

# 创建一个神经网络层
linear_layer = torch.nn.Linear(10, 5)  # 输入维度为 10,输出维度为 5
input_tensor = torch.randn(1, 10)  # 创建一个随机输入张量
output_tensor = linear_layer(input_tensor)  # 将输入传递给线性层
print("线性层的输出:\n", output_tensor)

# 定义损失函数和优化器
loss_fn = torch.nn.MSELoss()
optimizer = torch.optim.SGD(linear_layer.parameters(), lr=0.01)

# 模拟训练过程
target = torch.randn(1, 5)  # 创建一个随机目标张量
for epoch in range(10):
    optimizer.zero_grad()  # 清除梯度
    output = linear_layer(input_tensor)
    loss = loss_fn(output, target)
    loss.backward()  # 反向传播
    optimizer.step()  # 更新参数
    print(f"Epoch {epoch}, Loss: {loss.item()}")

解释说明:

  1. 创建张量:使用 torch.tensor() 创建一个张量,可以指定初始值。torch.rand() 用于创建随机初始化的张量。

  2. 张量运算:可以直接对张量进行加法等运算,结果仍然是一个张量。

  3. 自动求导:通过设置 requires_grad=True,可以让 PyTorch 跟踪张量的操作,并在需要时自动计算梯度。backward() 方法用于反向传播并计算梯度。

  4. 神经网络层torch.nn.Linear 是一个简单的线性层,可以接受输入张量并返回输出张量。

  5. 损失函数和优化器torch.nn.MSELoss 是均方误差损失函数,torch.optim.SGD 是随机梯度下降优化器。在训练过程中,通过 zero_grad() 清除梯度,backward() 计算梯度,step() 更新参数。

  6. 模拟训练过程:通过循环迭代,模拟了神经网络的训练过程,包括前向传播、计算损失、反向传播和更新参数。

上一篇:elasticsearch python

下一篇:plt在python中的用法

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站