91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡單神經網絡train&test程序,python源碼

倩倩 ? 來源:ai昂鈦客angtk ? 2020-04-17 14:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. NN模型如下

神經網絡整體架構內容可參考之前的云筆記《06_神經網絡整體架構》

http://note.youdao.com/noteshare?id=2c27bbf6625d75e4173d9fcbeea5e8c1&sub=7F4BC70112524F9289531EC6AE435E14

其中,

n是指的樣本數

Mnist數據集 784是28×28×1 灰度圖 channel = 1

wb是指的權重參數

輸出的是10分類的得分值,也可以接softmax分類器

out是L2層和輸出層之間的關系

256 128 10是指的神經元數量

2. 構造參數

函數構造

3. Code

1. 網絡模型架構搭建

導入相應數據

import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltimport input_datamnist = input_data.read_data_sets('data/', one_hot=True)network topologies

# 網絡拓撲 network topologies# layer中神經元數量n_hidden_1 =256n_hidden_2 =128# 輸入數據的像素點 28x28x1n_input =784# 10分類n_classes =10input and output

x = tf.placeholder("float",[None,n_input])y = tf.placeholder("float",[None,n_classes])network parameters

# network parameters# 方差stddev =0.1# random_normal 高斯初始化weights ={'w1': tf.Variable(tf.random_normal([n_input,n_hidden_1],stddev=stddev)),'w2': tf.Variable(tf.random_normal([n_hidden_1,n_hidden_2],stddev=stddev)),'out': tf.Variable(tf.random_normal([n_hidden_2,n_classes],stddev=stddev))}# 對于 b 零值初始化也可以biases ={'b1': tf.Variable(tf.random_normal([n_hidden_1])),'b2': tf.Variable(tf.random_normal([n_hidden_2])),'out': tf.Variable(tf.random_normal([n_classes]))}print("Network Ready")output

NetworkReady可以看到網絡模型架構搭建成功

2.訓練網絡模型

定義前向傳播函數

# 定義前向傳播函數def multilayer_perceptron(_X, _weights, _biases):# 之所以加 sigmoid 是因為每一個 hidden layer 都有一個非線性函數layer_1 = tf.nn.sigmoid(tf.add(tf.matmul(_X, _weights['w1']), _biases['b1']))layer_2 = tf.nn.sigmoid(tf.add(tf.matmul(layer_1, _weights['w2']), _biases['b2']))return(tf.matmul(layer_2, _weights['out'])+ _biases['out'])反向傳播

(1)將前向傳播預測值

# predictionpred = multilayer_perceptron(x, weights, biases)(2)定義損失函數

# 首先定義損失函數 softmax_cross_entropy_with_logits 交叉熵函數# 交叉熵函數的輸入有 pred : 網絡的預測值 (前向傳播的結果)# y : 實際的label值# 將兩參數的一系列的比較結果,除以 batch 求平均之后的 loss 返回給 cost 損失值cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))(3)梯度下降最優(yōu)化

optm = tf.train.GradientDescentOptimizer(learning_rate =0.001).minimize(cost)(4)精確值

具體解釋詳見上一篇筆記《06_迭代完成邏輯回歸模型》

corr = tf.equal(tf.argmax(pred,1), tf.argmax(y,1))accr = tf.reduce_mean(tf.cast(corr,"float"))(5)初始化

# initializerinit = tf.global_variables_initializer()print("Function ready")output

Function ready可以看出傳播中的參數和優(yōu)化模型搭建成功

3. Train and Test

