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

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用numpy Python庫從零開始構(gòu)建人工神經(jīng)網(wǎng)絡(luò)

倩倩 ? 來源:51CTO ? 2020-03-27 15:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為何從零開始?

有許多深度學(xué)習(xí)庫(Keras、TensorFlow和PyTorch等)可僅用幾行代碼構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)。然而,如果你真想了解神經(jīng)網(wǎng)絡(luò)的底層運(yùn)作,建議學(xué)習(xí)如何使用Python或任何其他編程語言從零開始為神經(jīng)網(wǎng)絡(luò)編程。

不妨創(chuàng)建某個(gè)隨機(jī)數(shù)據(jù)集:

圖1. 為簡單起見,隨機(jī)數(shù)據(jù)集帶二進(jìn)制值

上面表格有五列:Person、X1、X2、X3和Y。1表示true,0表示false。我們的任務(wù)是創(chuàng)建一個(gè)能夠基于X1、X2和X3的值來預(yù)測(cè)Y值的人工神經(jīng)網(wǎng)絡(luò)。

我們將創(chuàng)建一個(gè)有1個(gè)輸入層、1個(gè)輸出層而沒有隱藏層的人工神經(jīng)網(wǎng)絡(luò)。開始編程前,先不妨看看我們的神經(jīng)網(wǎng)絡(luò)在理論上將如何執(zhí)行:

ANN理論

人工神經(jīng)網(wǎng)絡(luò)是一種監(jiān)督式學(xué)習(xí)算法,這意味著我們?yōu)樗峁┖凶宰兞康妮斎霐?shù)據(jù)和含有因變量的輸出數(shù)據(jù)。比如在該示例中,自變量是X1、X2和X3,因變量是Y。

首先,ANN進(jìn)行一些隨機(jī)預(yù)測(cè),將這些預(yù)測(cè)與正確的輸出進(jìn)行比較,計(jì)算出誤差(預(yù)測(cè)值與實(shí)際值之間的差)。找出實(shí)際值與傳播值之間的差異的函數(shù)名為成本函數(shù)(cost function)。這里的成本指誤差。我們的目標(biāo)是使成本函數(shù)最小化。訓(xùn)練神經(jīng)網(wǎng)絡(luò)基本上是指使成本函數(shù)最小化。下面會(huì)介紹如何執(zhí)行此任務(wù)。

神經(jīng)網(wǎng)絡(luò)分兩個(gè)階段執(zhí)行:前饋階段和反向傳播階段。下面詳細(xì)介紹這兩個(gè)步驟。

前饋

圖2

來源:單層神經(jīng)網(wǎng)絡(luò),又叫Perceptron

在ANN的前饋階段,基于輸入節(jié)點(diǎn)中的值和權(quán)重進(jìn)行預(yù)測(cè)。如果看一下上圖中的神經(jīng)網(wǎng)絡(luò),會(huì)看到數(shù)據(jù)集中有三個(gè)特征:X1、X2和X3,因此第一層(又叫輸入層)中有三個(gè)節(jié)點(diǎn)。

神經(jīng)網(wǎng)絡(luò)的權(quán)重基本上是我們要調(diào)整的字符串,以便能夠正確預(yù)測(cè)輸出。請(qǐng)記住,每個(gè)輸入特性只有一個(gè)權(quán)重。

以下是在ANN的前饋階段所執(zhí)行的步驟:

第1步:計(jì)算輸入和權(quán)重之間的點(diǎn)積

輸入層中的節(jié)點(diǎn)通過三個(gè)權(quán)重參數(shù)與輸出層連接。在輸出層中,輸入節(jié)點(diǎn)中的值與對(duì)應(yīng)的權(quán)重相乘并相加。最后,偏置項(xiàng)b添加到總和。

為什么需要偏置項(xiàng)?

假設(shè)某個(gè)人有輸入值(0,0,0),輸入節(jié)點(diǎn)和權(quán)重的乘積之和將為零。在這種情況下,無論我們?cè)趺从?xùn)練算法,輸出都將始終為零。因此,為了能夠做出預(yù)測(cè),即使我們沒有關(guān)于該人的任何非零信息,也需要一個(gè)偏置項(xiàng)。偏置項(xiàng)對(duì)于構(gòu)建穩(wěn)健的神經(jīng)網(wǎng)絡(luò)而言必不可少。

數(shù)學(xué)上,點(diǎn)積的總和:

X.W=x1.w1 + x2.w2 + x3.w3 + b

