網(wǎng)絡(luò)程序設(shè)計-神經(jīng)網(wǎng)絡(luò)實現(xiàn)醫(yī)療圖片識別及預(yù)測

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? by SA16225335,吳倩? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

一 簡介

? ? ? 2016年科大網(wǎng)絡(luò)程序設(shè)計課程即將結(jié)束莉测,筆者在這里寫下人生的第一篇博客讶泰,來總結(jié)一下這門課程給我?guī)淼膯l(fā)和提升,并且作為人生的又一個起點開始生命的下一次征程庭猩。首先在這里要感謝孟寧老師的教導(dǎo)帅刊,孟寧老師在課程中一反常態(tài)纸泡,并沒有使用傳統(tǒng)的上課授課的方式,而是采用項目驅(qū)動的方法赖瞒,由學(xué)生在老師的帶動下主動開發(fā)女揭,在這門課程中,班里70多個學(xué)生共同完成了這個項目栏饮。作為一個菜鳥吧兔,我必須慚愧的承認(rèn)我對這個項目并沒有什么直接的貢獻(xiàn),只在PPT知識共享時袍嬉,對Theano框架的知識進(jìn)行了共享境蔼≡钇剑“林花謝了春紅,太匆匆箍土,無奈朝來寒雨晚來風(fēng)”逢享,時光總是匆匆,在這門課中涮帘,我完整的學(xué)習(xí)了python語法拼苍,理解了關(guān)于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的原理,并且對CNN调缨,RNN,深度學(xué)習(xí)框架及圖像處理有了一定的了解吆你。在這個寒假弦叶,我將繼續(xù)學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的相關(guān)知識。堅持總會有結(jié)果妇多,明年我會繼續(xù)選修孟寧老師的高軟課程伤哺,定跟上老師步伐≌咦妫總之立莉,感謝老師讓我踏入新世界的大門。


二 什么是深度學(xué)習(xí)

? ? ? ?Andrew Ng曾經(jīng)說過“我們相信(神經(jīng)網(wǎng)絡(luò)代表的深度學(xué)習(xí))是讓我們獲得最接近于人工智能的捷徑”七问。這就是我們要學(xué)習(xí)深度學(xué)習(xí)的重要的原因蜓耻。相對于網(wǎng)絡(luò)上一提到神經(jīng)網(wǎng)絡(luò)就會提到的反向傳播,激活函數(shù)械巡,特征基向量刹淌,卷積神經(jīng)網(wǎng)絡(luò),筆者在這里想用自己淺薄的知識來談?wù)勛约簩ι窠?jīng)網(wǎng)絡(luò)的理解讥耗。

? ? ? 我在接觸神經(jīng)網(wǎng)絡(luò)之前有勾,曾看過一個關(guān)于對生物體大腦形象化的描述,人的大腦中有成千上億的神經(jīng)元細(xì)胞(甚至更多)古程,它們都長著像電線一樣的軸突蔼卡,神經(jīng)元在我們的大腦中構(gòu)成一個網(wǎng)狀結(jié)構(gòu),當(dāng)人們對外部事件進(jìn)響應(yīng)時挣磨,神經(jīng)元細(xì)胞會產(chǎn)生興奮也就是化學(xué)信號順著神經(jīng)元的網(wǎng)狀結(jié)構(gòu)進(jìn)行傳播雇逞,最終產(chǎn)生人的各種反應(yīng)趋急。以上相應(yīng)凡有高中學(xué)歷的大家都了解整個過程喝峦,故而不進(jìn)行詳述呜达。而進(jìn)行深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)谣蠢,就是根據(jù)大腦的反饋機(jī)構(gòu)進(jìn)行設(shè)計的。最簡單的神經(jīng)網(wǎng)絡(luò)一般有三層,第一層是輸入層眉踱,第二層是隱藏層挤忙,第三層是輸出層,第一層輸入數(shù)據(jù)后谈喳,隱藏層根據(jù)自己神經(jīng)上的比重對輸入層數(shù)據(jù)進(jìn)行自己的處理册烈,最后在第三層輸出層進(jìn)行輸出。我們把神經(jīng)網(wǎng)絡(luò)假設(shè)為一個小孩婿禽,在他的成長過程中赏僧,他將不斷的接收到各種各樣的信息,而神經(jīng)網(wǎng)絡(luò)也是如此扭倾,我們不斷的用各種數(shù)據(jù)訓(xùn)練它淀零,是他在隱藏層的每個分支都有不同的權(quán)重,在訓(xùn)練過程中膛壹,權(quán)重不斷的變化驾中,當(dāng)訓(xùn)練集達(dá)到一個數(shù)量時,會得到一個相對穩(wěn)定的權(quán)重模聋,這就如同大腦中的電信號傳播一樣肩民,每個神經(jīng)元都帶著不同大小的神經(jīng)信號,最后形成人的各種反應(yīng)链方,而神經(jīng)網(wǎng)絡(luò)也是如此持痰。我們不斷的訓(xùn)練它,使它不斷的糾正自己侄柔,最后實現(xiàn)預(yù)測功能共啃。