training_epochs =20# 每次 iteration 的樣本batch_size =100# 每四個 epoch 打印一次結果display_step =4# lanch the graphsess = tf.Session()sess.run(init)# optimizefor epoch in range(training_epochs):# 初始,平均 loss = 0avg_cost =0total_batch =int(mnist.train.num_examples/batch_size)# iterationfor i in range(total_batch):# 通過 next_batch 返回相應的 batch_xs,batch_ysbatch_xs, batch_ys = mnist.train.next_batch(batch_size)feeds ={x: batch_xs, y: batch_ys}sess.run(optm, feed_dict = feeds)avg_cost += sess.run(cost, feed_dict = feeds)avg_cost = avg_cost / total_batch# displayif(epoch+1)% display_step ==0:print("Epoch: %03d/%03d cost: %.9f "%(epoch, training_epochs, avg_cost))feeds ={x: batch_xs, y: batch_ys}train_acc = sess.run(accr, feed_dict = feeds)print("train accuracy: %.3f"%(train_acc))feeds ={x: mnist.test.images, y: mnist.test.labels}test_acc = sess.run(accr, feed_dict = feeds)print("test accuracy: %.3f"%(test_acc))print("optimization finished")output

Epoch:003/020 cost:2.273774184train accuracy:0.250test accuracy:0.197Epoch:007/020 cost:2.240329206train accuracy:0.270test accuracy:0.311Epoch:011/020 cost:2.203503076train accuracy:0.370test accuracy:0.404Epoch:015/020 cost:2.161286944train accuracy:0.490test accuracy:0.492Epoch:019/020 cost:2.111541148train accuracy:0.410test accuracy:0.534optimization finished20個batch每個batch 100個樣本,每隔4個batch打印一次

處理器Intel Core i5-6200U CPU @ 2.30GHz 2.04GHz

04 epoch:train+test, cost_time: 25’40”

08 epoch:train+test, cost_time: 50’29”

12 epoch:train+test, cost_time: 74’42”

16 epoch:train+test, cost_time: 98’63”