第2步:通過激活函數(shù)傳遞點(diǎn)積(X.W)的總和

點(diǎn)積XW可以生成任何一組值。然而在我們的輸出中,我們有1和0形式的值。我們希望輸出有同樣的格式。為此,我們需要一個(gè)激活函數(shù)(Activation Function),它將輸入值限制在0到1之間。因此,我們當(dāng)然會(huì)使用Sigmoid激活函數(shù)。

圖3. Sigmoid激活函數(shù)

輸入為0時(shí),Sigmoid函數(shù)返回0.5。如果輸入是大正數(shù),返回接近1的值。負(fù)輸入的情況下,Sigmoid函數(shù)輸出的值接近零。

因此,它特別適用于我們要預(yù)測(cè)概率作為輸出的模型。由于概念只存在于0到1之間,Sigmoid函數(shù)是適合我們這個(gè)問題的選擇。

上圖中z是點(diǎn)積X.W的總和。

數(shù)學(xué)上,Sigmoid激活函數(shù)是:

圖4. Sigmoid激活函數(shù)

總結(jié)一下到目前為止所做的工作。首先,我們要找到帶權(quán)重的輸入特征(自變量矩陣)的點(diǎn)積。接著,通過激活函數(shù)傳遞點(diǎn)積的總和。激活函數(shù)的結(jié)果基本上是輸入特征的預(yù)測(cè)輸出。

反向傳播

一開始,進(jìn)行任何訓(xùn)練之前,神經(jīng)網(wǎng)絡(luò)進(jìn)行隨機(jī)預(yù)測(cè),這種預(yù)測(cè)當(dāng)然是不正確的。

我們先讓網(wǎng)絡(luò)做出隨機(jī)輸出預(yù)測(cè)。然后,我們將神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)輸出與實(shí)際輸出進(jìn)行比較。接下來,我們更新權(quán)重和偏置,并確保預(yù)測(cè)輸出更接近實(shí)際輸出。在這個(gè)階段,我們訓(xùn)練算法。不妨看一下反向傳播階段涉及的步驟。

第1步:計(jì)算成本

此階段的第一步是找到預(yù)測(cè)成本??梢酝ㄟ^找到預(yù)測(cè)輸出值和實(shí)際輸出值之間的差來計(jì)算預(yù)測(cè)成本。如果差很大,成本也將很大。

我們將使用均方誤差即MSE成本函數(shù)。成本函數(shù)是找到給定輸出預(yù)測(cè)成本的函數(shù)。

圖5. 均方誤差

這里,Yi是實(shí)際輸出值,i是預(yù)測(cè)輸出值,n是觀察次數(shù)。

第2步:使成本最小化

我們的最終目的是微調(diào)神經(jīng)網(wǎng)絡(luò)的權(quán)重,并使成本最小化。如果你觀察仔細(xì),會(huì)了解到我們只能控制權(quán)重和偏置,其他一切不在控制范圍之內(nèi)。我們無法控制輸入,無法控制點(diǎn)積,無法操縱Sigmoid函數(shù)。

為了使成本最小化,我們需要找到權(quán)重和偏置值,確保成本函數(shù)返回最小值。成本越小,預(yù)測(cè)就越正確。

要找到函數(shù)的最小值,我們可以使用梯度下降算法。梯度下降可以用數(shù)學(xué)表示為:

圖6. 使用梯度下降更新權(quán)重

Error是成本函數(shù)。上面的等式告訴我們找到關(guān)于每個(gè)權(quán)重和偏置的成本函數(shù)的偏導(dǎo)數(shù),然后從現(xiàn)有權(quán)重中減去結(jié)果以得到新的權(quán)重。

函數(shù)的導(dǎo)數(shù)給出了在任何給定點(diǎn)的斜率。為了找到成本是增加還是減少,給定權(quán)重值,我們可以找到該特定權(quán)重值的函數(shù)導(dǎo)數(shù)。如果成本隨重量增加而增加,導(dǎo)數(shù)將返回正值,然后將其從現(xiàn)有值中減去。

另一方面,如果成本隨重量增加而降低,將返回負(fù)值,該值將被添加到現(xiàn)有的權(quán)重值中,因?yàn)樨?fù)負(fù)得正。

在上面公式中,a名為學(xué)習(xí)速率,乘以導(dǎo)數(shù)。學(xué)習(xí)速率決定了我們的算法學(xué)習(xí)的速度。

