'''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...