国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

【連載】深度學習筆記7:Tensorflow入門

人工智能實訓營 ? 2018-08-24 18:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從前面的學習筆記中,筆者和大家一起使用了 numpy 一步一步從感知機開始到兩層網絡以及最后實現了深度神經網絡算法搭建。而后我們又討論了改善深度神經網絡的基本方法,包括神經網絡的正則化、參數優化和調參等問題。這一切工作我們都是基于numpy 完成的,沒有調用任何深度學習框架。在學習深度學習的時候,一開始不讓大家直接上手框架可謂良苦用心,旨在讓大家能夠跟筆者一樣,一步一步通過 numpy 搭建神經網絡的過程就是要讓你能夠更加深入的理解神經網絡的架構、基本原理和工作機制,而不是黑箱以視之。

但學習到這個階段,你已充分理解了神經網絡的工作機制,馬上就要接觸更深層次的卷積神經網絡(CNN)和遞歸神經網絡(RNN),依靠純手工去搭建這些復雜的神經網絡恐怕并不現實。這時候就該深度學習框架出場了。針對深度學習,目前有很多優秀的學習框架,比如說筆者馬上要講的 Tensorflow,微軟的 CNTK,伯克利視覺中心開發的 caffe,以及別具一格的 PyTorch 和友好易用的 keras,本系列深度學習筆記打算從 Tensorflow 開始,對三大主流易用的深度學習框架 Tensorflow、PyTorchkeras 進行學習和講解。選擇這三個框架的原因在于其簡單易用、方便編程和運行速度相對較快。

作為谷歌的深度學習框架, Tensorflow 在深度學習領域可謂風頭無二。其中 Tensor 可以理解為類似于 numpy 的 N 維數組,名為張量; flow 則意味著 N 維數組的流計算,而 Tensor 的數據流計算形式則為一個計算圖的形式進行計算。這里重點提一下,如果大學本科期間的線性代數忘記了的話,我勸你趕緊回去翻一翻,線性代數和矩陣論是深度學習的基礎,希望你能熟練掌握。


先看個簡單的例子。

importtensorflowastf#Definey_hatconstant.Setto36.y_hat=tf.constant(36,name='y_hat')
#Definey.Setto39y=tf.constant(39,name='y')#Createavariableforthelossloss=tf.Variable((y-y_hat)**2,name='loss')#Wheninitisrunlater(session.run(init)),thelossvariablewillbeinitializedandreadytobecomputedinit=tf.global_variables_initializer()#Createasessionandprinttheoutputwithtf.Session()assession:
#Initializesthevariables
session.run(init)
#Printstheloss
print(session.run(loss))
9

在上述代碼中,我們首先定義了兩個常量,然后定義了一個 loss Tensor(變量),之后對變量進行初始化,創建計算會話,最后執行會話計算并打印結果。所以我們可以看到運行 Tensorflow 的基本機制:
創建一些尚未被執行的張量——
定義這些張量之間的運算操作——初始化這些張量——創建會話——執行會話

需要注意的一點是,創建會話后一定要執行這個會話,且看下面示例:

a=tf.constant(2)
b=tf.constant(10)
c=tf.multiply(a,b)
print(c)
Tensor("Mul:0",shape=(),dtype=int32)

在上面的示例中,我們創建了兩個 TensorTensor 之間的乘積運算,但直接打印的結果卻不是我們想要看到的 20. 原因則在于這里我們沒有創建會話并執行,只是打印了兩個張量運算之后的張量。創建會話并執行操作如下:

sess=tf.Session()
print(sess.run(c))
20

除了直接定義變量之外,我們還可以通過創建占位符變量來稍后為之賦值,然后在運行會話中傳入一個 feed_dict ,示例如下:

x=tf.placeholder(tf.int64,name='x')
print(sess.run(2*x,feed_dict={x:3}))
sess.close()
6

相信你已經大致明白了基于張量運算的 Tensorflow 的底層運行機制了。總結而言就是:創建張量、初始化張量、創建會話并執行。

下面展示幾個 Tensorflow 的神經網絡計算的基礎函數示例。

