#該神經網路有x1,x2兩個輸入#隱藏層有3個神經元 所以w1為2*3矩陣
#輸出只有乙個y 所以w2為3*1 矩陣
import tensorflow as tf
import os
os.environ['tf_cpp_min_log_level'] = '2'
import numpy as np
batch_size = 8
seed=23455
#基於seed產生隨機數
rng =np.random.randomstate(seed)
#隨機數返回32行2列的矩陣 表示32組資料
x=rng.rand(32,2)
y=[[int(x0+x1 < 1)] for (x0,x1) in x] #x,y代表資料集的data和label
#定義神經網路的輸入、引數和輸出,定義前向傳播過程
x=tf.placeholder(tf.float32,shape=(none,2)) #placeholder 佔位
y_=tf.placeholder(tf.float32,shape=(none,1))
w1=tf.variable(tf.random_normal([2,3],stddev=1,seed=1)) # 2*3
w2=tf.variable(tf.random_normal([3,1],stddev=1,seed=1))#隨機生產w值 3*1
a=tf.matmul(x,w1) #隱藏層神經元a
y=tf.matmul(a,w2) #最終輸出y值,只有乙個1*1矩陣
#定義損失函式及反向傳播方法
loss=tf.reduce_mean(tf.square(y-y_)) #loss函式 均方誤差y-y_(**值和訓練集的差值)
train_step=tf.train.gradientdescentoptimizer(0.001).minimize(loss) #選擇梯度下降,定義學習率 優化 最小化損失函式
#生成會話,訓練steps輪
with tf.session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
#訓練模型
steps=3000 #迭代次數,每500次列印一次loss值,loss會逐漸減小
for i in range(steps):
start = (i*batch_size)%32
end=start + batch_size
sess.run(train_step,feed_dict=)
if i%500==0:
total_loss=sess.run(loss,feed_dict=)
print(i)
print(total_loss)
#得到優化後的引數
print(sess.run(w1))
#用訓練集訓練得到最好的w後,再輸入需要**的x1,x2資料
tensorflow中:
張量、計算圖、生成會話(三個步驟)
最後的神經網路實現需要乙個迭代迴圈
Tensorflow實現乙個簡單的卷積神經網路
今天對照tensorflow的書,實現了乙個簡單的卷積神經網路。基於mnist資料集。在神經網路還未出現之前,在處理影象的問題上都是使用的特徵工程 如sift 特徵工程是有侷限性的。cnn被用於影象處理,不需要將特徵提取和分類訓練兩個過程分開,它在訓練時就自動提取了最有效的特徵。卷積神經網路由多個卷...
tensorflow安裝神坑
莫名的,我之前安裝的tensorflow又用不了了,並且不論怎麼重新安裝都會報錯。1.importerror dll load failed 找不到指定的模組。這個錯誤在我不停解除安裝不停重灌中一直存在,直到我在乙個博主安裝細節中找到 這一步網上有很多安裝方法,有pip的,有conda的。但是,大部...
使用TensorFlow在瀏覽器中實現神經網路
什麼是神經網路 neural network 神經網路技術是通過電腦程式來從資料中學習,它是基於人類大腦學習的過程建立的。首先,建立神經元,然後鏈結在一起,互相傳送訊息 其次,網路是用來解決問題的,每次加強通往成功的鏈結,減弱通往失敗的鏈結。更詳細的神經網路介紹可以前往michael nielsen...