1. 程式人生 > >Tensorflow學習之旅(4)

Tensorflow學習之旅(4)

import tensorflow as tf

#定義新增神經層的函式def add_layer(),它有四個引數:輸入值、輸入的大小、輸出的大小和激勵函式
#我們設定預設的激勵函式是None
from __future__ import print_function
import tensorflow as tf

# 個人的看法,在每一層做計算的時候,要搞清楚矩陣的維度
# 這個的表示方式和吳恩達教程上面的表示方式是相反的
# inputs =[樣本數 * 特徵數] ,而吳恩達的教程是 特徵數*樣本數

"""
所以,這裡的表示方式是: input * weights 
假如,輸入層的結點個數是2,隱層是3
input=[n*2]  ,weihts=[2*3] ,bias=[1,3]
input*weigths=[n,3] + bias=[1,3] ,這樣的矩陣維度相加的時候,python會執行它的廣播機制

so,這一層的輸出的維度是 [n,3]
"""
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
##這個地方我覺得有點繞。於是思考了下
#N * 2   N個樣本,每個樣本有兩個特徵
# 2個特徵要傳向  3個 隱藏層#
#
#    A    -------  B
#         -------  B
#    A    -------  B
#也就是說 [N* 2]    *  [2  * 3] ==[N  *   3]
#理解為矩陣乘法就很不錯了
#所以樣例裡。in_size=2
#out_size=3
#activation_function為激勵函式
#inputs  應該是一個 N*2的list

暑假就在接觸Tensorflow了,但是一直斷斷續續的,所以現在又開始撿起來繼續學。