前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深度学习激活函数TensorFlow版本

深度学习激活函数TensorFlow版本

作者头像
Tom2Code
发布于 2022-11-21 04:17:30
发布于 2022-11-21 04:17:30
27400
代码可运行
举报
文章被收录于专栏:TomTom
运行总次数:0
代码可运行

好久没更新了,Busy with postgraduate life

今天上课摸个鱼 简单写一点

最近在看一本《TensorFlow计算机视觉原理与实战》

书中的第四章介绍了很多深度学习的激活函数,其中有一些激活函数是在pytorch中常见的,但是有一些激活函数是第一次见到,所以还是记录一下

比较常见的:

  1. Sigmoid
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.sigmoid(input,name='sigmoid')

2.Softmax

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.softmax(input,axis=axis,name='softmax')

3.Tanh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.tanh(input,name='tanh')

4.ReLu

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.relu(input,name='relu')

5.Leaky ReLu

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.leaky_relu(input,alpha=a,name='leaky_relu')
# a是自定义的值 默认为0.2

6.PReLu

PRelu(Parametric ReLu )旨在为不同通道的输入学习不同的权值a

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# input表示待激活的张量
def prelu(inp,name):
  with tf.variable_scope(name,reuse=tf.AUTO_REUSE) as scope:
    # 根据输入数据的最后一个维度来定义参数性状特征
    # 对于卷积即通道数,对于全连接即特征数
    alpha=tf.get_variable('alpha',inp.get_shape()[-1],initializer=tf.constant_initializer(0.0),dtype=tf.float32)
    # 得到负半轴为0,正半轴不变额激活结果
    pos=tf.nn.relu(inp)
    # 得到正半轴为0 负半轴为ax的激活结构
    neg=alpha*(inp-abs(inp))*0.5
    # 将两部分激活结果相加
    return pos+neg 

7.RReLu

rrelu在负半轴的斜率在训练的时候是随机产生的,但是在测试的时候是固定下来的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def rrelu(inp,is_training,name):
  with tf.variable_scope(name) as scope:
    # 定义a值额范围
    u=1
    l=0
    # 从均匀分布中随机选取a值
    rand_a=tf.Variable(tf.random_uniform(tf.shape(inp),minval=1,maxval=u))
    # 若is_training=True,则使用随机生成的rand_a
    # 反知相反
    alpha=tf.cond(tf.case(is_training,tf.bool),lambda: rand_a, lambda: tf.Variable((u+1)/2.0,dtype=tf.float32))
    pos=tf.nn.relu(inp)
    neg=alpha*(inp-abs(inp))*0.5
    return pos+neg

8.ReLu-6

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.relu6(input,name='relu6')

9.ELU

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.elu(input,name='elu')

10.Swish

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output=tf.nn.swish(input,name='swish')

11.Mish

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def mish(inp,name):
  with tf.variable_scope(name) as scope:
  output=inp*tf.nn.tanh(tf.nn.softplus(inp))
  return output

今天就先水这么多,天冷大家多穿衣。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tom的小院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档