三 關(guān)于Theano的學(xué)習(xí)

3.1 Theano定義

Theano是一個Python庫,專門用于定義暂题、優(yōu)化移剪、求值數(shù)學(xué)表達(dá)式,效率高薪者,適用于多維數(shù)組纵苛。Theano是一個Python庫,用于定義言津、優(yōu)化攻人、求值數(shù)學(xué)表達(dá)式,即簡單來說悬槽,它就是一個代數(shù)符號系統(tǒng)怀吻。在數(shù)學(xué)表達(dá)式中的一個符號就是一個variable對象,對象之間用加減乘除等操作符連接起來初婆,就變成一個圖蓬坡,成為graph.在將theano運用于神經(jīng)網(wǎng)絡(luò)時猿棉,就是將網(wǎng)絡(luò)表示成一個巨大的公式。比如z=x+y這樣的表達(dá)式屑咳,就會組成成下面的圖萨赁。


代碼編寫如下:

import theano

from theano import tensor

# declare two symbolic floating-point scalars

a = tensor.dscalar()

b = tensor.dscalar()

# create a simple expression

c = a + b

# convert the expression into a callable object that takes (a,b)

# values as input and computes a value for c

f = theano.function([a,b], c)

# bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c'

assert 4.0 == f(1.5, 2.5)

3.2 使用Theano的優(yōu)勢

1.使研究深度學(xué)習(xí)的各位們減少花在推導(dǎo)數(shù)和實現(xiàn)算法上的精力。

2.? 緊密集成Numpy兆龙,在Theano的編譯函數(shù)中使用numpy.ndarray

3.透明的使用Gpu杖爽,使得執(zhí)行數(shù)據(jù)密集型的計算速度高達(dá)CPU的140倍

4.高效的符號分解---替你計算一個或多個輸入函數(shù)的推導(dǎo)

5.速度和穩(wěn)定性優(yōu)化

6.動態(tài)生成C語言代碼,計算表達(dá)式更快速

7.廣泛的單元測試和自我驗證紫皇,能檢測和診斷許多類型的錯誤

8.讓你輕松的編寫Deep Learning模型慰安,并提供運行在GPU上的選擇,他使得構(gòu)建學(xué)習(xí)模型更加容易

3.3 為什么使用Theano

1.深度學(xué)習(xí)最好使用一些庫坝橡,比如Theano泻帮。主要是因為反向傳播調(diào)整參數(shù)時,需要求導(dǎo)计寇。鏈?zhǔn)角髮?dǎo)本身沒有難處。

但是深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計的比較復(fù)雜脂倦,層數(shù)又多(15層不是夢)番宁。

在隱藏層多的神經(jīng)網(wǎng)絡(luò)中,推導(dǎo)公式不忍直視,人工求導(dǎo)顯然不是明智的赖阻。

