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

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

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

探究?jī)?yōu)化機(jī)器學(xué)習(xí)模型的關(guān)鍵技術(shù)

Tensorflowers ? 來(lái)源:cg ? 2019-01-05 09:04 ? 次閱讀

設(shè)置

importtensorflow astftf.enable_eager_execution()

梯度帶

TensorFlow 提供用于自動(dòng)微分的 tf.GradientTapeAPI - 計(jì)算與其輸入變量相關(guān)的計(jì)算梯度。TensorFlow 通過tf.GradientTape“記錄” 在上下文中執(zhí)行的所有操作到 “磁帶”(tape)上。然后,TensorFlow 使用該磁帶和與每個(gè)記錄操作相關(guān)聯(lián)的梯度來(lái)計(jì)算使用反向模式微分的 “記錄” 計(jì)算的梯度。

例如:

x = tf.ones((2, 2)) with tf.GradientTape() as t: t.watch(x) y = tf.reduce_sum(x) z = tf.multiply(y, y)# Derivative of z with respect to the original input tensor xdz_dx = t.gradient(z, x)for i in [0, 1]: for j in [0, 1]: assert dz_dx[i][j].numpy() == 8.0

您還可以根據(jù)在 “記錄”tf.GradientTape 上下文時(shí)計(jì)算的中間值請(qǐng)求輸出的梯度。

x = tf.ones((2, 2)) with tf.GradientTape() as t: t.watch(x) y = tf.reduce_sum(x) z = tf.multiply(y, y)# Use the tape to compute the derivative of z with respect to the# intermediate value y.dz_dy = t.gradient(z, y)assert dz_dy.numpy() == 8.0

默認(rèn)情況下,GradientTape 持有的資源會(huì)在調(diào)用 GradientTape.gradient() 方法后立即釋放。要在同一計(jì)算中計(jì)算多個(gè)梯度,創(chuàng)建一個(gè)持久的梯度帶。這允許多次調(diào)用 gradient() 方法。當(dāng)磁帶對(duì)象 tape 被垃圾收集時(shí)釋放資源。例如:

x = tf.constant(3.0)with tf.GradientTape(persistent=True) as t: t.watch(x) y = x * x z = y * ydz_dx = t.gradient(z, x) # 108.0 (4*x^3 at x = 3)dy_dx = t.gradient(y, x) # 6.0del t # Drop the reference to the tape

記錄控制流

因?yàn)榇艓В╰ape)在執(zhí)行時(shí)記錄操作,所以自然會(huì)處理 Python 控制流(例如使用 ifs 和 whiles):

def f(x, y): output = 1.0 for i in range(y): if i > 1 and i < 5:? ? ? output = tf.multiply(output, x)? return outputdef grad(x, y):? with tf.GradientTape() as t:? ? t.watch(x)? ? out = f(x, y)? return t.gradient(out, x) x = tf.convert_to_tensor(2.0)assert grad(x, 6).numpy() == 12.0assert grad(x, 5).numpy() == 12.0assert grad(x, 4).numpy() == 4.0

高階梯度

GradientTape 記錄上下文管理器內(nèi)部的操作以實(shí)現(xiàn)自動(dòng)區(qū)分。如果梯度是在這個(gè)上下文中計(jì)算的,那么梯度計(jì)算也會(huì)被記錄下來(lái)。因此,同樣的 API 也適用于高階梯度。例如:

x = tf.Variable(1.0) # Create a Tensorflow variable initialized to 1.0with tf.GradientTape() as t: with tf.GradientTape() as t2: y = x * x * x # Compute the gradient inside the 't' context manager # which means the gradient computation is differentiable as well. dy_dx = t2.gradient(y, x)d2y_dx2 = t.gradient(dy_dx, x)assert dy_dx.numpy() == 3.0assert d2y_dx2.numpy() == 6.0

下一步

以上教程中,我們介紹了 TensorFlow 中的梯度計(jì)算。有了這些,我們就有了足夠的基本要素來(lái)構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)

聲明:本文內(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)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8460

    瀏覽量

    133420
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60732

