torch的模块

library(torch)
# 线性层,输入特征5,输出特征16,常用于神经网络的第一层
l <- nn_linear(in_features = 5, out_features = 16)
l
l$weight
l$bias
# 生成一个尺寸为 [50, 5] 的随机张量 x,
# 其中包含50个样本,每个样本有5个特征。
# 数据服从标准正态分布。
x <- torch_randn(50, 5)
# x 传递给线性层 l,得到输出 output
output <- l(x)
# 获取并返回输出张量的尺寸,即 [50, 16]
output$size()
# 用于跟踪生成 output 张量的计算图中的梯度函数。
output$grad_fn

# 定义损失函数为output的均值
loss <- output$mean()
# loss的反向传播
loss$backward()
# 获取线性层 l 的权重参数的梯度。
# 这些梯度用于更新权重,
# 以最小化损失函数。
l$weight$grad

# 多层感知机,模型是通过 nn_sequential 组合多个神经网络模块构建
mlp <- nn_sequential(
  nn_linear(10, 32),
  nn_relu(),
  nn_linear(32, 64),
  nn_relu(),
  nn_linear(64, 1)
)

# 调用该模块
mlp(torch_randn(5, 10))

评论

发表评论

了解 数据控|突破是我们的每一步 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读