線性函數
def linear_function():  
""" Implements a linear function: Initializes W to be a random tensor of shape (4,3) Initializes X to be a random tensor of shape (3,1) Initializes b to be a random tensor of shape (4,1) Returns: result -- runs the session for Y = WX + b """ np.random.seed(1) X = tf.constant(np.random.randn(3,1), name='X') W = tf.constant(np.random.randn(4,3), name='W') b = tf.constant(np.random.randn(4,1), name='b') Y = tf.add(tf.matmul(W, X), b) # Create the session using tf.Session() and run it with sess.run(...) on the variable you want to calculate init = tf.global_variables_initializer() sess = tf.Session() sess.run(init) result = sess.run(Y) # close the session sess.close()
return result
計算sigmoid函數
def sigmoid(z):  
""" Computes the sigmoid of z Arguments: z -- input value, scalar or vector Returns: results -- the sigmoid of z """ x = tf.placeholder(tf.float32, name='x') sigmoid = tf.sigmoid(x)
with tf.Session() as sess: result = sess.run(sigmoid, feed_dict={x: z})
return result
計算損失函數

640?wx_fmt=png

def cost(logits, labels):  
""" Computes the cost using the sigmoid cross entropy Arguments: logits -- vector containing z, output of the last linear unit (before the final sigmoid activation) labels -- vector of labels y (1 or 0) Note: What we've been calling "z" and "y" in this class are respectively called "logits" and "labels" in the TensorFlow documentation. So logits will feed into z, and labels into y. Returns: cost -- runs the session of the cost (formula (2)) """ # Create the placeholders for "logits" (z) and "labels" (y) (approx. 2 lines) z = tf.placeholder(tf.float32, name='z') y = tf.placeholder(tf.float32, name='y') # Use the loss function (approx. 1 line) cost = tf.nn.sigmoid_cross_entropy_with_logits(logits=z, labels=y) # Create a session (approx. 1 line). See method 1 above. sess = tf.Session() # Run the session (approx. 1 line). sess.run(cost, feed_dict={z: logits, y: labels}) # Close the session (approx. 1 line). See method 1 above. sess.close()
return cost
one hot 編碼

640?wx_fmt=png

def one_hot_matrix(labels, C):  
""" Creates a matrix where the i-th row corresponds to the ith class number and the jth column corresponds to the jth training example. So if example j had a label i. Then entry (i,j) will be 1. Arguments: labels -- vector containing the labels C -- number of classes, the depth of the one hot dimension Returns: one_hot -- one hot matrix """ # Create a tf.constant equal to C (depth), name it 'C'. (approx. 1 line) C = tf.constant(C) # Use tf.one_hot, be careful with the axis (approx. 1 line) one_hot_matrix = tf.one_hot(labels, C, axis=0) # Create the session (approx. 1 line) sess = tf.Session() one_hot = sess.run(one_hot_matrix) # Close the session (approx. 1 line). See method 1 above. sess.close()
return one_hot
參數初始化
def ones(shape):  """
  Creates an array of ones of dimension shape
  Arguments:
  shape -- shape of the array you want to create

  Returns: 
  ones -- array containing only ones
  """
  # Create "ones" tensor using tf.ones(...). (approx. 1 line)
  ones = tf.ones(shape)  # Create the session (approx. 1 line)
  sess = tf.Session()  # Run the session to compute 'ones' (approx. 1 line)
  ones = sess.run(ones)  # Close the session (approx. 1 line). See method 1 above.
  sess.close()  
return ones

一頓操作之后,我們已經將神經網絡的一些基礎運算利用 Tensorflow 定義好了。在下一期筆記中,我們將學習如何使用 Tensorflow 搭建神經網絡。

