chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何創(chuàng)建張量并實(shí)現(xiàn)張量類型轉(zhuǎn)化

wFVr_Hardware_1 ? 來源:硬件十萬個(gè)為什么 ? 作者:硬件十萬個(gè)為什么 ? 2022-12-06 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們在 深度學(xué)習(xí)框架(3)-TensorFlow中張量創(chuàng)建和轉(zhuǎn)化,妙用“稀疏性”提升效率 中討論了如何創(chuàng)建張量并實(shí)現(xiàn)張量類型轉(zhuǎn)化。今天我們一起在TensorFlow中執(zhí)行張量的計(jì)算,并重點(diǎn)討論一下不同的激活函數(shù)。

1、了解不同的激活函數(shù),根據(jù)應(yīng)用選擇不同的激活函數(shù)

我們在 機(jī)器學(xué)習(xí)中的函數(shù)(1)-激活函數(shù)和感知機(jī)中討論過 激活函數(shù)是在神經(jīng)網(wǎng)絡(luò)層間輸入與輸出之間的一種函數(shù)變換,目的是為了加入非線性因素,增強(qiáng)模型的表達(dá)能力。激活函數(shù)的作用類似于人類大腦中基于神經(jīng)元的模型(參考下圖),激活函數(shù)最終決定了要發(fā)射給下一個(gè)神經(jīng)元的內(nèi)容。

(1)激活函數(shù)有什么價(jià)值?

激活函數(shù)對(duì)于人工神經(jīng)網(wǎng)絡(luò)模型去學(xué)習(xí)、理解非常復(fù)雜和非線性的函數(shù)來說具有十分重要的作用。首先對(duì)于y=ax+b這樣的函數(shù),當(dāng)x的輸入很大時(shí),y的輸出也是無限大/小的,經(jīng)過多層網(wǎng)絡(luò)疊加后,值更加膨脹了,這顯然不符合我們的預(yù)期,很多情況下我們希望的輸出是一個(gè)概率,需要激活函數(shù)能幫助網(wǎng)絡(luò)進(jìn)行收斂。其次,線性變換模式相對(duì)簡單(只是加權(quán)偏移),限制了對(duì)復(fù)雜任務(wù)的處理能力,沒有激活函數(shù)的神經(jīng)網(wǎng)絡(luò)就是一個(gè)線性回歸模型;激活函數(shù)做的非線性變換可以使得神經(jīng)網(wǎng)絡(luò)處理非常復(fù)雜的任務(wù),如我們希望我們的神經(jīng)網(wǎng)絡(luò)可以對(duì)語言翻譯和圖像分類做操作,這就需要非線性轉(zhuǎn)換。最后,激活函數(shù)也使得反向傳播算法變得可能,因?yàn)檫@時(shí)候梯度和誤差會(huì)被同時(shí)用來更新權(quán)重和偏移,沒有可微分的線性函數(shù),就不可能實(shí)現(xiàn)。

(2)有哪些常用的激活函數(shù)?

常用的激活函數(shù)有,Sigmoid激活函數(shù),Tan/ 雙曲正切激活函數(shù),ReLU激活函數(shù)(還有改進(jìn)后的LeakyReLU和PReLU),Softmax激活函數(shù)等。

(3)激活函數(shù)使用時(shí)有哪些問題?如何改進(jìn)激活函數(shù)?

Sigmoid梯度消失問題可以通過Relu解決

梯度、梯度下降、鏈?zhǔn)椒▌t等概念可參考機(jī)器學(xué)習(xí)中的函數(shù)(3)-“梯度下降”走捷徑,“BP算法”提效率 中的描述。我們以Sigmoid為例,看一下“梯度消失”是如何發(fā)生的?Sigmoid的函數(shù)公式和圖像如下圖,從圖中可見函數(shù)兩個(gè)邊緣的梯度約為0,Sigmoid導(dǎo)數(shù)取值取值范圍為(0,0.25)。

