TensorFlow 實現簡單神經網路

2021-08-29 01:41:37 字數 1675 閱讀 8284

#該神經網路有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...