Theano提供了grad梯度函數(shù)蝶押,自動根據(jù)表達(dá)式求一階導(dǎo)數(shù),grad(cost,param)火欧,其中cost函數(shù)可以是一個超長超長的表達(dá)式棋电。

param則可以是一個超大超大的數(shù)組或是矩陣。

顯然苇侵,有了grad函數(shù)赶盔,我們可以專心設(shè)計正向傳播的I/O,反向傳播只要一個grad函數(shù)即可榆浓。省去了復(fù)雜的公式推導(dǎo)

2.使用Python組織邏輯于未,C編譯執(zhí)行,CUDA并行加速計算陡鹃,是非常好的實驗平臺烘浦。

它的庫源碼中包含大量注釋,并且提供深度學(xué)習(xí)的幾個基本模型的代碼實現(xiàn)文檔萍鲸。

每篇文檔都采用paper的形式闷叉,集中了許多大牛的論文的精華、各種小trick脊阴,也給出了論文的具體引用握侧,方便按圖索驥蚯瞧。

CUDA(Compute Unified Device Architecture),顯卡廠商N(yùn)Vidia推出的運算平臺藕咏。 CUDA?是一種由NVIDIA推出的通用并行計算架構(gòu)状知,該架構(gòu)使GPU能夠解決復(fù)雜的計算問題。 它包含了CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計算引擎孽查。

3.4 原理介紹

在Theano中饥悴,每個可導(dǎo)運算都帶有一個grad函數(shù),對應(yīng)于圖中每一步單獨的求導(dǎo)(邊)盲再。比如 theano.tensor.nnet.sigmoid :

def grad(self, inp, grads):

x, = inp

gz, = grads

y = scalar_sigmoid(x)

rval = gz * y * (1.0 - y)

assert rval.type.dtype.find('float') != -1

return [rval]

對所有可導(dǎo)運算使用鏈?zhǔn)椒▌t西设,即在圖中沿著邊和節(jié)點傳播,就求出了最后我們想要的導(dǎo)數(shù)答朋。整個過程大抵如此贷揽,細(xì)節(jié)部分可以翻看一下這篇博客。http://colah.github.io/posts/2015-08-Backprop/

3.5 原理介紹

Theano基于Python的面向?qū)ο竺瓮耄运纳窠?jīng)網(wǎng)絡(luò)也是基于面向?qū)ο蟮乃悸啡懙摹?br>

【對象】

它認(rèn)為禽绪,淺層網(wǎng)絡(luò)的中分類器,深度網(wǎng)絡(luò)中的每個層洪规,都是一個對象印屁。

在這個對象里,你被指定了輸入格式斩例,你只需要做兩件事:

根據(jù)格式雄人,定義參數(shù)、定義輸出念赶。

【數(shù)據(jù)讀入/處理】

從文件讀入數(shù)據(jù)础钠,并且對數(shù)據(jù)進(jìn)行全局分享處理(shared)

theano.tensor中封裝的著大量的惰性函數(shù)。這些惰性函數(shù)叉谜,在Python里是不會執(zhí)行的旗吁。需要在theano.function()里執(zhí)行。

【主過程:前向傳播構(gòu)建&反向傳播迭代】

創(chuàng)建各個神經(jīng)網(wǎng)絡(luò)層正罢、分類器的實例對象阵漏,由I/O首尾相連,最后利用分類器構(gòu)建cost函數(shù)翻具,完成前向傳播履怯。

利用各個層對象的參數(shù)、cost函數(shù)裆泳,構(gòu)建梯度表達(dá)式叹洲,以及updates列表。

為訓(xùn)練集工禾、驗證集运提、測試集創(chuàng)建以theano.function()為殼的模型蝗柔。

使用mini-batch梯度法分批訓(xùn)練訓(xùn)練集,測試驗

3.6 編程基礎(chǔ)

theano.tensor常用數(shù)據(jù)類型

