搭建乙個簡單的神經網路

2021-08-20 18:37:20 字數 2082 閱讀 9499

」』def add_layer():最基礎的四個引數:輸入值,輸入的大小,輸出的大小和激勵函式,激勵函式可以自己新增,也可以不使用激勵函式。」』

def

add_layer

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

接下來我們定義weight和biases

weight=tf.variable(tf.random_normal([in_size,out_size]))

'''如果在前向傳播中,需要對weigjt加入正則化,可以這麼表示

w=tf.variable(tf.random_normal([shape],dtpye=tf.float32))

tf.add_to_collection(losses'.tf.contrib.layer.l2_regularizer(regularizer)(w))#給每個w加乙個權重,可以減小誤差,防止過擬合,regulaizer表示數字'''

biases=tf.variable(tf.zero[1,out_size]+0.1)

機器學習中biases的值不推薦為0

wx_plus_b=tf.matmul(iinput,weight)+biases

if activation_function is

none:

outputs=wx_plus_b

else:

outputs=activation_function(wx_plus_b)

return putputs

#搭建好乙個普通的神經網路後,我們先構建好我們的train data,本次的traindata使用的是莫煩構建的資料集,構建好的x與y並不是嚴格的一元二次的函式關係,看起來更加真實

x_data=np.linspace』(-1,1,300,dtype=tf.float32)[;,np.newaxis]

noise=tf.random_normal([x_data.shape],dtype=tf.float32)

y_data=np.square(x_data)-0.5+noise

#我們使用佔位符來表示我們神經網路的輸入和輸出

xs=tf.placeholder(tf.float32,[none,1])

#引數輸入的格式為tf.float32,和資料的格式,none表示輸入多少都可以,因為只有乙個特徵,所以是1

ys=tf.placeholder(tf.float32,[none,1])

'''一般計算神經網路的層數都是從隱藏層+輸出層,輸入層一般表示一組資料或者一組之類的東西'''

l=add_layer(xs,1,10,activation_function=tf.nn

.relu)

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

#計算損失函式

loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))

train_step=tf.train

.gradientdescentoptimizer(0.1).minmize(loss)

#對變數的初始化

init=tf.global_variables_initializer()

with tf.session() as sess:

sess.run(init)

step=1000

#我們把訓練步數設定為1000

for i in range(step):

sess.run(train_stpe,feed_dict=)

if i%50==0:

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

#根據我的觀察,**用到了xs與ys,**就需要feed喂一下資料

總結:這是乙個最普通的神經網路,其中資料都是自己生成的,如果需要優化的話,loss的學習率可以用指數衰減學習率(學習率隨著訓練輪數變化而動態更新)以及正則化的方法來防止過擬合現象的發生

搭建乙個簡單的神經網路

搭建乙個簡單二分類神經網路。乙個簡單的三層網路,包括輸入層,隱層,輸出層。反向傳播迭代更新。軟體 pycharm python version 3.7 import numpy as np class neuralnetwork def init self pass 實現sigmode函式,同時通過...

搭建乙個簡單的卷積神經網路

神經網路的基本組成單元是神經元,在數學上的神經元模型是和在生物學上的神經細胞對應的。人工神經網路理論是用神經元這種抽象的數學模型來描述客觀世界的生物細胞的。例如隨機產生32組生產出的零件的體積和重量,訓練3000輪,每500輪輸出一次損失函式 1 匯入模型,生成模擬資料集 import tensor...

簡單搭建神經網路

簡單的神經網路 準備,前傳,後傳,迭代 下面是乙個簡單的神經網路搭建的 coding utf 8 import tensorflow as tf import numpy as np batch size 8 seed 23455 基於seed產生隨機數 rng np.random.randomst...