tensorflow實現BP神經網路

2021-08-19 23:08:48 字數 1417 閱讀 9295

tensorflow實現由乙個隱藏層的bp神經網路,tensorflow中的梯度函式只用在最後一層輸入損失函式就可以了,非常的方便。

import tensorflow as tf

import numpy as np

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 == none:

outputs = wx_plus_b

else:

outputs = activation_function(wx_plus_b)

return outputs

x_data=np.linspace(-1,1,300)[:,np.newaxis] #生成輸入x值

noise=np.random.normal(0,0.05,x_data.shape)#生成誤差值

y_data=np.square(x_data)-0.5+noise#生成輸入y值

xs=tf.placeholder(tf.float32,[none,1])#生成x佔位符

ys=tf.placeholder(tf.float32,[none,1])#生成y佔位符

#定義隱含層,隱含層有10個神經元

l1=add_layer(xs,1,10,activation_function=tf.nn.relu)

#定義輸出層,假設沒有任何啟用函式

prediction=add_layer(l1,10,1,activation_function=none)

loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))#生成損失函式

train_step=tf.train.gradientdescentoptimizer(0.1).minimize(loss)#進行梯度計算以及反向傳播

init=tf.global_variables_initializer()

with tf.session() as sess:

sess.run(init)

for i in range(3000):

sess.run(train_step, feed_dict=)

if i % 100 == 0:

print(sess.run(loss, feed_dict=))

tensorflow安裝神坑

莫名的,我之前安裝的tensorflow又用不了了,並且不論怎麼重新安裝都會報錯。1.importerror dll load failed 找不到指定的模組。這個錯誤在我不停解除安裝不停重灌中一直存在,直到我在乙個博主安裝細節中找到 這一步網上有很多安裝方法,有pip的,有conda的。但是,大部...

Tensorflow實現乙個簡單的卷積神經網路

今天對照tensorflow的書,實現了乙個簡單的卷積神經網路。基於mnist資料集。在神經網路還未出現之前,在處理影象的問題上都是使用的特徵工程 如sift 特徵工程是有侷限性的。cnn被用於影象處理,不需要將特徵提取和分類訓練兩個過程分開,它在訓練時就自動提取了最有效的特徵。卷積神經網路由多個卷...

使用TensorFlow在瀏覽器中實現神經網路

什麼是神經網路 neural network 神經網路技術是通過電腦程式來從資料中學習,它是基於人類大腦學習的過程建立的。首先,建立神經元,然後鏈結在一起,互相傳送訊息 其次,網路是用來解決問題的,每次加強通往成功的鏈結,減弱通往失敗的鏈結。更詳細的神經網路介紹可以前往michael nielsen...