學(xué)習(xí)theano民泵,首先要學(xué)的就是theano.tensor使用癣丧,其是基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),功能類似于Python.numpy栈妆,教程網(wǎng)站為:http://deeplearning.Net/software/theano/library/tensor/basic.html

在theano.tensor數(shù)據(jù)類型中胁编,有double、int鳞尔、uchar嬉橙、float等各種類型,不過我們最常用到的是int和float類型寥假,float是因為GPU一般是float32類型市框,所以在編寫程序的時候,我們很少用到double糕韧,常用的數(shù)據(jù)類型如下:

數(shù)值:iscalar(int類型的變量)枫振、fscalar(float類型的變量)

一維向量:ivector(int 類型的向量)、fvector(float類型的向量)萤彩、

二維矩陣:fmatrix(float類型矩陣)蒋得、imatrix(int類型的矩陣)

三維float類型矩陣:ftensor3

四維float類型矩陣:ftensor4

其它類型只要把首字母變一下就可以了,更多類型請參考:http://deeplearning.net/software/theano/library/tensor/basic.html#theano.tensor.TensorV

3.7 編程實例

實例1:

import theano

x=theano.tensor.iscalar('x')#聲明一個int類型的變量x

y=theano.tensor.pow(x,3)#定義y=x^3

f=theano.function([x],y)#定義函數(shù)的自變量為x(輸入)乒疏,因變量為y(輸出)

print f(2)#計算當(dāng)x=2的時候,函數(shù)f(x)的值

print f(4)#計算當(dāng)x=4時饮焦,函數(shù)f(x)=x^3的值

實例2:

import theano

x =theano.tensor.fscalar('x')#定義一個float類型的變量x

y= 1 / (1 + theano.tensor.exp(-x))#定義變量y

f= theano.function([x],y)#定義函數(shù)f怕吴,輸入為x,輸出為y

print f(3)#計算當(dāng)x=3的時候县踢,y的值

例3:function使用示例

我們再看一個多個自變量转绷、同時又有多個因變量的函數(shù)定義例子:

import theano

x, y =theano.tensor.fscalars('x', 'y')

z1= x + y

z2=x*y

f =theano.function([x,y],[z1,z2])#定義x备蚓、y為自變量随闽,z1、z2為函數(shù)返回值(因變量)

print f(2,3)#返回當(dāng)x=2埋市,y=3的時候谴返,函數(shù)f的因變量z1煞肾,z2的值 為x,輸出為y

print f(3)#計算當(dāng)x=3的時候嗓袱,y的值

3.8 學(xué)習(xí)深度學(xué)習(xí)必須要學(xué)習(xí)的幾個函數(shù)

例1籍救、求偏導(dǎo)數(shù)

theano有個很好用的函數(shù),就是求函數(shù)的偏導(dǎo)數(shù)theano.grad()渠抹,比如上面的S函數(shù)蝙昙,我們要求當(dāng)x=3的時候闪萄,s函數(shù)的導(dǎo)數(shù),代碼如下:

import theano

x =theano.tensor.fscalar('x')#定義一個float類型的變量x

y= 1 / (1 + theano.tensor.exp(-x))#定義變量y

dx=theano.grad(y,x)#偏導(dǎo)數(shù)函數(shù)

f= theano.function([x],dx)#定義函數(shù)f奇颠,輸入為x败去,輸出為s函數(shù)的偏導(dǎo)數(shù)

print f(3)#計算當(dāng)x=3的時候,函數(shù)y的偏導(dǎo)數(shù)

例2烈拒、共享變量

共享變量是多線程編程中的一個名詞圆裕,故名思議就是各線程,公共擁有的變量缺菌,這個是為了多線程高效計算葫辐、訪問而使用的變量。因為深度學(xué)習(xí)中伴郁,我們整個計算過程基本上是多線程計算的耿战,于是就需要用到共享變量。在程序中焊傅,我們一般把神經(jīng)網(wǎng)絡(luò)的參數(shù)W剂陡、b等定義為共享變量,因為網(wǎng)絡(luò)的參數(shù)狐胎,基本上是每個線程都需要訪問的鸭栖。