本文由《自興動腦人工智能》項目部 凱文 投稿。


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

    關注

    1817

    文章

    50098

    瀏覽量

    265423
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136962
  • 深度學習
    +關注

    關注

    73

    文章

    5599

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    機器學習深度學習中需避免的 7 個常見錯誤與局限性

    無論你是剛入門還是已經從事人工智能模型相關工作一段時間,機器學習深度學習中都存在一些我們需要時刻關注并銘記的常見錯誤。如果對這些錯誤置之不理,日后可能會引發諸多麻煩!只要我們密切關注
    的頭像 發表于 01-07 15:37 ?194次閱讀
    機器<b class='flag-5'>學習</b>和<b class='flag-5'>深度</b><b class='flag-5'>學習</b>中需避免的 <b class='flag-5'>7</b> 個常見錯誤與局限性

    穿孔機頂頭檢測儀 機器視覺深度學習

    LX01Z-DG626穿孔機頂頭檢測儀采用深度學習技術,能夠實現頂頭狀態的在線實時檢測,頂頭丟失報警,頂頭異常狀態報警等功能,響應迅速,異常狀態視頻回溯,檢測頂頭溫度,配備吹掃清潔系統,維護周期長
    發表于 12-22 14:33

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰課(11大系列課程,共5000+分鐘)

    大系列課程,形成\"傳統視覺算法→深度學習建?!I級部署\"的完整技術鏈,不論是新手、老手都適合學習。 1. 新手入門 課程通過三層保障體系降低
    發表于 12-04 09:28

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰課程(11大系列課程,共5000+分鐘)

    大系列課程,形成\"傳統視覺算法→深度學習建?!I級部署\"的完整技術鏈,不論是新手、老手都適合學習。 1. 新手入門 課程通過三層保障體系降低
    發表于 12-03 13:50

    如何深度學習機器視覺的應用場景

    深度學習視覺應用場景大全 工業制造領域 復雜缺陷檢測:處理傳統算法難以描述的非標準化缺陷模式 非標產品分類:對形狀、顏色、紋理多變的產品進行智能分類 外觀質量評估:基于學習的外觀質量標準判定 精密
    的頭像 發表于 11-27 10:19 ?223次閱讀

    學習物聯網怎么入門?

    景等。同時,學習物聯網的基本技術,如傳感器技術、通信技術、云計算等,也是非常重要的。 其次,選擇適合自己的學習方式也是入門學習物聯網的重要一步。
    發表于 10-14 10:34

    如何在機器視覺中部署深度學習神經網絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經常會出現“神經網絡”、“黑箱”、“標注”等術語。這些概
    的頭像 發表于 09-10 17:38 ?902次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b><b class='flag-5'>學習</b>神經網絡

    深度學習對工業物聯網有哪些幫助

    深度學習作為人工智能的核心分支,通過模擬人腦神經網絡的層級結構,能夠自動從海量工業數據中提取復雜特征,為工業物聯網(IIoT)提供了從數據感知到智能決策的全鏈路升級能力。以下從技術賦能、場景突破
    的頭像 發表于 08-20 14:56 ?1030次閱讀

    自動駕駛中Transformer大模型會取代深度學習嗎?

    [首發于智駕最前沿微信公眾號]近年來,隨著ChatGPT、Claude、文心一言等大語言模型在生成文本、對話交互等領域的驚艷表現,“Transformer架構是否正在取代傳統深度學習”這一話題一直被
    的頭像 發表于 08-13 09:15 ?4186次閱讀
    自動駕駛中Transformer大模型會取代<b class='flag-5'>深度</b><b class='flag-5'>學習</b>嗎?

    ARM入門學習方法分享

    。 以下是一些入門學習方法的分享: 一、 理解基本概念:首先,了解ARM是什么以及它的基本概念是很重要的。ARM(Advanced RISC Machines)指的是一種精簡指令集計算機(RISC
    發表于 07-23 10:21

    硬件原理圖學習筆記

    這一個星期認真學習了硬件原理圖的知識,做了一些筆記,方便以后查找。硬件原理圖分為三類1.管腳類(gpio)和門電路類輸入輸出引腳,上拉電阻,三極管與門,或門,非門上拉電阻:正向標志作用,給懸空的引腳
    的頭像 發表于 04-30 18:40 ?1456次閱讀
    硬件原理圖<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    嵌入式AI技術之深度學習:數據樣本預處理過程中使用合適的特征變換對深度學習的意義

    ? 作者:蘇勇Andrew 使用神經網絡實現機器學習,網絡的每個層都將對輸入的數據做一次抽象,多層神經網絡構成深度學習的框架,可以深度理解數據中所要表示的規律。從原理上看,使用
    的頭像 發表于 04-02 18:21 ?1519次閱讀

    用樹莓派搞深度學習?TensorFlow啟動!

    介紹本頁面將指導您在搭載64位Bullseye操作系統的RaspberryPi4上安裝TensorFlow。TensorFlow是一個專為深度學習開發的大型軟件庫,它消耗大量資源。您可
    的頭像 發表于 03-25 09:33 ?1210次閱讀
    用樹莓派搞<b class='flag-5'>深度</b><b class='flag-5'>學習</b>?<b class='flag-5'>TensorFlow</b>啟動!

    STM32Cube學習筆記 (十六篇全)

    資料介紹: STM32Cube學習筆記,一步一步手把手帶你進入STM32Cube的世界,包括點燈,按鍵,串口,ADC,DAC等等一共16篇。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、點贊、評論支持一下哦~)
    發表于 03-22 17:02

    IPC2221簡略學習筆記

    關于IPC2221的學習筆記
    發表于 03-14 18:07 ?10次下載