当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Tensorflow nn.softplus()用法及代码示例


Tensorflow是Google开发的开源机器学习库。它的应用之一是开发深度神经网络。

模块tensorflow.nn为许多基本的神经网络操作提供支持。

激活函数是应用于神经网络层输出的函数,然后将其作为输入传递到下一层。激活函数是神经网络的重要组成部分,因为它们提供了非线性,如果没有非线性,则神经网络只能简化为逻辑回归模型。许多激活函数之一是Softplus函数,其定义为f(x) = ln(1 + e^x)


传统的激活函数(例如S形和双曲线正切)具有下限和上限,而softplus函数的输出范围为(0,∞)。 softplus函数的导数出来是f'(x) = 1 / (1 + e^{-x}),这是S型函数。 softplus函数与整流衬里单元(ReLU)十分相似,主要区别是x = 0时softplus函数的可微性。Zheng等人的研究论文“使用softplus单元改进深度神经网络”。 (2015年)表明,相比于ReLU函数,softplus为深度神经网络提供了更多的稳定性和性能。但是,由于易于计算ReLU及其导数,因此通常首选ReLU。激活函数及其导数的计算是神经网络中的常见操作,与softplus函数相比,ReLU提供了更快的正向和反向传播。

函数nn.softplus()[别名math.softplus]为Tensorflow中的softplus提供支持。

用法:tf.nn.softplus(features, name=None) or tf.math.softplus(features, name=None)

参数
features:以下任何类型的张量:float32,float64,int32,uint8,int16,int8,int64,bfloat16,uint16,half,uint32,uint64。
name(可选):操作的名称。

返回类型:与特征类型相同的张量。

代码1:

# Importing the Tensorflow library 
import tensorflow as tf 
  
# A constant vector of size 6 
a = tf.constant([1.0, -0.5, 3.4, -2.1, 0.0, -6.5], dtype = tf.float32) 
  
# Applying the softplus function and 
# storing the result in 'b' 
b = tf.nn.softplus(a, name ='softplus') 
  
# Initiating a Tensorflow session 
with tf.Session() as sess:
    print('Input type:', a) 
    print('Input:', sess.run(a)) 
    print('Return type:', b) 
    print('Output:', sess.run(b))

输出:

Input type:Tensor("Const:0", shape=(6, ), dtype=float32)
Input:[ 1.        -0.5        3.4000001 -2.0999999  0.        -6.5      ]
Return type:Tensor("softplus:0", shape=(6, ), dtype=float32)
Output:[  1.31326163e+00   4.74076986e-01   3.43282866e+00   1.15519524e-01
   6.93147182e-01   1.50233845e-03]

代码2:可视化

# Importing the Tensorflow library 
import tensorflow as tf 
  
# Importing the NumPy library 
import numpy as np 
  
# Importing the matplotlib.pylot function 
import matplotlib.pyplot as plt 
  
# A vector of size 15 with values from -5 to 5 
a = np.linspace(-5, 5, 15) 
  
# Applying the softplus function and 
# storing the result in 'b' 
b = tf.nn.softplus(a, name ='softplus') 
  
# Initiating a Tensorflow session 
with tf.Session() as sess:
    print('Input:', a) 
    print('Output:', sess.run(b)) 
    plt.plot(a, sess.run(b), color = 'red', marker = "o")  
    plt.title("tensorflow.nn.softplus")  
    plt.xlabel("X")  
    plt.ylabel("Y")  
  
    plt.show()

输出:

Input:[-5.         -4.28571429 -3.57142857 -2.85714286 -2.14285714 -1.42857143
 -0.71428571  0.          0.71428571  1.42857143  2.14285714  2.85714286
  3.57142857  4.28571429  5.        ]
Output:[ 0.00671535  0.01366993  0.02772767  0.05584391  0.11093221  0.21482992
  0.39846846  0.69314718  1.11275418  1.64340135  2.25378936  2.91298677
  3.59915624  4.29938421  5.00671535]



相关用法


注:本文由纯净天空筛选整理自vaibhav29498大神的英文原创作品 Python | Tensorflow nn.softplus()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。