import theano

import numpy

A=numpy.random.randn(3,4);#隨機(jī)生成一個矩陣

x = theano.shared(A)#從A,創(chuàng)建共享變量x

print x.get_value()

通過get_value()握巢、set_value()可以查看晕鹊、設(shè)置共享變量的數(shù)值

例3、共享變量參數(shù)更新

前面我們提到theano.function函數(shù)暴浦,有個非常重要的參數(shù)updates溅话,updates是一個包含兩個元素的列表或tuple,updates=[old_w,new_w]歌焦,當(dāng)函數(shù)被調(diào)用的時候飞几,這個會用new_w替換old_w,具體看一下下面例子:

import theano

w= theano.shared(1)#定義一個共享變量w,其初始值為1

x=theano.tensor.iscalar('x')

f=theano.function([x], w, updates=[[w, w+x]])#定義函數(shù)自變量為x独撇,因變量為w屑墨,當(dāng)函數(shù)執(zhí)行完畢后,更新參數(shù)w=w+x

print f(3)#函數(shù)輸出為w

print w.get_value()#這個時候可以看到w=w+x為4

這個主要用于梯度下降的時候纷铣,要用到卵史。比如updates=[w,w-α*(dT/dw)],其中dT/dw就是我們梯度下降的時候关炼,損失函數(shù)對參數(shù)w的偏導(dǎo)數(shù)程腹,α是學(xué)習(xí)率。

3.9 應(yīng)用方向

邏輯回歸儒拂,三層神經(jīng)網(wǎng)絡(luò)寸潦,卷積神經(jīng)網(wǎng)絡(luò)等

四 ?項目簡介

4.1 項目地址

coding.net:https://coding.net/u/sharon12/p/np2016-1765866307/git/tree/master

4.2 項目概述

?4.2.1 項目功能

輸入血常規(guī)圖片色鸳,程序通過處理圖片上的數(shù)據(jù),進(jìn)行性別和年齡的預(yù)測见转。(暫只能處理獨墅湖高教區(qū)的體檢單)

?4.2.2 具體流程

輸入圖片->圖片OCR識別->將識別出來的數(shù)值存入MongoDB->根據(jù)機(jī)器學(xué)習(xí)方法生成模型并進(jìn)行預(yù)測

?4.2.3 項目概要

該項目主要分為三個部分命雀。第一部分是web端圖片的導(dǎo)入和結(jié)果的顯示;第二部分是OCR識別模塊,用來進(jìn)行圖片的處理并將處理數(shù)據(jù)存儲進(jìn)mongodb;第三部分是學(xué)習(xí)預(yù)測模塊斩箫,用來進(jìn)行性別和年齡的預(yù)測吏砂。

4.3 運行環(huán)境

?安裝前置依賴

# 安裝 Python 發(fā)布版本,dev包必須安裝乘客,很多用pip安裝包都需要編譯

sudo apt-get install python2.7 python2.7-dev python3.2 python3.2-dev

# 很多pip安裝的包都需要libssl和libevent編譯環(huán)境

sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-dev libxml2-dev libxslt-dev

安裝python模塊

PS: 裝python模塊時最好每一步進(jìn)入python命令行嘗試import是否成功

# 安裝pip

sudo apt-get install python-pip

# 安裝numpy,

sudo apt-get install python-numpy # http://www.numpy.org/

# 安裝opencv

sudo apt-get install python-opencv # http://opencv.org/

#裝完后需要更新環(huán)境變量

vim /etc/bash.bashrc

#在文件末尾添加兩行代碼

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages

export PYTHONPATH="${PYTHONPATH+${PYTHONPATH}:}/usr/local/lib/python2.7/site-packages"

##安裝OCR和預(yù)處理相關(guān)依賴

sudo apt-get install tesseract-ocr

sudo pip install pytesseract

sudo apt-get install python-tk

sudo pip install pillow

# 安裝Flask框架狐血、mongo

