tensorflow實現多層感知機

2021-09-23 11:08:32 字數 1632 閱讀 2624

'''tensorflow 多層感知機識別手寫數字''

#匯入資料

import tensorflow as tf

import tensorflow.tutorials.minist.input_data as input_data

minist=input_data.read_datasets('mnist_data/',one_hot=true)

#使用layer函式

def layer(output_dim,input_dim,inputs,activation=none):

w=tf.variable(tf.random_normal([input_dim,ouput_dim]))

b=tf.variable(tf.random_normal([1,output_dim]))

xwb=tf.matmul(inputs,w)+b

if activation is none:

outputs=xwb

else:

outputs=activation(xwb)

return ouputs

#建立輸入層

x=tf.placeholder('float',[none,784])

#建立隱藏層

h1=layer(out_dim=256,input_dim=784,inputs=x,activation=tf.nn.relu)

#建立輸出層

y_predict=layer(output_dim=10,input_dim=256,inputs=h1,activation=none)

'''定義訓練方式'''

#建立訓練資料label真實值的placeholder

y_label=tf.placeholder('float',[none,10])

#定義損失函式

loss_function=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_predict,labels=y_label))

#定義優化器

optimizer=tf.train.adamoptimizer(learning_rate=0.001).minimize(loss_function)

'''定義評估模型準確率的方式'''

correct_prediction=tf.equal(tf.argmax(y_label,1),tf.argmax(y_predict,1))

#計算**結果正確結果的平均值

accurary=tf.reduce_mean(tf.cast(correct_prediction,'float'))

trainepochs=15

batchsize=100

loss_list=;epoch_list=;accurary_list=

from time import time

starttime=time()

sess=tf.session()

sess.run(tf.global_variables_initializer())

for epoch in range(trainepochs):

for i in range(totalbatchs):

###未完待續####

《tensorflow實戰》之實現多層感知器(二)

理論研究表明,神經網路隱含層,層數越多,所需要的隱含節點可以越少。有一種方法叫dropout,在使用複雜的卷積神經網路訓練影象資料時尤其有效,簡單說,就是將神經網路某一層的輸出節點資料隨機丟棄一部分。實質上等於創造出了很多新的隨機樣本,通過增大樣本量 減少特徵數量來防止過擬合。拿sgd來舉例,不同的...

Tensorflow實戰4 多層感知機

1.多層感知機簡介 多層感知機 multi layer perceptron,mlp 又叫做多層神經網路。如果使用的是沒有隱含層的神經網路,那麼這樣的神經網路只能解決一些線性可分的問題,但是在實際的生活中,很多問題並不是線性可分的,例如xor函式問題,在這個特徵空間中,這就是乙個線性不可分問題,我們...

tensorflow 啟用函式,多層感知器

啟用函式 1.relu 遮蔽掉 為0的 2.sigmoid 輸出範圍 x軸靠近0,梯度變化大,遠離0的時候,就變化很小 3.tanh 範圍 1 到 1 4.leak relu import tensorflow as tf import numpy as np import pandas as pd...