Tensorflow是Google開發的開源機器學習庫。它的應用之一是開發深度神經網絡。
模塊tensorflow.nn
為許多基本的神經網絡操作提供支持。
激活函數是應用於神經網絡層輸出的函數,然後將其作為輸入傳遞到下一層。激活函數是神經網絡的重要組成部分,因為它們提供了非線性,如果沒有非線性,則神經網絡隻能簡化為邏輯回歸模型。許多激活函數之一是Softplus函數,其定義為。
傳統的激活函數(例如S形和雙曲線正切)具有下限和上限,而softplus函數的輸出範圍為(0,∞)。 softplus函數的導數出來是,這是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]
相關用法
- Python Tensorflow abs()用法及代碼示例
- Python Tensorflow log()用法及代碼示例
- Python Tensorflow tan()用法及代碼示例
- Python Tensorflow nn.tanh()用法及代碼示例
- Python Tensorflow sin()用法及代碼示例
- Python Tensorflow cos()用法及代碼示例
- Python Tensorflow exp()用法及代碼示例
- Python Tensorflow nn.sigmoid()用法及代碼示例
- Python Tensorflow logical_and()用法及代碼示例
- Python Tensorflow cosh()用法及代碼示例
- Python Tensorflow reciprocal()用法及代碼示例
- Python Tensorflow acos()用法及代碼示例
- Python Tensorflow asin()用法及代碼示例
- Python Tensorflow sinh()用法及代碼示例
注:本文由純淨天空篩選整理自vaibhav29498大神的英文原創作品 Python | Tensorflow nn.softplus()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。