sudo pip install Flask

sudo apt-get install mongodb # 如果找不到可以先sudo apt-get update

sudo service mongodb started

sudo pip install pymongo

如果import cv2報no module name cv2。需要從源碼編譯opencv安裝易核,教程地址如下:OPENCV2.4.9源碼安裝

安裝tensorflow

pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc0-cp27-none-linux_x86_64.whl

運行demo

cd? BloodTestReportOCR

python view.py # upload圖像,在瀏覽器打開http://yourip:8080

4.4 部分文件功能簡介

view.py

Web 端上傳圖片到服務(wù)器匈织,存入mongodb并獲取oid

imageFilter.py

對圖像透視裁剪和OCR進(jìn)行了簡單的封裝,以便于模塊間的交互牡直,規(guī)定適當(dāng)?shù)慕涌?/p>

imageFilter = ImageFilter() # 可以傳入一個opencv格式打開的圖片

num = 22

print imageFilter.ocr(num)

ocr函數(shù) - 模塊主函數(shù)返回識別數(shù)據(jù)

用于對img進(jìn)行ocr識別缀匕,他會先進(jìn)行剪切,之后進(jìn)一步做ocr識別碰逸,返回一個json對象 如果剪切失敗乡小,則返回None @num 規(guī)定剪切項目數(shù)

perspect函數(shù)做 - 初步的矯正圖片

用于透視image,他會緩存一個透視后的opencv numpy矩陣饵史,并返回該矩陣 透視失敗满钟,則會返回None,并打印不是報告 @param 透視參數(shù)

關(guān)于param

參數(shù)的形式為[p1, p2, p3 ,p4 ,p5]胳喷。 p1,p2,p3,p4,p5都是整型零远,其中p1必須是奇數(shù)。

p1是高斯模糊的參數(shù)厌蔽,p2和p3是canny邊緣檢測的高低閾值,p4和p5是和篩選有關(guān)的乘數(shù)摔癣。

如果化驗報告單放在桌子上時奴饮,有的邊緣會稍微翹起,產(chǎn)生比較明顯的陰影择浊,這種陰影有可能被識別出來戴卜,導(dǎo)致定位失敗。 解決的方法是調(diào)整p2和p3琢岩,來將陰影線篩選掉投剥。但是如果將p2和p3調(diào)的比較高,就會導(dǎo)致其他圖里的黑線也被篩選掉了担孔。 參數(shù)的選擇是一個問題江锨。 前列們在getinfo.default中設(shè)置的是一個較低的閾值吃警,p2=70,p3=30,這個閾值不會屏蔽陰影線啄育。 如果改為p2=70,p3=50則可以屏蔽酌心,但是會導(dǎo)致其他圖片識別困難。

就現(xiàn)在來看挑豌,得到較好結(jié)果的前提主要有三個

化驗單盡量平整

圖片中應(yīng)該包含全部的三條黑線

圖片盡量不要包含化驗單的邊緣安券,如果有的話,請盡量避開有陰影的邊緣氓英。

filter函數(shù) - 過濾掉不合格的或非報告圖片

返回img經(jīng)過透視過后的PIL格式的Image對象侯勉,如果緩存中有PerspectivImg則直接使用,沒有先進(jìn)行透視 過濾失敗則返回None @param filter參數(shù)

autocut函數(shù) - 將圖片中性別铝阐、年齡址貌、日期和各項目名稱數(shù)據(jù)分別剪切出來

用于剪切ImageFilter中的img成員,剪切之后臨時圖片保存在out_path饰迹, 如果剪切失敗芳誓,返回-1,成功返回0 @num 剪切項目數(shù) @param 剪切參數(shù)

剪切出來的圖片在BloodTestReportOCR/temp_pics/ 文件夾下

函數(shù)輸出為data0.jpg,data1.jpg……等一系列圖片啊鸭,分別是白細(xì)胞計數(shù)锹淌,中性粒細(xì)胞記數(shù)等的數(shù)值的圖片。

