1. 程式人生 > >神經網路之多層感知機MLP的實現(Python+TensorFlow)

神經網路之多層感知機MLP的實現(Python+TensorFlow)

用 MLP 實現簡單的MNIST資料集識別。

# -*- coding:utf-8 -*-
#
# MLP

"""
MNIST classifier, 多層感知機實現
"""

# Import data
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf

mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

sess = tf.InteractiveSession()


# Create the model, 只有一層隱藏層
in_units = 784
h1_units = 300
W1 = tf.Variable(tf.truncated_normal([in_units, h1_units], stddev=0.1))
b1 = tf.Variable(tf.zeros([h1_units]))
W2 = tf.Variable(tf.zeros([h1_units, 10]))
b2 = tf.Variable(tf.zeros([10]))

x = tf.placeholder(tf.float32, [None, in_units])
keep_prob = tf.placeholder(tf.float32)

hidden1 = tf.nn.relu(tf.matmul(x, W1) + b1)
hidden1_drop = tf.nn.dropout(hidden1, keep_prob)
y = tf.nn.softmax(tf.matmul(hidden1_drop, W2) + b2)


# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
##train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy)


# Train
tf.global_variables_initializer().run()
for i in range(3000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  train_step.run({x:batch_xs, y_:batch_ys, keep_prob:0.75})

# Test trained model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))


相關推薦

神經網路感知MLP實現Python+TensorFlow

用 MLP 實現簡單的MNIST資料集識別。 # -*- coding:utf-8 -*- # # MLP """ MNIST classifier, 多層感知機實現 """ # Import

深度學習基礎--不同網路種類--感知MLP

多層感知機MLP   BP演算法的方面掀起了基於統計模型的機器學習熱潮,那時候人工神經網路被叫做“多層感知機”   可以擺脫早期離散傳輸函式的束縛,使用sigmoid或tanh等連續函式模擬神經元對激勵的響應,在訓練演算法上則使用Werbos發明的反向傳播B

單層神經網路感知、深度學習的總結

關於神經網路的幾點思考:單層——多層——深度 神經網路本質上是一個逼近器,一個重要的基本屬性就是通用逼近屬性。 通用逼近屬性: 1989年,George Cybenko發表文章“Approximation by Superpositions of a Sigmoidal

TensorFlow-感知(MLP)

訓練 感知 set equal () closed batch BE lac TensorFlow訓練神經網絡的4個步驟: 1、定義算法公式,即訓練神經網絡的forward時的計算 2、定義損失函數和選擇優化器來優化loss 3、訓練步驟 4、對模型進行準確率評測 附Mul

gluon 實現感知MLP分類FashionMNIST

from mxnet import gluon,init from mxnet.gluon import loss as gloss, nn from mxnet.gluon import data as gdata from mxnet import nd,autograd import gl

MXNet實戰感知

這是來自MXNet官網裡面的一個例子,利用module包[1]來構建一個多層感知機,並在UCI letter recognition[2]中進行訓練。利用module包來訓練網路,可以採用兩種介面:中層介面和高層介面。高層介面可以看做是對中層介面的一種封裝。 其

tensorflow 感知MLP

tf.nn.dropout(x, keep_prob) x:指輸入 keep_prob: 設定神經元被選中的概率 import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from te

感知MLP

關於感知機: 1.      什麼是感知機(perceptron)  感知機是最簡單的神經網路,具備神經網路的必備要素。感知機也稱為感知器,是一種雙層神經網路,即只有輸入層和輸出層而沒有隱層的神經網路。  感知機是一種二類分類的線性分類器,其輸入為例項的特徵向量,輸出為例項

TensorFlow學習筆記(二):手寫數字識別感知

在【TensorFlow學習筆記(一):手寫數字識別之softmax迴歸】中: 我使用softmax迴歸演算法識別mnist資料集的手寫數字,在我機器上的mnist測試集上最好結果是 92.9% 。

MXnet程式碼實戰感知

多層感知機介紹 多層感知器(MLP,Multilayer Perceptron)是一種前饋人工神經網路模型。與上文提到的多類邏輯迴歸非常相似,主要區別在:輸入層和輸出層之間插入了一個到多個隱含層。 如下圖,黃色的點為輸入層,中間為隱含層,綠色的點為輸出層:

深度學習:感知MLP數字識別的程式碼實現

深度學習我看的是neural network and deep learning 這本書,這本書寫的真的非常好,是我的導師推薦的。這篇部落格裡的程式碼也是來自於這,我最近是在學習Pytorch,學習的過程我覺得還是有必要把程式碼自己敲一敲,就像當初學習機器學習一

感知原理詳解 & Python與R實現

    轉載自:https://www.cnblogs.com/feffery/p/8996623.html ;    部落格園網站“費弗裡”博主的《資料科學學習手札34》    因作者正在進行電力使用者短期負荷預測方向學習,正遇到了多層感知機的應用問題,所以搜到部落格園中費

從頭學pytorch(五) 感知及其實現

多層感知機 上圖所示的多層感知機中,輸入和輸出個數分別為4和3,中間的隱藏層中包含了5個隱藏單元(hidden unit)。由於輸入層不涉及計算,圖3.3中的多層感知機的層數為2。由圖3.3可見,隱藏層中的神經元和輸入層中各個輸入完全連線,輸出層中的神經元和隱藏層中的各個神經元也完全連線。因此,多層感知機

用pytorch實現感知MLP)全連線神經網路FC分類MNIST手寫數字體的識別

1.匯入必備的包 1 import torch 2 import numpy as np 3 from torchvision.datasets import mnist 4 from torch import nn 5 from torch.autograd import Variable 6

深度學習基礎—— 從感知MLP到卷積神經網路CNN

經典的多層感知機(Multi-Layer Perceptron)形式上是全連線(fully-connected)的鄰接網路(adjacent network)。 That is, every neuron in the network is connec

keras中使用MLP(感知)神經網路實現MNIST手寫體識別

    Keras是一個基於python的的深度學習框架,比tensorflow更簡單易用,適合入門學習,本篇文章主要介紹使用keras實現手寫體識別任務。環境為python3+,Keras2.1,神經網路基礎知識在此不做過多介紹。    1.    載入MNIST資料。方式

MLP感知人工神經網路原理及程式碼實現

一、多層感知機(MLP)原理簡介多層感知機(MLP,Multilayer Perceptron)也叫人工神經網路(ANN,Artificial Neural Network),除了輸入輸出層,它中間可以有多個隱層,最簡單的MLP只含一個隱層,即三層的結構,如下圖:從上圖可以看

【機器學習筆記21】神經網路感知)

【參考資料】 【1】《深度學習》 花書 6.1 亦或問題 由於單層感知機相當於在一個空間增加了一個超平面進行分類,那麼對於像亦或問題這樣的情況則無法完成。 因此在多層感知機中增加了一個隱藏層,即一個啟用函式。現代神經網路最常用的啟用函式是整流線性單元,ReL

基於神經網路感知識別手寫數字

資料集是經典的MNIST,來自美國國家標準與技術研究所,是人工書寫的0~9數字圖片,圖片的畫素為28*28,圖片為灰度圖。MNIST分別為訓練集和測試集,訓練資料包含6萬個樣本,測試資料集包含1萬個樣本。使用Tensorflow框架載入資料集。 載入資料集的程式碼如下: import ten