我們需要對(duì)所有權(quán)重和偏置重復(fù)執(zhí)行梯度下降操作,直到成本最小化,并且成本函數(shù)返回的值接近零。

現(xiàn)在是實(shí)現(xiàn)我們迄今為止研究的人工神經(jīng)網(wǎng)絡(luò)的時(shí)候了。我們將用Python創(chuàng)建一個(gè)簡單的神經(jīng)網(wǎng)絡(luò),有1個(gè)輸入層和1個(gè)輸出層。

使用numpy實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)

圖7

圖片來源:hackernoon.com

要采取的步驟:

1.定義自變量和因變量

2.定義超參數(shù)

3.定義激活函數(shù)及其導(dǎo)數(shù)

4.訓(xùn)練模型

5.做出預(yù)測(cè)

第1步:先創(chuàng)建自變量或輸入特征集以及相應(yīng)的因變量或標(biāo)簽

#Independent variables

input_set = np.array([[0,1,0],

[0,0,1],

[1,0,0],

[1,1,0],

[1,1,1],

[0,1,1],

[0,1,0]])#Dependent variable

labels = np.array([[1,

0,

0,

1,

1,

0,

1]])

labels = labels.reshape(7,1) #toconvert labels to vector

我們的輸入集含有七個(gè)記錄。同樣,我們還創(chuàng)建了一個(gè)標(biāo)簽集,含有輸入集中每個(gè)記錄的對(duì)應(yīng)標(biāo)簽。標(biāo)簽是我們希望ANN預(yù)測(cè)的值。

第2步:定義超參數(shù)。

我們將使用numpy的random.seed函數(shù),以便在執(zhí)行以下代碼時(shí)可以獲得同樣的隨機(jī)值。

接下來,我們使用正態(tài)分布的隨機(jī)數(shù)初始化權(quán)重。由于輸入中有三個(gè)特征,因此我們有三個(gè)權(quán)重的向量。然后,我們使用另一個(gè)隨機(jī)數(shù)初始化偏置值。最后,我們將學(xué)習(xí)速率設(shè)置為0.05。

np.random.seed(42)

weights = np.random.rand(3,1)

bias = np.random.rand(1)

lr = 0.05 #learning rate

第3步:定義激活函數(shù)及其導(dǎo)數(shù):我們的激活函數(shù)是Sigmoid函數(shù)。

def sigmoid(x):

return 1/(1+np.exp(-x))

現(xiàn)在定義計(jì)算Sigmoid函數(shù)導(dǎo)數(shù)的函數(shù)。

def sigmoid_derivative(x):

return sigmoid(x)*(1-sigmoid(x))

第4步:是時(shí)候訓(xùn)練ANN模型了。

我們將從定義輪次(epoch)數(shù)量開始。輪次是我們想針對(duì)數(shù)據(jù)集訓(xùn)練算法的次數(shù)。我們將針對(duì)數(shù)據(jù)訓(xùn)練算法25000次,因此epoch將為25000??梢試L試不同的數(shù)字以進(jìn)一步降低成本。

for epoch in range(25000):

inputs = input_set

XW = np.dot(inputs, weights)+ bias

z = sigmoid(XW)

error = z - labels

print(error.sum())

dcost = error

dpred = sigmoid_derivative(z)

z_del = dcost * dpred

inputs = input_set.T

weights = weights - lr*np.dot(inputs, z_del)

for num in z_del:

bias = bias - lr*num

不妨了解每個(gè)步驟,然后進(jìn)入到預(yù)測(cè)的最后一步。

我們將輸入input_set中的值存儲(chǔ)到input變量中,以便在每次迭代中都保留input_set的值不變。

inputs = input_set

接下來,我們找到輸入和權(quán)重的點(diǎn)積,并為其添加偏置。(前饋階段的第1步)

XW = np.dot(inputs, weights)+ bias

接下來,我們通過Sigmoid激活函數(shù)傳遞點(diǎn)積。(前饋階段的第2步)

z = sigmoid(XW)

這就完成了算法的前饋部分,現(xiàn)在是開始反向傳播的時(shí)候了。

變量z含有預(yù)測(cè)的輸出。反向傳播的第一步是找到誤差。

error = z - labels

print(error.sum())

我們知道成本函數(shù)是:

圖8

我們需要從每個(gè)權(quán)重方面求該函數(shù)的微分,這可以使用微分鏈?zhǔn)椒▌t(chain rule of differentiation)來輕松完成。我將跳過推導(dǎo)部分,但如果有人感興趣,請(qǐng)留言。

