建造神經網路

2021-10-07 02:27:26 字數 1860 閱讀 3972

import tensorflow as tf

import numpy as np

#保證sess.run()能夠正常執行

tf.compat.v1.disable_eager_execution()

#定義新增層

#in_size,out_size輸入單位輸出單位大小

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

weights = tf.variable(tf.random.normal([in_size,out_size]))#矩陣 #tf.random.normal生成隨機數

biases = tf.variable(tf.zeros([1,out_size]) + 0.1)#列表

wx_plus_b = tf.matmul(inputs,weights) + biases

if activation_function is none:

outputs = wx_plus_b

else:

outputs = activation_function(wx_plus_b)

return outputs

#生成訓練的資料

#維度[:,np.newaxis],構造列矩陣 #建立等差數列

x_data = np.linspace(-1,1,300)[:,np.newaxis].astype(『float32』)

#noise是不完全符合y=x*x -0.5,更像真實資料

noise = np.random.normal(0,0.05,x_data.shape)#np.random.normal是乙個正態分佈

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

#定義節點準備接收資料

xs=tf.compat.v1.placeholder(tf.float32,[none,1])#[none,1]行不定,列為1,可以理解為列向量

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

#l1 隱藏層

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

#prediction 輸出層

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

#reducition_indices=[1]按列求和 reducition_indices=[0]按行求和

#設定引數

loss = tf.reduce_mean(tf.compat.v1.reduce_sum(tf.square(ys - prediction),

reduction_indices=[1]))

#定義反向傳播演算法(使用梯度下降演算法訓練)選擇 optimizer 使 loss 達到最小 學習效率0.1(一般小於1)

train_step = tf.compat.v1.train.gradientdescentoptimizer(0.1).minimize(loss)

init = tf.compat.v1.initialize_all_variables()

#會話控制

sess=tf.compat.v1.session()

sess.run(init)

#訓練1000次

for i in range(1000):

sess.run(train_step,feed_dict=)

if i % 50 ==0:

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

#注意placeholder和feed_dict是繫結用的

建造神經網路

import tensorflow as tf import numpy as np def add layer inputs,input size,output size,activation function none weights tf.variable tf.random normal i...

TensorFlow教程 3 建造神經網路

定義新增神經層的函式def add layer 它有四個引數 輸入值 輸入的大小 輸出的大小和激勵函式,我們設定預設的激勵函式是none。def add layer inputs,in size,out size,activation function none 我們設定預設的激勵函式是none。w...

神經網路 卷積神經網路

這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...