3 2前向傳播

2021-09-10 13:31:53 字數 2627 閱讀 1400

前向傳播:搭建模型,實現推理(以全連線網路為例)

例如:生產一批零件講體積x1,和重量x2為特徵輸入nn,通過nn後輸入乙個數值。

神經網路圖

變數初始化,計算圖節點運算都要用會話(with結構)實現

with tf.session() as sess:

sess.run()

變數初始化:在sess.run函式中用tf.global_variables_initializer()

init_op=tf.global_variables_initializer()

sess.run(init_op)

計算圖節點運算:在sess.run函式中寫入帶運算的節點

sess.run(y)
用tf.placeholder佔位,在sess.run函式找那個用feed_dict喂資料

喂一組資料:

x=tf.placeholder(tf.float32,shape=(1,2))

sess.run(y,feed_dict=)

喂多組資料:

x=tf.palceholder(tf.float32,shape=(none,2))

sess.run(y,feed_dict=)

例1:

#coding:utf-8

#兩層簡單神經網路(全連線)

import tensorflow as tf

#定義輸入和輸出引數

x = tf.constant([[0.7,0.5]])

w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1))

w2 = tf.variable(tf.random_normal([3,1],stddev=1,seed=1))

#此時w1和w2並沒有賦值,只是相當於佔據了一片空間

#定義向前傳播過程

a = tf.matmul(x,w1)

y = tf.matmul(a,w2)

#以上**表示已經定義好了神經網路結構

#用會話來計算結果

with tf.session() as sess:

init_op = tf.global_variables_initializer()

sess.run(init_op)

# 這兩句表示對w1和w2這種變數進行賦值

print("a is:",sess.run(a))

print("w1 is:",sess.run(w1))

print("y is:",sess.run(y))

例2:

# 兩層簡單神經網路(全連線)

import tensorflow as tf

# 定義輸入和引數

# 用placeholder實現輸入定義(sess.run中喂一組資料)

x = tf.placeholder(tf.float32,shape=(1,2))

w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1))

w2 = tf.variable(tf.random_normal([3,1],stddev=1,seed=1))

#定義向前傳播過程

a = tf.matmul(x,w1)

y = tf.matmul(a,w2)

# 用會話計算結果

with tf.session() as sess:

init_op = tf.global_variables_initializer()

sess.run(init_op)

print("y is:",sess.run(y,feed_dict=))

例3:

# 兩層簡單神經網路(全連線)

import tensorflow as tf

#定義輸入和引數

# 用placeholder定義輸入(sess.run喂多組資料)

x = tf.placeholder(tf.float32,shape=(none,2))

w1 = tf.variable(tf.random_normal([2,3],stddev=1,seed=1))

w2 = tf.variable(tf.random_normal([3,1],stddev=1,seed=1))

#定義向前傳播過程

a = tf.matmul(x,w1)

y = tf.matmul(a,w2)

#呼叫會話計算結果

with tf.session() as sess:

sess.run(tf.global_variables_initializer())

print("y is:",sess.run(y,feed_dict=))

# 對x餵入三組資料,會輸出三組y值

print("w1 is:",sess.run(w1))

print("w2 is:",sess.run(w2))

前向傳播演算法

乙個神經元有多個輸入和乙個輸出,每個神經元的輸入既可以是其他神經元的輸出也可以是整個神經網路的輸入。所謂神經網路的結構就是指的是不同的神經元之間的連線結構。如圖所示,乙個最簡單的神經元結構的輸出就是所有輸入的加權和,而不同的輸入的權重就是神經元的引數。神經網路的優化過程就是優化神經元中引數的取值的過...

tensorflow前向傳播

1.demo1 import tensorflow as tf seed設定隨機種子,每次執行結果一樣 w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 w2 tf.variable tf.random normal 3,1 stddev 1,s...

前向傳播和反向傳播 複習下前向反向傳播以及計算量

和大佬學習 沐風 googlenet v1的計算量和參數量精算表 zhuanlan.zhihu.com michael yuan 卷積神經網路的複雜度分析 zhuanlan.zhihu.com 以及資料量運算,和運算時間。首先簡單介紹下概念 卷積過程 單個神經元的卷積過程 如上圖,首先從一維擴充套件...