因此,就任何權(quán)重而言,成本函數(shù)的最終導(dǎo)數(shù)是:

slope = input x dcost x dpred

現(xiàn)在,斜率可以簡化為:

dcost = error

dpred = sigmoid_derivative(z)

z_del = dcost * dpred

inputs = input_set.T

weights = weight-lr*np.dot(inputs, z_del)

我們有z_del變量,含有dcost和dpred的乘積。我們拿輸入特征矩陣的轉(zhuǎn)置與z_del相乘,而不是遍歷每個(gè)記錄并拿輸入與對(duì)應(yīng)的z_del相乘。

最后,我們將學(xué)習(xí)速率變量lr與導(dǎo)數(shù)相乘,以加快學(xué)習(xí)速度。

除了更新權(quán)重外,我們還要更新偏置項(xiàng)。

for num in z_del:

bias = bias - lr*num

一旦循環(huán)開始,你會(huì)看到總誤差開始減小;訓(xùn)練結(jié)束時(shí),誤差將保留為很小的值。

-0.001415035616137969

-0.0014150128584959256

-0.0014149901015685952

-0.0014149673453557714

-0.0014149445898578358

-0.00141492183507419

-0.0014148990810050437

-0.0014148763276499686

-0.0014148535750089977

-0.0014148308230825385

-0.0014148080718707524

-0.0014147853213728624

-0.0014147625715897338

-0.0014147398225201734

-0.0014147170741648386

-0.001414694326523502

-0.001414671579597255

-0.0014146488333842064

-0.0014146260878853782

-0.0014146033431002465

-0.001414580599029179

-0.0014145578556723406

-0.0014145351130293877

-0.0014145123710998

-0.0014144896298846701

-0.0014144668893831067

-0.001414444149595611

-0.0014144214105213174

-0.0014143986721605849

-0.0014143759345140276

-0.0014143531975805163

-0.001414330461361444

-0.0014143077258557749

-0.0014142849910631708

-0.00141426225698401

-0.0014142395236186895

-0.0014142167909661323

-0.001414194059027955

-0.001414171327803089

-0.001414148597290995

-0.0014141258674925626

-0.0014141031384067547

-0.0014140804100348098

-0.0014140576823759854

-0.0014140349554301636

-0.0014140122291978665

-0.001413989503678362

-0.001413966778871751

-0.001413944054778446

-0.0014139213313983257

-0.0014138986087308195

-0.0014138758867765552

-0.0014138531655347973

-0.001413830445006264

-0.0014138077251906606

-0.001413785006087985

-0.0014137622876977014

-0.0014137395700206355

-0.0014137168530558228

-0.0014136941368045382

-0.0014136714212651114

-0.0014136487064390219

-0.0014136259923249635

-0.001413603278923519

-0.0014135805662344007

-0.0014135578542581566

-0.0014135351429944293

-0.0014135124324428719

-0.0014134897226037203

-0.0014134670134771238

-0.0014134443050626295

-0.0014134215973605428

-0.0014133988903706311

第5步:作出預(yù)測(cè)

是時(shí)候作出一些預(yù)測(cè)了。先用[1,0,0]試一下:

single_pt = np.array([1,0,0])

result = sigmoid(np.dot(single_pt, weights) + bias)

print(result)

輸出:

[0.01031463]

如你所見,輸出更接近0而不是1,因此分類為0。

不妨再用[0,1,0]試一下:

single_pt = np.array([0,1,0])

result = sigmoid(np.dot(single_pt, weights) + bias)

print(result)

輸出:

[0.99440207]

如你所見,輸出更接近1而不是0,因此分類為1。

結(jié)論

我們?cè)诒疚闹袑W(xué)習(xí)了如何使用numpy Python庫,從零開始創(chuàng)建一個(gè)很簡單的人工神經(jīng)網(wǎng)絡(luò),只有1個(gè)輸入層和1個(gè)輸出層。該ANN能夠?qū)€性可分離數(shù)據(jù)進(jìn)行分類。