原文標(biāo)題:自動(dòng)微分,優(yōu)化機(jī)器學(xué)習(xí)模型的關(guān)鍵技術(shù)

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀

    今天學(xué)習(xí)<基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學(xué)習(xí)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù)
    發(fā)表于 01-14 16:51

    汽車總線及其關(guān)鍵技術(shù)的研究

    汽車總線及其關(guān)鍵技術(shù)的研究
    發(fā)表于 07-10 11:33

    CDMA原理與關(guān)鍵技術(shù)

    CDMA原理與關(guān)鍵技術(shù)
    發(fā)表于 08-16 20:25

    物聯(lián)網(wǎng)的關(guān)鍵技術(shù)有哪些

    物聯(lián)網(wǎng)關(guān)鍵技術(shù)————傳感器技術(shù)
    發(fā)表于 06-16 17:25

    智能通信終端有哪些關(guān)鍵技術(shù)?

    智能通信終端有哪些關(guān)鍵技術(shù)?
    發(fā)表于 05-26 07:04

    MIMO-OFDM中有哪些關(guān)鍵技術(shù)

    本文介紹了MIMO-OFDM技術(shù)中的關(guān)鍵技術(shù),如信道估計(jì)、同步、分集技術(shù)和空時(shí)編碼等。
    發(fā)表于 05-27 06:05

    POE的關(guān)鍵技術(shù)有哪些?

    使用以太網(wǎng)線供電的優(yōu)勢(shì)是什么?PoE設(shè)備是怎么供電的?POE的關(guān)鍵技術(shù)有哪些?
    發(fā)表于 06-10 09:26

    機(jī)器人實(shí)現(xiàn)智能的關(guān)鍵技術(shù)到底是什么?

    機(jī)器人實(shí)現(xiàn)智能的關(guān)鍵技術(shù)到底是什么?這些技術(shù)在最近十年會(huì)發(fā)展到什么程度?整個(gè)產(chǎn)業(yè)的應(yīng)用前景將會(huì)如何?
    發(fā)表于 07-05 06:55

    明白VPP關(guān)鍵技術(shù)有哪些

    隨著人工智能技術(shù)的不斷發(fā)展,越來(lái)越多的行業(yè)開始使用人工智能技術(shù),這也使得智能虛擬代理技術(shù)得到了廣泛的應(yīng)用。為了能夠深入了解智能虛擬代理技術(shù),需要明白VPP
    發(fā)表于 08-31 07:28

    面向OpenHarmony終端的密碼安全關(guān)鍵技術(shù)

    終端-云端協(xié)同,實(shí)現(xiàn)當(dāng)前國(guó)產(chǎn)體系密碼技術(shù)合規(guī)應(yīng)用、首創(chuàng)并優(yōu)化非交互聯(lián)邦學(xué)習(xí)、解決云-端整體安全技術(shù)難題,具備創(chuàng)新性、可行性。 歡迎大家加入到密碼安全
    發(fā)表于 09-13 19:20

    視覺導(dǎo)航關(guān)鍵技術(shù)及應(yīng)用

    由于視覺導(dǎo)航技術(shù)的應(yīng)用越來(lái)越普及 ,因此 ,有必要對(duì)視覺導(dǎo)航中的關(guān)鍵技術(shù)及應(yīng)用進(jìn)行研究。文章對(duì)其中的圖像處理技術(shù)和定位與跟蹤技術(shù)進(jìn)行了詳細(xì)研究 ,并與此相對(duì)應(yīng) ,介紹的相關(guān)的應(yīng)用。
    發(fā)表于 09-25 08:09

    工業(yè)機(jī)器人的關(guān)鍵技術(shù)及應(yīng)用趨勢(shì)

    工業(yè)機(jī)器人的關(guān)鍵技術(shù)及應(yīng)用趨勢(shì)
    發(fā)表于 02-07 18:25 ?17次下載

    機(jī)器學(xué)習(xí)模型切實(shí)可行的優(yōu)化步驟

    這篇文章提供了可以采取的切實(shí)可行的步驟來(lái)識(shí)別和修復(fù)機(jī)器學(xué)習(xí)模型的訓(xùn)練、泛化和優(yōu)化問題。
    的頭像 發(fā)表于 05-04 12:08 ?2749次閱讀

    關(guān)于生成式AI的關(guān)鍵技術(shù)

    生成式AI的關(guān)鍵技術(shù)是生成式對(duì)抗網(wǎng)絡(luò)(GANs, Generative Adversarial Networks ),其本質(zhì)是一種深度學(xué)習(xí)模型,是近年來(lái)復(fù)雜分布上無(wú)監(jiān)督學(xué)習(xí)最具前景的方
    的頭像 發(fā)表于 10-17 09:27 ?2502次閱讀

    LLM大模型推理加速的關(guān)鍵技術(shù)

    LLM(大型語(yǔ)言模型)大模型推理加速是當(dāng)前人工智能領(lǐng)域的一個(gè)研究熱點(diǎn),旨在提高模型在處理復(fù)雜任務(wù)時(shí)的效率和響應(yīng)速度。以下是對(duì)LLM大模型推理加速關(guān)鍵
    的頭像 發(fā)表于 07-24 11:38 ?1301次閱讀