一些常見啟用函式(維基百科)
#建立輸入資料
x = np.linspace(-7, 7, 180) #
(-7, 7) 之間等間隔的 180 個點
#啟用函式的原始實現
defsigmoid(inputs):
y = [1 / float(1 + np.exp(-x)) for x in
inputs]
return
ydef
relu(inputs):
y = [x * (x > 0) for x in
inputs]
return
ydef
tanh(inputs):
y = [(np.exp(x) - np.exp(-x)) / float(np.exp(x) - np.exp(-x)) for x in
inputs]
return
ydef
softplus(inputs):
y = [np.log(1 + np.exp(x)) for x in
inputs]
returny#
經過 tensorflow 的啟用函式處理的各個 y 值
y_sigmoid =tf.nn.sigmoid(x)
y_relu =tf.nn.relu(x)
y_tanh =tf.nn.tanh(x)
y_softplus =tf.nn.softplus(x)
#建立會話
sess =tf.session()#執行
y_sigmoid, y_relu, y_tanh, y_softplus =sess.run([y_sigmoid, y_relu, y_tanh, y_softplus])
#建立各個啟用函式的影象
plt.figure(1, figsize=(8, 6))
plt.subplot(221)
plt.plot(x, y_sigmoid, c='
red', label='
sigmoid')
plt.ylim((-0.2, 1.2))
plt.legend(loc='
best')
plt.subplot(222)
plt.plot(x, y_relu, c='
red', label='
relu')
plt.ylim((-1, 6))
plt.legend(loc='
best')
plt.subplot(223)
plt.plot(x, y_tanh, c='
red', label='
tanh')
plt.ylim((-1.3, 1.3))
plt.legend(loc='
best')
plt.subplot(224)
plt.plot(x, y_softplus, c='
red', label='
softplus')
plt.ylim((-1, 6))
plt.legend(loc='
best')
#顯示影象
plt.show()
#關閉會話
sess.close()
執行結果:
tensorflow啟用函式
encoding utf 8 案例一 import tensorflow as tf import numpy as np seed 23455 cost 1 成本 profit 99 利潤 rdm np.random.randomstate seed x rdm.rand 32,2 y x1 x2...
tensorflow 損失函式與啟用函式
損失函式用於評價模型的準確度。無論什麼樣的網路結構,如果損失函式不正確,都難以訓練出正確的模型。損失值用於描述 值與真實值之間的差距大小。常用的損失函式是 均方差函式和交叉熵函式。均方差mse tf.reduce mean tf.pow tf.sub logits,outputs 2.0 tenso...
Tensorflow2 0 啟用函式
常用啟用函式及對應特點 神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。神經網路中啟用函式的主要作用是提供網路的非線性建模能力。這是因為反向傳播演算法就...