在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

【連載】深度學(xué)習(xí)筆記7:Tensorflow入門

人工智能實(shí)訓(xùn)營(yíng) ? 2018-08-24 18:31 ? 次閱讀

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

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

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


先看個(gè)簡(jiǎn)單的例子。

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

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

需要注意的一點(diǎn)是,創(chuàng)建會(huì)話后一定要執(zhí)行這個(gè)會(huì)話,且看下面示例:

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

在上面的示例中,我們創(chuàng)建了兩個(gè) TensorTensor 之間的乘積運(yùn)算,但直接打印的結(jié)果卻不是我們想要看到的 20. 原因則在于這里我們沒有創(chuàng)建會(huì)話并執(zhí)行,只是打印了兩個(gè)張量運(yùn)算之后的張量。創(chuàng)建會(huì)話并執(zhí)行操作如下:

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

除了直接定義變量之外,我們還可以通過創(chuàng)建占位符變量來稍后為之賦值,然后在運(yùn)行會(huì)話中傳入一個(gè) feed_dict ,示例如下:

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

相信你已經(jīng)大致明白了基于張量運(yùn)算的 Tensorflow 的底層運(yùn)行機(jī)制了。總結(jié)而言就是:創(chuàng)建張量、初始化張量、創(chuàng)建會(huì)話并執(zhí)行。

下面展示幾個(gè) Tensorflow 的神經(jīng)網(wǎng)絡(luò)計(jì)算的基礎(chǔ)函數(shù)示例。

線性函數(shù)
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
計(jì)算sigmoid函數(shù)
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
計(jì)算損失函數(shù)

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
參數(shù)初始化
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

一頓操作之后,我們已經(jīng)將神經(jīng)網(wǎng)絡(luò)的一些基礎(chǔ)運(yùn)算利用 Tensorflow 定義好了。在下一期筆記中,我們將學(xué)習(xí)如何使用 Tensorflow 搭建神經(jīng)網(wǎng)絡(luò)。

本文由《自興動(dòng)腦人工智能》項(xiàng)目部 凱文 投稿。


聲明:本文內(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)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1804

    文章

    48737

    瀏覽量

    246664
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8492

    瀏覽量

    134122
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5555

    瀏覽量

    122498