當(dāng)我們求激活函數(shù)輸出相對(duì)于權(quán)重參數(shù)W的偏導(dǎo)時(shí),Sigmoid函數(shù)的梯度是表達(dá)式中的一個(gè)乘法因子。實(shí)際的神經(jīng)網(wǎng)絡(luò)層數(shù)少則數(shù)十多則數(shù)百層,由于神經(jīng)網(wǎng)絡(luò)反向傳播時(shí)的“鏈?zhǔn)椒磻?yīng)”,這么多范圍在(0,0.25)的數(shù)相乘,將會(huì)是一個(gè)非常小的數(shù)字。而梯度下降算法更新參數(shù)W完全依賴于梯度值(如BP算法),極小的梯度值失去了區(qū)分度,無法讓參數(shù)有效更新,該現(xiàn)象即為“梯度消失”(VanishingGradients)。

ReLU激活函數(shù)(Rectified Linear Unit,修正線性單元)的出現(xiàn)解決了梯度消失問題。如下圖所示,ReLU的公式是R(z)=max(0,z)。假設(shè)這個(gè)神經(jīng)元負(fù)責(zé)檢測一個(gè)具體的特征,例如曲線或者邊緣。若此神經(jīng)元在輸入范圍內(nèi)檢測到了對(duì)應(yīng)的特征,開關(guān)開啟,且正值越大代表特征越明顯;但此神經(jīng)元檢測到特征缺失,開關(guān)關(guān)閉,則不管負(fù)值的大小,如-6對(duì)比-2都沒有區(qū)分的意義。

Relu的優(yōu)勢是求導(dǎo)后,梯度只可以取0或1,輸入小于0時(shí),梯度為0;輸入大于0時(shí),梯度為1。在多層神經(jīng)網(wǎng)絡(luò)中Relu梯度的連續(xù)乘法不會(huì)收斂到0,結(jié)果也只可以取0或1;若值為1則梯度保持值不變進(jìn)行前向傳播,若值為0則梯度從該位置停止前向傳播。

Relu神經(jīng)元死亡問題可以通過“小于0”部分優(yōu)

ReLU也有缺點(diǎn),它提升了計(jì)算效率,但同樣可能阻礙訓(xùn)練過程。通常,激活函數(shù)的輸入值有一項(xiàng)偏置項(xiàng)(bias),若bias太小,輸入激活函數(shù)的值總是負(fù)的,那么反向傳播過程經(jīng)過該處的梯度總為0,對(duì)應(yīng)的權(quán)重和偏置參數(shù)無法得到更新。如果對(duì)于所有的樣本輸入,該激活函數(shù)的輸入都是負(fù)的,那么該神經(jīng)元再也無法學(xué)習(xí),稱為神經(jīng)元“死亡”問題(Dying ReLU Problem)。

Relu升級(jí)到LeakyReLU就是為了解決神經(jīng)元“死亡”問題。LeakyReLU與ReLU很相似,僅在輸入小于0的部分有差別,ReLU輸入小于0的部分值都為0,而LeakyReLU輸入小于0的部分,值為負(fù),且有微小的梯度。使用LeakyReLU的好處就是:在反向傳播過程中,對(duì)于LeakyReLU激活函數(shù)輸入小于零的部分,也可以計(jì)算得到梯度,而不是像ReLU一樣值為0,這樣就避免了上述梯度方向鋸齒問題。超參數(shù)α的取值也被研究過,有論文將α作為了需要學(xué)習(xí)的參數(shù),該激活函數(shù)為PReLU(Parametrized ReLU)。

(4)如何選擇激活函數(shù)?

每個(gè)激活函數(shù)都有自己的特點(diǎn),Sigmoid和tanh的將輸出限制在(0,1)和(-1,1)之間,適合做概率值的處理,例如LSTM中的各種門;而ReLU無最大值限制,則不適合做這個(gè)應(yīng)用,但是Relu適合用于深層網(wǎng)絡(luò)的訓(xùn)練,而Sigmoid和tanh則不行,因?yàn)樗鼈儠?huì)出現(xiàn)梯度消失。