如果我們有非線性可分離的數(shù)據(jù),我們的ANN就無法對(duì)這種類型的數(shù)據(jù)進(jìn)行分類。下篇將介紹如何構(gòu)建這樣的ANN。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    神經(jīng)網(wǎng)絡(luò)的初步認(rèn)識(shí)

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

    NMSISI的使用

    NMSIS NN 軟件是一組高效的神經(jīng)網(wǎng)絡(luò)內(nèi)核,旨在最大限度地提高 Nuclei N 處理器內(nèi)核上的神經(jīng)網(wǎng)絡(luò)的性能并最??大限度地減少其內(nèi)存占用。 該分為多個(gè)功能,每個(gè)功能涵蓋特定
    發(fā)表于 10-29 07:07

    NMSIS神經(jīng)網(wǎng)絡(luò)使用介紹

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

    構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議

    通過實(shí)踐,本文總結(jié)了構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議,這些建議將會(huì)在構(gòu)建高準(zhǔn)確率輕量級(jí)CNN神經(jīng)網(wǎng)絡(luò)模型方面提供幫助。 1)避免單層神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 10-28 08:02

    從零開始利用NMSIS搭建神經(jīng)網(wǎng)絡(luò)(一)

    環(huán)境:Vivado2021.1、NucleiStudio_IDE_202102-win64 內(nèi)容:從零開始利用NMSIS搭建神經(jīng)網(wǎng)絡(luò),這一節(jié)主講基本的NMSIS卷積函數(shù)的解讀。 一
    發(fā)表于 10-24 13:47

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)

    構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型 model = models.Sequential()model.add(layers.Conv2D(input_shape=(28, 28, 1), filters=4
    發(fā)表于 10-22 07:03

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署到硬件加速器上。首先需要將所有權(quán)重?cái)?shù)據(jù)以及輸入數(shù)據(jù)導(dǎo)入到存儲(chǔ)器內(nèi)。 在仿真環(huán)境下,可將其存于一個(gè)文件,并在 Verilog 代碼中通過 readmemh 函數(shù)
    發(fā)表于 10-20 08:00

    液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時(shí)間連續(xù)性與動(dòng)態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)

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

    神經(jīng)網(wǎng)絡(luò)的并行計(jì)算與加速技術(shù)

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

    無刷電機(jī)小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測(cè)方法的研究

    摘要:論文通過對(duì)無刷電機(jī)數(shù)學(xué)模型的推導(dǎo),得出轉(zhuǎn)角:與三相相電壓之間存在映射關(guān)系,因此構(gòu)建了一個(gè)以三相相電壓為輸人,轉(zhuǎn)角為輸出的小波神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)轉(zhuǎn)角預(yù)測(cè),并采用改進(jìn)遺傳算法來訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),借助
    發(fā)表于 06-25 13:06

    低功耗+AI識(shí)別:基于樹莓派的 LoRa 神經(jīng)網(wǎng)絡(luò)安防系統(tǒng)!

    這篇博客展示了如何使用樹莓派上的神經(jīng)網(wǎng)絡(luò)USB插件來檢測(cè)或“推斷”一個(gè)人的位置,從而構(gòu)建一個(gè)安全系統(tǒng)。Arduino型接收器從零開始構(gòu)建,通過遠(yuǎn)程LoRa射頻協(xié)議從樹莓派發(fā)射器獲取數(shù)據(jù)
    的頭像 發(fā)表于 06-24 16:24 ?2846次閱讀
    低功耗+AI識(shí)別:基于樹莓派的 LoRa <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>安防系統(tǒng)!

    神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機(jī)故障診斷中的應(yīng)用

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

    基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    本文的目的是在一個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)通過python或者M(jìn)ATLAB訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,將訓(xùn)練好的模型的權(quán)重和偏置文件以TXT文件格式導(dǎo)出,然后通過python程序?qū)xt文件轉(zhuǎn)化為coe
    的頭像 發(fā)表于 06-03 15:51 ?1424次閱讀
    基于FPGA搭建<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的步驟解析

    從零開始之電機(jī)FOC控制

    我們將撕開FOC神秘而虛偽的面紗,以說人話的方式講述它。真正的做到從零開始,小白一看就會(huì),一學(xué)就廢。如果覺得有用的話,就點(diǎn)個(gè)贊唄,純手碼。一、什么是FOC?FOC
    的頭像 發(fā)表于 04-23 19:34 ?5150次閱讀
    <b class='flag-5'>從零開始</b>之電機(jī)FOC控制

    從零開始學(xué)電源

    從零開始學(xué)電源···內(nèi)部篇 從零開始學(xué)電源---------內(nèi)部篇 (寫這篇文的著眼點(diǎn)就在“從零開始”上,所以涉及到一些詞匯和技術(shù)的時(shí)候,我會(huì)采取戲說的方式。網(wǎng)上電源高手甚多,且科班出身者比比皆是
    發(fā)表于 04-07 15:30