Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################
- # 激活函數 + matplotlib圖
- ################################
- import numpy as np
- import matplotlib.pylab as plt
- import tensorflow as tf
- # 創建輸入數據
- # (-7, 7)之間的等間隔的180個點
- x = np.linspace(-7, 7, 180)
- # 激動函數的原始實現
- def sigmoid(inputs):
- y = [1 / float(1 + np.exp(-x)) for x in inputs]
- return y
- def relu(inputs):
- y = [x * (x > 0) for x in inputs]
- return y
- def tanh(inputs):
- y = [(np.exp(x) - np.exp(-x)) / float(np.exp(x) + np.exp(-x))
- for x in inputs]
- return y
- def softplus(inputs):
- y = [np.log(1 + np.exp(x)) for x in inputs]
- return y
- # 經過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)
- # 創建會話
- with tf.Session() as sess:
- y_sigmoid, y_relu, y_tanh, y_softplus = sess.run(
- [y_sigmoid, y_relu, y_tanh, y_softplus])
- print(y_sigmoid)
- print(y_relu)
- print(y_tanh)
- print(y_softplus)
- # 創建各個激活函數的圖像
- 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()
Add Comment
Please, Sign In to add comment