当前位置:   article > 正文

pytorch常用激活函数笔记

pytorch常用激活函数笔记

      1. relu函数:

        公式:f(x) = max(0,x)        深层网络内部激活函数常用这个

  1. import matplotlib.pyplot as plt
  2. def relu_fun(x):
  3. if x>=0:
  4. return x
  5. else:
  6. return 0
  7. x = np.random.randn(10)
  8. y = np.arange(10)
  9. plt.plot(y,x)
  10. for i ,t in enumerate(x):
  11. x[i] = relu_fun(t)
  12. plt.plot(y,x)

2.sigmod函数,深层网络不咋用这个激活函数,因为容易梯度消失,把输入变为范围 0,1之间和tanh曲线挺像,但是tanh函数范围为-1,1之间。

  1. import numpy as np
  2. def sigmoid(x):
  3. s = 1 / (1 + np.exp(-x))
  4. return s
  5. x = np.arange(-100,100).astype(np.float32)/10.0
  6. y = np.arange(-100,100).astype(np.float32)/10.0
  7. plt.plot(y,x)
  8. for i ,t in enumerate(x):
  9. x[i] = sigmoid(t)
  10. plt.plot(y,x)

3.tanh函数,把输入变为范围 -1,1之间。

  1. x = np.arange(-100,100).astype(np.float32)/10.0
  2. y = np.tanh(x)
  3. plt.plot(x,y)

 

4.leak relu函数,leakrelu函数和relu函数的主要区别是,leakrelu 函数保留了小于0的部分的一些影响,只是把这部分性影响减少了。

  1. fun = nn.LeakyReLU()
  2. x = np.arange(-10000,1000)/100.0
  3. x = torch.from_numpy(x)
  4. x = x.view(-1,1)
  5. t=fun(x)
  6. t=t.numpy()
  7. x= x.numpy()
  8. plt.plot(x,t)
  9. plt.grid(alpha=0.4,linestyle=':')

 

 5.elu函数,α超参数一般取1

  1. fun = nn.ELU()
  2. x = np.arange(-500,200)/100.0
  3. x = torch.from_numpy(x)
  4. x = x.view(-1,1)
  5. t = fun(x)
  6. x = x.numpy()
  7. t = t.numpy()
  8. plt.plot(x,t)
  9. plt.grid(alpha=0.4,linestyle=':')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/92994?site
推荐阅读
相关标签
  

闽ICP备14008679号