15种TensorFlow中实现的激活函数的效率

本文通过简单的全连接网络,测试了一下TensorFlow中激活函数的训练时间。使用的数据是mnist,网络结构如下:
Model: “sequential”


Layer (type) Output Shape Param #


flatten (Flatten) (None, 784) 0


dense (Dense) (None, 128) 100480


dense_1 (Dense) (None, 64) 8256


dense_2 (Dense) (None, 32) 2080


dense_3 (Dense) (None, 16) 528


dense_4 (Dense) (None, 10) 170


Total params: 111,514
Trainable params: 111,514
Non-trainable params: 0

结果如下:
在这里插入图片描述

序号 激活函数 训练时间
1 tanh 6.410
2 sofsign 6.421
3 sigmoid 6.469
4 relu 6.481
5 swish 6.768
6 nn.leaky_relu 6.848
7 nn.relu6 6.900
8 elu 6.915
9 gelu 6.969
10 linear 6.988
11 LeakyReLU 7.089
12 hard_sigmoid 7.363
13 softplus 7.467
14 selu 7.563
15 nn.crelu 7.843

总结:

  1. 对于简单的识别任务和简单的网络,复杂的激活函数并不能提高收敛速度。反而是传统的饱和形激活函数速度更快。这也解释了为什么在早期的阶段,sigmoid激活函数会应用那么广泛
  2. 针对的不同的任务,需要选择不同的激活函数。
  3. relu函数适合很多情况,而且效果不错,建议作为首选

程序:

import tensorflow as tf
import time
mnist = tf.keras.datasets.mnist
(training_images,training_labels
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值