收藏 人收藏

    評(píng)論

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

    用樹莓派搞深度學(xué)習(xí)TensorFlow啟動(dòng)!

    介紹本頁(yè)面將指導(dǎo)您在搭載64位Bullseye操作系統(tǒng)的RaspberryPi4上安裝TensorFlowTensorFlow是一個(gè)專為深度學(xué)習(xí)開發(fā)的大型軟件庫(kù),它消耗大量資源。您可
    的頭像 發(fā)表于 03-25 09:33 ?311次閱讀
    用樹莓派搞<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>?<b class='flag-5'>TensorFlow</b>啟動(dòng)!

    NPU在深度學(xué)習(xí)中的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其核心驅(qū)動(dòng)力之一,已經(jīng)在眾多領(lǐng)域展現(xiàn)出了巨大的潛力和價(jià)值。NPU(Neural Processing Unit,神經(jīng)網(wǎng)絡(luò)處理單元)是專門為深度學(xué)習(xí)
    的頭像 發(fā)表于 11-14 15:17 ?1719次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU在深度學(xué)習(xí)中的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是深度學(xué)習(xí)
    的頭像 發(fā)表于 10-27 11:13 ?1117次閱讀

    AI大模型與深度學(xué)習(xí)的關(guān)系

    AI大模型與深度學(xué)習(xí)之間存在著密不可分的關(guān)系,它們互為促進(jìn),相輔相成。以下是對(duì)兩者關(guān)系的介紹: 一、深度學(xué)習(xí)是AI大模型的基礎(chǔ) 技術(shù)支撐 :深度
    的頭像 發(fā)表于 10-23 15:25 ?2698次閱讀

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:41 ?0次下載
    快速部署<b class='flag-5'>Tensorflow</b>和TFLITE模型在Jacinto<b class='flag-5'>7</b> Soc

    如何在Tensorflow中實(shí)現(xiàn)反卷積

    TensorFlow中實(shí)現(xiàn)反卷積(也稱為轉(zhuǎn)置卷積或分?jǐn)?shù)步長(zhǎng)卷積)是一個(gè)涉及多個(gè)概念和步驟的過程。反卷積在深度學(xué)習(xí)領(lǐng)域,特別是在圖像分割、圖像超分辨率、以及生成模型(如生成對(duì)抗網(wǎng)絡(luò)GANs)等任務(wù)中
    的頭像 發(fā)表于 07-14 10:46 ?1034次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個(gè)開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。TensorFlow
    的頭像 發(fā)表于 07-12 16:38 ?1204次閱讀

    深度學(xué)習(xí)中的時(shí)間序列分類方法

    時(shí)間序列分類(Time Series Classification, TSC)是機(jī)器學(xué)習(xí)深度學(xué)習(xí)領(lǐng)域的重要任務(wù)之一,廣泛應(yīng)用于人體活動(dòng)識(shí)別、系統(tǒng)監(jiān)測(cè)、金融預(yù)測(cè)、醫(yī)療診斷等多個(gè)領(lǐng)域。隨著深度
    的頭像 發(fā)表于 07-09 15:54 ?1952次閱讀

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

    TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開源框架。TensorFlow由Google Brain團(tuán)隊(duì)開發(fā),而Py
    的頭像 發(fā)表于 07-05 09:45 ?1363次閱讀

    tensorflow和pytorch哪個(gè)好

    :2015年由Google Brain團(tuán)隊(duì)發(fā)布。 語(yǔ)言支持 :主要使用Python,也支持C++、Java等。 設(shè)計(jì)哲學(xué) :TensorFlow是一個(gè)端到端的機(jī)器學(xué)習(xí)平臺(tái),支持從研究到生產(chǎn)的所有階段
    的頭像 發(fā)表于 07-05 09:42 ?1119次閱讀

    tensorflow簡(jiǎn)單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡(jiǎn)單的模型訓(xùn)練。TensorFlow是一個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識(shí)別、自然語(yǔ)言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?1204次閱讀

    keras模型轉(zhuǎn)tensorflow session

    和訓(xùn)練深度學(xué)習(xí)模型。Keras是基于TensorFlow、Theano或CNTK等底層計(jì)算框架構(gòu)建的。TensorFlow是一個(gè)開源的機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 07-05 09:36 ?807次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個(gè)廣泛使用的開源機(jī)器學(xué)習(xí)庫(kù),它提供了豐富的API來構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。在模型訓(xùn)練完成后,保存模型以便將來使用或部署是一項(xiàng)常見的需求。同樣,加載已保存的模
    的頭像 發(fā)表于 07-04 13:07 ?2530次閱讀

    TensorFlow的定義和使用方法

    TensorFlow是一個(gè)由谷歌人工智能團(tuán)隊(duì)谷歌大腦(Google Brain)開發(fā)和維護(hù)的開源機(jī)器學(xué)習(xí)庫(kù)。它基于數(shù)據(jù)流編程(dataflow programming)的概念,將復(fù)雜的數(shù)學(xué)運(yùn)算表示為
    的頭像 發(fā)表于 07-02 14:14 ?1340次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個(gè)重要分支,在過去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度
    的頭像 發(fā)表于 07-02 14:04 ?1534次閱讀
    主站蜘蛛池模板: 男女午夜免费视频 | 国产最好的精华液网站 | 亚洲日韩图片专区第1页 | 日本黄色绿像 | 射菊吧 | 午夜精品视频在线观看美女 | 99精品在免费线视频 | 又粗又硬又大久久久 | 天天干视频网站 | 免费看一级毛片 | 丁香六月在线 | 2020天天操| 日韩精品另类天天更新影院 | 91福利网站 | 午夜欧美福利视频 | 九九视频只有精品 | 国产精品臀控福利在线观看 | 777777777妇女亚洲 | 特色毛片| 天天综合网在线 | 美女喷白浆视频 | 曰本福利写真片视频在线 | 无遮挡很爽很污很黄的网站w | 日本三级黄色网址 | 天天操夜夜欢 | www天堂在线 | 午夜三级a三点 | 91久久人澡人人添人人爽 | 成人av在线播放 | 久久aa毛片免费播放嗯啊 | 亚洲高清视频一区 | 福利视频自拍 | 亚欧人成精品免费观看 | 狠狠噜天天噜日日噜 | 日本三级中文字幕 | 九九九精品午夜在线观看 | 久久久久久国产精品免费免 | 国内在线观看精品免费视频 | 丁香伊人五月综合激激激 | 国产大乳喷奶水在线看 | 日本黄色片免费看 |