tensorflow 綜合學習系列例項之神經網路

2021-08-20 10:47:01 字數 2474 閱讀 9224

本文為大家講解如何使用tf實現乙個簡單的神經網路:首先大家要知道神經網路的簡單組成,一般來說乙個神經網路會包含,輸入層

,隱藏層,輸出層....,例子很簡單,主要是為了學會使用tf的核心步驟:這個是核心建立層的方法

下面是完整實現**:

# author jiahp

# 建立乙個簡單的神經網路 包括 輸入層 隱藏層 輸出層

importtensorflowastf

importnumpyasnp

#定義乙個層的方法

# inputs 輸入值

# in_size 輸入層的數量

# out_size 輸出層的數量

# activation_function 激勵函式

defadd_layer(inputs, in_size, out_size, activation_function=none):

# 建立初始化權重

weights = tf.variable(tf.random_normal([in_size

, out_size]))

# 建立乙個常量的biases

biases = tf.variable(tf.zeros([1,

out_size]) +

0.1)

# 結果加權求和

wx_plus_b = tf.matmul(inputs

, weights) + biases

ifactivation_function

isnone:

outputs = wx_plus_b

else:

outputs = activation_function(wx_plus_b)

returnoutputs

# 建立真實的訓練資料

x_data = np.linspace(-1 ,

1 ,300)[:

, np.newaxis]

b = np.random.normal(0,

0.05

, x_data.shape)

y_data = np.square(x_data) -

0.5

+ b# 定義神經網路的輸入引數

xs = tf.placeholder(tf.float32

, [none, 1

])ys = tf.placeholder(tf.float32

, [none, 1

])# 通過輸入層獲取到隱藏層 這裡需要乙個激勵函式

hidden_layer = add_layer(xs, 1

, 10

, activation_function

=tf.nn.relu)

# 通過隱藏層獲取到輸出層 這裡不再需要使用激勵函式

prediction = add_layer(hidden_layer

, 10, 1

, activation_function

=none)

# 計算真實資料和**資料之間的誤差

均方根誤差

loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction)

,reduction_indices=[1

]))# 獲取的loss

train_step = tf.train.gradientdescentoptimizer(

0.1).minimize(loss)

# 初始化

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

fori

inrange(

1000

):# 訓練

sess.run(train_step

, feed_dict

=)

ifi %

50 == 0:

# 列印訓練數值

print(sess.run(loss

, feed_dict

=))

ok,**寫完了,其實神經網路的效率是比較低的,尤其是在資料量大或者維度很複雜的情況下,對應的輸入神經元和隱藏神經元的計算量會呈指數複雜,所以一般使用它的情況下,需要考慮具體的業務需求和資料量,它並不是一無是處,只不過要合理的去使用它

tensorflow 綜合學習系列例項之線性回歸

tf是現在比較流行的深度學習框架之一,從今天開始我會把tf由簡入深到進行講解,不對的地方還請大家諒解,因為tf的版本現在更新的速度很快,不同的版本對應的api也是有所區別的,所以需要找到對應的版本,後面我所講解的例項都是基於1.2版本 在使用tf的一般正常幾個核心步驟如下 1 首先定義引數,一般使用...

tensorflow的reduce函式系列維度解析

tf.reduce mean tf.reduce sum tf.reduce max tf.reduce min等等函式的引數中都有乙個axis的問題,當axis none時,看成是對所有元素進行mean sum max等等操作,最終結果為乙個數。但當axis有值時,表示要操作的維度,但什麼是要操作...

tensorflow 學習 學習中

基於 virtualenv 的安裝 在 linux 上 sudo apt get install python pip python dev python virtualenv 在 mac 上 sudo easy install pip 如果還沒有安裝 pip sudo pip install up...