選擇激活函數(shù)是有技巧的,如“除非在二分類問題中,否則小心使用Sigmoid函數(shù)”;“如果你不知道應(yīng)該使用哪個(gè)激活函數(shù), 那么請優(yōu)先選擇ReLU”。盡管ReLU有一些缺點(diǎn),但參考“奧卡姆剃刀原理”,如無必要、勿增實(shí)體,也就是優(yōu)先選擇最簡單的方法,ReLU相較于其他激活函數(shù),有著最低的計(jì)算代價(jià)和最簡單的代碼實(shí)現(xiàn)。如果使用了ReLU,要注意一下DeadReLU問題。如優(yōu)化Learningrate,防止太高導(dǎo)致在訓(xùn)練過程中參數(shù)更新太大,避免出現(xiàn)大的梯度從而導(dǎo)致過多的神經(jīng)元“Dead”;或者針對(duì)輸入為負(fù)值時(shí),ReLU的梯度為0造成神經(jīng)元死亡,更換激活函數(shù),嘗試一下leakyReLU等ReLU變體,說不定會(huì)有很好效果。

實(shí)際應(yīng)用時(shí)還是要看具體場景,甚至結(jié)合具體模型。比如LSTM中用到Tanh、Transfromer中用到的ReLU、Bert中用到的GeLU,YoLo中用到的LeakyReLU等。不同的激活函數(shù),根據(jù)其特點(diǎn),應(yīng)用各不相同。

3、如何讓張量執(zhí)行計(jì)算?

(1)導(dǎo)入TensorFlow,并建立矩陣a、矩陣b、矩陣c,參考如下代碼

import tensorflow as tf

import numpy as np

a = tf.constant([[1, 2], [3, 4]])

b = tf.constant([[1, 1], [1, 1]])

c = tf.constant([[4.0,5.0], [10.0,1.0]])

(2)執(zhí)行張量的運(yùn)算

張量的基本運(yùn)算包括加法、乘法、獲取最大最小值等,常用函數(shù)有tf.add()、tf.multiply()、tf.matmul()、tf.reduce_max()等。乘法相關(guān)的兩個(gè)函數(shù),tf.multiply()是兩個(gè)矩陣中對(duì)應(yīng)元素各自相乘,而tf.matmul()執(zhí)行的是矩陣乘法,兩者有區(qū)別。

add

print(tf.add(a, b), “

”)

打印結(jié)果 》》》

tf.Tensor(

[[2 3]

[4 5]], shape=(2, 2), dtype=int32)

multiply

print(tf.multiply(a, b), “

”)

打印結(jié)果 》》》

tf.Tensor(

[[1 2]

[3 4]], shape=(2, 2), dtype=int32)

matrix multiply

print(tf.matmul(a, b), “

”)

打印結(jié)果 》》》

tf.Tensor(

[[3 3]

[7 7]], shape=(2, 2), dtype=int32)

max/min:find the largest/smallest value

print(tf.reduce_max(c))

打印結(jié)果 》》》

tf.Tensor(10.0, shape=(), dtype=float32)

(3)應(yīng)用激活函數(shù)

我們以tf.nn.sigmoid()、tf.nn.relu()等常用的激活函數(shù)為例,大家可以參考上文分享的公式驗(yàn)計(jì)算驗(yàn)證一下,看一下激活效果。

sigmoidprint(tf.nn.sigmoid(c))

打印結(jié)果 》》》

tf.Tensor(

[[0.98201376 0.9933072 ]

[0.9999546 0.7310586 ]], shape=(2, 2), dtype=float32)

reluprint(tf.nn.relu(c))

打印結(jié)果 》》》

tf.Tensor(

[[ 4. 5.]

[10. 1.]], shape=(2, 2), dtype=float32)

