博客
关于我
LibTorch之激活函数层
阅读量:796 次
发布时间:2023-01-31

本文共 1004 字,大约阅读时间需要 3 分钟。

LibTorch之激活函数层

在LibTorch中,激活函数作为神经网络中的重要组成部分,通过非线性变换,使得模型能够捕捉复杂的模式。以下是对几种常用激活函数的简要说明。

一般使用

在LibTorch中,通常会在各层之间添加激活函数,以增强非线性特性。以下是一个通用的激活函数组织方式:
torch::Tensor forward(torch::Tensor x) {      // 用于多种tensor操作      x = torch::relu(fc1->forward(x.reshape({x.size(0), 784})));      x = torch::dropout(x, /*p=*/0.5, /*train=*/is_training());      x = torch::relu(fc2->forward(x));      x = torch::log_softmax(fc3->forward(x), /*dim=*/1);      return x;  }

Relu激活函数

Relu(Rectified Linear Unit)激活函数是最常用的非线性激活函数之一。其特点是对于输入小于零的部分会被置零,而大于零的部分保持不变。LibTorch中可以通过以下方式使用Relu:
x = torch::relu(layer->forward(x));

log_softmax激活函数

Log Softmax函数通常用于最后的分类层,因为它能够将实数转换为对数概率分布。其使用方法如下:
x = torch::log_softmax(layer->forward(x), /*dim=*/1);

LeakyReLU激活函数

LeakyReLU激活函数与Relu类似,但其下降边缘坡度不为零。这意味着即使输入为负值,输出也不会完全为零。LeakyReLU的实现方式如下:
use torch::nn::LeakyReLU;  let leakyRelu = LeakyReLU {       name: "leakyrelu",       negative_slope: -0.1,       inplace: true,   };  x = leakyRelu (x);

通过以上方法,您可以在LibTorch中灵活选择和配置激活函数层,以实现不同网络架构的需求。

转载地址:http://swwfk.baihongyu.com/

你可能感兴趣的文章
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>
mysql 索引
查看>>
MySQL 索引失效的 15 种场景!
查看>>