當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Tensorflow nn.sigmoid()用法及代碼示例


Tensorflow是Google開發的開源機器學習庫。它的應用之一是開發深度神經網絡。

模塊tensorflow.nn為許多基本的神經網絡操作提供支持。

Sigmoid函數是許多激活函數之一,其定義為f(x) = 1 / (1 + e^{-x})


Sigmoid函數的輸出範圍為(0,1),非常適合於二進製分類問題,因為我們需要找到屬於特定類別的數據的概率。 S形函數在每個點都是微分的,其導數為f'(x) = f(x) * (1 - f(x))。由於表達式包含S型函數,因此可以重用其值以使向後傳播更快。

乙狀結腸函數受到“vanishing gradients”的困擾,因為它的兩端都變平了,導致反向傳播過程中重量的變化很小。這會使神經網絡拒絕學習並陷入困境。由於這個原因,S形函數的使用已被其他非線性函數(如整流線性單元(ReLU))取代。

函數tf.nn.sigmoid()[別名tf.sigmoid]為Tensorflow中的S形函數提供支持。

用法:tf.nn.sigmoid(x, name=None) or tf.sigmoid(x, name=None)

參數
x:以下任何類型的張量:float16,float32,float64,complex64或complex128。
name(可選):操作的名稱。

返回類型:與x具有相同類型的張量。

代碼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 sigmoid function and 
# storing the result in 'b' 
b = tf.nn.sigmoid(a, name ='sigmoid') 
  
# 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_1:0", shape=(6, ), dtype=float32)
Input:[ 1.        -0.5        3.4000001 -2.0999999  0.        -6.5      ]
Return type:Tensor("sigmoid:0", shape=(6, ), dtype=float32)
Output:[ 0.7310586   0.37754068  0.96770459  0.10909683  0.5         0.00150118]

代碼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 sigmoid function and 
# storing the result in 'b' 
b = tf.nn.sigmoid(a, name ='sigmoid') 
  
# 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.sigmoid")  
    plt.xlabel("X")  
    plt.ylabel("Y")  
  
    plt.show()

輸出:

Input: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.00669285  0.01357692  0.02734679  0.05431327  0.10500059  0.19332137
  0.32865255  0.5         0.67134745  0.80667863  0.89499941  0.94568673
  0.97265321  0.98642308  0.99330715]



相關用法


注:本文由純淨天空篩選整理自vaibhav29498大神的英文原創作品 Python | Tensorflow nn.sigmoid()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。