今天我們一起學(xué)習(xí)了如何在TensorFlow中執(zhí)行張量的計(jì)算,并重點(diǎn)討論一下不同的激活函數(shù),下一步我們繼續(xù)學(xué)習(xí)如何使用TensorFlow

審核編輯:郭婷


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

原文標(biāo)題:深度學(xué)習(xí)框架(4)-TensorFlow中執(zhí)行計(jì)算,不同激活函數(shù)各有妙用

文章出處:【微信號(hào):Hardware_10W,微信公眾號(hào):硬件十萬個(gè)為什么】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型部署到蜂鳥e203開發(fā)板上

    運(yùn)行模型推理: interpreter->Invoke();6. 從輸出張量中讀取預(yù)測結(jié)果: // 假設(shè)輸出為float類型float* output_data
    發(fā)表于 10-22 08:04

    搭建自己的ubuntu系統(tǒng)之創(chuàng)建ubuntu虛擬機(jī)

    。后面的步驟保持默認(rèn)值,直到指定磁盤容量步驟。IO控制器類型這里默認(rèn)選擇LSI就可以:這里同樣是默認(rèn)選擇SCSI。這里選擇創(chuàng)建新的虛擬磁盤:設(shè)置磁盤大小為200G,選擇磁盤的存在形式,然后
    發(fā)表于 09-25 09:39

    京東:調(diào)用用戶畫像API實(shí)現(xiàn)千人千面推薦,提升轉(zhuǎn)化

    ? ?引言 在電商領(lǐng)域,個(gè)性化推薦已成為提升用戶粘性和轉(zhuǎn)化率的核心引擎。京東通過深度整合用戶畫像API,實(shí)現(xiàn)了"千人千面"的精準(zhǔn)推薦系統(tǒng)。本文將解析其技術(shù)邏輯與業(yè)務(wù)價(jià)值,揭示如何通過數(shù)據(jù)驅(qū)動(dòng)提升
    的頭像 發(fā)表于 09-12 15:08 ?612次閱讀
    京東:調(diào)用用戶畫像API<b class='flag-5'>實(shí)現(xiàn)</b>千人千面推薦,提升<b class='flag-5'>轉(zhuǎn)化</b>率

    如何移植 RT-Thread Nano 創(chuàng)建 2 個(gè)線程?

    基于 BSP 中的 GPIO_OutputInput 演示,展示了如何移植 RT-Thread Nano 創(chuàng)建 2 個(gè)線程。
    發(fā)表于 08-19 07:45

    SQL 通用數(shù)據(jù)類型

    data type. SQL 開發(fā)人員必須在創(chuàng)建 SQL 表時(shí)決定表中的每個(gè)列將要存儲(chǔ)的數(shù)據(jù)的類型。數(shù)據(jù)類型是一個(gè)標(biāo)簽,是便于 SQL 了解每個(gè)列期望存儲(chǔ)什么類型的數(shù)據(jù)的指南,它也標(biāo)
    的頭像 發(fā)表于 08-18 09:46 ?579次閱讀

    奇異摩爾亮相2025中國AI算力大會(huì)

    技術(shù)驅(qū)動(dòng)下,超節(jié)點(diǎn)已成為國內(nèi)外構(gòu)建大規(guī)模HBD域應(yīng)用的關(guān)鍵趨勢。隨著千億到萬億參數(shù)MoE大模型并行訓(xùn)練(尤其是專家并行和張量并行)對(duì)GPU間通信需求的激增,Scale-up超節(jié)點(diǎn)應(yīng)運(yùn)而生。
    的頭像 發(fā)表于 07-03 11:40 ?1190次閱讀

    光刻圖形轉(zhuǎn)化軟件免費(fèi)試用

    ,或者M(jìn)DP軟件。 現(xiàn)有可免費(fèi)試用的光刻圖形轉(zhuǎn)化軟件,可實(shí)現(xiàn)最高1nm精度的大型圖形轉(zhuǎn)換,同時(shí)只需要的少量的電腦內(nèi)存就可以運(yùn)行。如需要請聯(lián)系我,謝謝!
    發(fā)表于 05-02 12:42

    TPU處理器的特性和工作原理

    張量處理單元(TPU,Tensor Processing Unit)是一種專門為深度學(xué)習(xí)應(yīng)用設(shè)計(jì)的硬件加速器。它的開發(fā)源于對(duì)人工智能(AI)和機(jī)器學(xué)習(xí)應(yīng)用的需求,尤其是深度學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)計(jì)算。
    的頭像 發(fā)表于 04-22 09:41 ?3390次閱讀
    TPU處理器的特性和工作原理

    使用Python API在OpenVINO?中創(chuàng)建了用于異步推理的自定義代碼,輸出張量的打印結(jié)果會(huì)重復(fù),為什么?

    使用 Python* API 在 OpenVINO? 中創(chuàng)建了用于異步推理的自定義代碼。 遇到輸出張量的打印結(jié)果會(huì)重復(fù)的問題,即使輸入圖像不同。
    發(fā)表于 03-06 07:53

    無法使用API實(shí)現(xiàn)NPU與OpenVINO?的內(nèi)存共享怎么辦?

    無法使用 遠(yuǎn)程張量 API 實(shí)現(xiàn) NPU 與OpenVINO?的內(nèi)存共享。
    發(fā)表于 03-06 07:11

    無法調(diào)用GPU插件推理的遠(yuǎn)程張量API怎么解決?

    運(yùn)行了使用 GPU 插件的遠(yuǎn)程張量 API 的推理。但是,它未能共享 OpenCL* 內(nèi)存,但結(jié)果不正確。
    發(fā)表于 03-06 06:13

    獲取具有三個(gè)輸出的自定義模型的輸出張量,運(yùn)行時(shí)錯(cuò)誤是怎么回事?

    獲取具有三個(gè)輸出的自定義模型的輸出張量: 從 openvino.runtime 導(dǎo)入內(nèi)核 內(nèi)核 = 內(nèi)核() model = core.read_model(model=“model.xml
    發(fā)表于 03-05 09:44

    解析DeepSeek MoE并行計(jì)算優(yōu)化策略

    本期Kiwi Talks將從集群Scale Up互聯(lián)的需求出發(fā),解析DeepSeek在張量并行及MoE專家并行方面采用的優(yōu)化策略。DeepSeek大模型的工程優(yōu)化以及國產(chǎn)AI 產(chǎn)業(yè)鏈的開源與快速部署預(yù)示著國產(chǎn)AI網(wǎng)絡(luò)自主自控將大有可為。
    的頭像 發(fā)表于 02-07 09:20 ?2717次閱讀
    解析DeepSeek MoE并行計(jì)算優(yōu)化策略

    AN-1310:通過MDIO實(shí)現(xiàn)閃存編程—協(xié)議類型8

    電子發(fā)燒友網(wǎng)站提供《AN-1310:通過MDIO實(shí)現(xiàn)閃存編程—協(xié)議類型8.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 15:13 ?0次下載
    AN-1310:通過MDIO<b class='flag-5'>實(shí)現(xiàn)</b>閃存編程—協(xié)議<b class='flag-5'>類型</b>8

    半導(dǎo)體所在光學(xué)張量處理領(lǐng)域取得新進(jìn)展

    在人工神經(jīng)網(wǎng)絡(luò)中,張量作為多維數(shù)組,在數(shù)據(jù)結(jié)構(gòu)中扮演著核心角色。近年來,隨著深度學(xué)習(xí)領(lǐng)域的蓬勃發(fā)展和生成式人工智能技術(shù)的興起,神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜度持續(xù)攀升,模型參數(shù)量更是呈現(xiàn)出爆炸式的增長態(tài)勢。然而
    的頭像 發(fā)表于 01-08 11:38 ?655次閱讀