20 epoch:train+test, cost_time: 121’49”

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4419

    瀏覽量

    67691
  • 神經元
    +關注

    關注

    1

    文章

    369

    瀏覽量

    19187
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    為什么 VisionFive V1 板上的 JH7100 中并存 NVDLA 引擎和神經網絡引擎?

    我想知道為什么 VisionFive V1 板上的 JH7100 中并存 NVDLA 引擎和神經網絡引擎,請問?您能否舉一些關于他們的用例的例子?
    發(fā)表于 03-25 06:01

    神經網絡的初步認識

    日常生活中的智能應用都離不開深度學習,而深度學習則依賴于神經網絡的實現(xiàn)。什么是神經網絡?神經網絡的核心思想是模仿生物神經系統(tǒng)的結構,特別是大腦中神經
    的頭像 發(fā)表于 12-17 15:05 ?377次閱讀
    <b class='flag-5'>神經網絡</b>的初步認識

    自動駕駛中常提的卷積神經網絡是個啥?

    在自動駕駛領域,經常會聽到卷積神經網絡技術。卷積神經網絡,簡稱為CNN,是一種專門用來處理網格狀數據(比如圖像)的深度學習模型。CNN在圖像處理中尤其常見,因為圖像本身就可以看作是由像素排列成的二維網格。
    的頭像 發(fā)表于 11-19 18:15 ?2139次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經網絡</b>是個啥?

    CNN卷積神經網絡設計原理及在MCU200T上仿真測試

    數的提出很大程度的解決了BP算法在優(yōu)化深層神經網絡時的梯度耗散問題。當x&amp;amp;gt;0 時,梯度恒為1,無梯度耗散問題,收斂快;當x&amp;
    發(fā)表于 10-29 07:49

    NMSIS神經網絡庫使用介紹

    NMSIS NN 軟件庫是一組高效的神經網絡內核,旨在最大限度地提高 Nuclei N 處理器內核上的神經網絡的性能并最??大限度地減少其內存占用。 該庫分為多個功能,每個功能涵蓋特定類別
    發(fā)表于 10-29 06:08

    在Ubuntu20.04系統(tǒng)中訓練神經網絡模型的一些經驗

    本帖欲分享在Ubuntu20.04系統(tǒng)中訓練神經網絡模型的一些經驗。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓練框架,目標是訓練一個手寫數字識別的神經網絡
    發(fā)表于 10-22 07:03

    CICC2033神經網絡部署相關操作

    在完成神經網絡量化后,需要將神經網絡部署到硬件加速器上。首先需要將所有權重數據以及輸入數據導入到存儲器內。 在仿真環(huán)境下,可將其存于一個文件,并在 Verilog 代碼中通過 readmemh 函數
    發(fā)表于 10-20 08:00

    液態(tài)神經網絡(LNN):時間連續(xù)性與動態(tài)適應性的神經網絡

    1.算法簡介液態(tài)神經網絡(LiquidNeuralNetworks,LNN)是一種新型的神經網絡架構,其設計理念借鑒自生物神經系統(tǒng),特別是秀麗隱桿線蟲的神經結構,盡管這種微生物的
    的頭像 發(fā)表于 09-28 10:03 ?1381次閱讀
    液態(tài)<b class='flag-5'>神經網絡</b>(LNN):時間連續(xù)性與動態(tài)適應性的<b class='flag-5'>神經網絡</b>

    神經網絡的并行計算與加速技術

    隨著人工智能技術的飛速發(fā)展,神經網絡在眾多領域展現(xiàn)出了巨大的潛力和廣泛的應用前景。然而,神經網絡模型的復雜度和規(guī)模也在不斷增加,這使得傳統(tǒng)的串行計算方式面臨著巨大的挑戰(zhàn),如計算速度慢、訓練時間長等
    的頭像 發(fā)表于 09-17 13:31 ?1199次閱讀
    <b class='flag-5'>神經網絡</b>的并行計算與加速技術

    基于神經網絡的數字預失真模型解決方案

    在基于神經網絡的數字預失真(DPD)模型中,使用不同的激活函數對整個系統(tǒng)性能和能效有何影響?
    的頭像 發(fā)表于 08-29 14:01 ?3539次閱讀

    無刷電機小波神經網絡轉子位置檢測方法的研究

    摘要:論文通過對無刷電機數學模型的推導,得出轉角:與三相相電壓之間存在映射關系,因此構建了一個以三相相電壓為輸人,轉角為輸出的小波神經網絡來實現(xiàn)轉角預測,并采用改進遺傳算法來訓練網絡結構與參數,借助
    發(fā)表于 06-25 13:06

    神經網絡專家系統(tǒng)在電機故障診斷中的應用

    摘要:針對傳統(tǒng)專家系統(tǒng)不能進行自學習、自適應的問題,本文提出了基于種經網絡專家系統(tǒng)的并步電機故障診斷方法。本文將小波神經網絡和專家系統(tǒng)相結合,充分發(fā)揮了二者故障診斷的優(yōu)點,很大程度上降低了對電機
    發(fā)表于 06-16 22:09

    神經網絡RAS在異步電機轉速估計中的仿真研究

    眾多方法中,由于其結構簡單,穩(wěn)定性好廣泛受到人們的重視,且已被用于產品開發(fā)。但是MRAS仍存在在低速區(qū)速度估計精度下降和對電動機參數變化非常敏感的問題。本文利用神經網絡的特點,使估計更為簡單、快速
    發(fā)表于 06-16 21:54

    基于FPGA搭建神經網絡的步驟解析

    本文的目的是在一個神經網絡已經通過python或者MATLAB訓練好的神經網絡模型,將訓練好的模型的權重和偏置文件以TXT文件格式導出,然后通過python
    的頭像 發(fā)表于 06-03 15:51 ?1383次閱讀
    基于FPGA搭建<b class='flag-5'>神經網絡</b>的步驟解析

    NVIDIA實現(xiàn)神經網絡渲染技術的突破性增強功能

    近日,NVIDIA 宣布了 NVIDIA RTX 神經網絡渲染技術的突破性增強功能。NVIDIA 與微軟合作,將在 4 月的 Microsoft DirectX 預覽版中增加神經網絡著色技術,讓開
    的頭像 發(fā)表于 04-07 11:33 ?1278次閱讀