classifier.py

用于判定裁剪矯正后的報告和裁剪出檢測項目的編號

imgproc.py

將識別的圖像進(jìn)行處理二值化等操作赠制,提高識別率 包括對中文和數(shù)字的處理

digits

將該文件替換Tesseract-OCR\tessdata\configs中的digits

4.5 實驗結(jié)果

首先在終端輸入view.py,在后臺會展示index.html頁面赂摆,在頁面選擇文件上傳并點擊提交,后臺會調(diào)用imageFilter.py中的ocr,對圖像進(jìn)行灰度化钟些,裁剪和OCR識別烟号,并將圖片和識別出來的數(shù)據(jù)存入數(shù)據(jù)庫并在頁面進(jìn)行展示


然后點擊生成報告,這次程序中根據(jù)fid將數(shù)據(jù)從mongodb數(shù)據(jù)庫中讀出數(shù)據(jù)政恍,并在頁面上進(jìn)行展示汪拥,讀取不準(zhǔn)確的地方可以修改。


最后篙耗,我們調(diào)用已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)迫筑,將數(shù)據(jù)輸入進(jìn)去進(jìn)行預(yù)測,以下是預(yù)測結(jié)果宗弯。



由于筆者并沒有直接參與實驗代碼的編寫脯燃,故這里只敘述了關(guān)于整個實驗的主要文件的用途和運行的詳細(xì)過程,并對自己分享的Theano框架進(jìn)行了詳細(xì)的介紹蒙保。若想要了解更多關(guān)于本次實驗更細(xì)致的事情辕棚,請參考以下鏈接:

1.http://blog.csdn.net/u014659656/article/details/53887507#課程心得體會

2.http://rp38.cn/2016/12/25/np2016/

在那里,你會得到關(guān)于更多實驗詳盡的描述。



五 個人心得

? ? ? 自從來到科大后逝嚎,才感覺到大神林立扁瓢,然而自己對時間的利用卻并不充分。這門課中懈糯,也是僅僅能夠跟上項目更新的步伐涤妒。在接下來的日子里,會繼續(xù)對不足的知識點進(jìn)行學(xué)習(xí)赚哗,更加深入的理解神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的知識她紫,做更多關(guān)于這一方面的研究。


六 學(xué)習(xí)鏈接

1.深度學(xué)習(xí)(圖像分類模型)

2.theano文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屿储,一起剝皮案震驚了整個濱河市贿讹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌够掠,老刑警劉巖民褂,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異疯潭,居然都是意外死亡赊堪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門竖哩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哭廉,“玉大人,你說我怎么就攤上這事相叁∽翊拢” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵增淹,是天一觀的道長椿访。 經(jīng)常有香客問我,道長虑润,這世上最難降的妖魔是什么成玫? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮拳喻,結(jié)果婚禮上梁剔,老公的妹妹穿的比我還像新娘。我一直安慰自己舞蔽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布码撰。 她就那樣靜靜地躺著渗柿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朵栖,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天颊亮,我揣著相機(jī)與錄音,去河邊找鬼陨溅。 笑死终惑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的门扇。 我是一名探鬼主播雹有,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼臼寄!你這毒婦竟也來了霸奕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤吉拳,失蹤者是張志新(化名)和其女友劉穎质帅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體留攒,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡煤惩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了炼邀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魄揉。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汤善,靈堂內(nèi)的尸體忽然破棺而出什猖,到底是詐尸還是另有隱情,我是刑警寧澤红淡,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布不狮,位于F島的核電站,受9級特大地震影響在旱,放射性物質(zhì)發(fā)生泄漏摇零。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一桶蝎、第九天 我趴在偏房一處隱蔽的房頂上張望驻仅。 院中可真熱鬧,春花似錦登渣、人聲如沸噪服。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粘优。三九已至仇味,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雹顺,已是汗流浹背丹墨。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留嬉愧,地道東北人贩挣。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像没酣,于是被迫代替她去往敵國和親王财。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容