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...