iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0

參考網站1

https://ithelp.ithome.com.tw/upload/images/20181105/201123036T2t9sJA50.png

def add_layer(inputs, in_size, out_size, activation_function=None): 
    Weights = tf.Variable(tf.random_normal([in_size, out_size]))
    biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
    Wx_plus_b = tf.matmul(inputs, Weights) + biases
    if activation_function is None:
        outputs = Wx_plus_b
    else:
        outputs = activation_function(Wx_plus_b)
    return outputs

y_out = x_in * W + b
今天來用上圖了解一下昨天添加神經網路的寫法,先把通用模塊寫完。關於activation_funtion可以點進來看很多的總類,這邊先選None之後用到再加上即可,以hidden layer來說對比上圖weights裡面的in_size就是等於input進來的神經元個數(4),out_size就是隱藏層的神經元個數(6)。

hidden_layer = add_layer(input, input_tensors = 4, output_tensors = 6, activation_function = None)

biases最好不要用0就設0.1,因為y_out維度是(1,6)因此in_size=1,out_size=6然後再把整個0向量+0.1,幾本上把它想成線性代數的就可以把結構定義出來。因此我們有

biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)

最後寫出神經網絡未激活的值

Wx_plus_b = tf.matmul(inputs, Weights) + biases  # tf.matmul是矩陣乘法

輸出層的話即可寫成

output_layer = add_layer(hidden_layer, input_tensors = 6, output_tensors = 3, activation_function = None)

最後再假設激活函數有無狀況再返回輸出就完成添加層函數~

if activation_function is None:
        outputs = Wx_plus_b
    else:
        outputs = activation_function(Wx_plus_b)
    return outputs

要看懂跟熟悉輸入層、隱藏層與輸出層真的需要一點時間/images/emoticon/emoticon06.gif

明天來了解一下加速神經網絡的一些演算法~


上一篇
[第21天] Tensorflow練習4
下一篇
[第23天] Tensorflow MNIST練習(1)
系列文
Machine Learning 學習筆記30

尚未有邦友留言

立即登入留言