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

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

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

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

結(jié)合Rosetta介紹如何定制化改造TensorFlow前后端相關(guān)組件

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2020-11-26 09:36 ? 次閱讀

本文來自社區(qū)投稿與征集,作者Rosetta 技術(shù)團(tuán)隊(duì)。本文源自他們在 GDG 活動中的分享。

引言

我們之前分享了:【技術(shù)分享】隱私 AI 工程技術(shù)實(shí)踐指南,從整體上了介紹了基于深度學(xué)習(xí)框架開發(fā)隱私 AI 框架的?程挑戰(zhàn)和可?解決?案。在本文中,我們將進(jìn)?步結(jié)合 Rosetta 介紹如何定制化改造 TensorFlow 前后端相關(guān)組件,以集成 MPC (Multi-Party Computation) 等隱私計(jì)算技術(shù),同時保留對 TensorFlow 接口 API 的復(fù)?,從?實(shí)現(xiàn)我們上?篇?章中所強(qiáng)調(diào)的“系統(tǒng)易?性”。

?前 Rosetta 主要基于 TensorFlow 1.14 CPU 版本加以開發(fā)(以下簡稱 TensorFlow 為 TF),這是因?yàn)?TF 1.x ?前在?業(yè)界中實(shí)際應(yīng)?較為?泛,?引?動態(tài)圖等?級功能的 TF 2.0,則由于接?不向后兼容等問題,仍沒有得到?規(guī)模落地。后續(xù)我們也將在 Rosetta 本身功能穩(wěn)定的基礎(chǔ)上考慮?持 TF 2.0。下?就讓我們開始吧。

TensorFlow 快速回顧

想要基于 AI 框架進(jìn)?步擴(kuò)展引?隱私計(jì)算功能,第?步需要?較深?地了解這些 AI 框架,所以?先讓我們簡單回顧?下 TF 的核?概念以及宏觀的內(nèi)部處理過程。

TensorFlow 核心概念

Tensor(張量)

深度學(xué)習(xí)需要完成對?量?維度復(fù)雜數(shù)據(jù)的處理,在 TensorFlow 中,? Tensor 來封裝同?類型數(shù)據(jù)的?維數(shù)組。其中,基礎(chǔ)類型除了各種不同精度的整數(shù)、浮點(diǎn)數(shù)外,還?持 tf.string 類型,這給我們提供了進(jìn)??定義類型改造的可能性。

?個三維 Tensor(圖?來??絡(luò))

Operation(算?)

Operation(算?,有時也稱“操作”)?來封裝對于 Tensor 的處理邏輯。同時也是連接 TF 的前端和后端之間邏輯處理的基本單元,在實(shí)際使?中,?戶可以使? Keras 等上層封裝 API 更?便的表達(dá)復(fù)雜計(jì)算邏輯,但是這些上層模塊的內(nèi)部,最終也會調(diào)?各個算?來完成邏輯的表達(dá)。

Graph(計(jì)算圖)

?戶在 TF 前端調(diào)?各 API 形成的完整計(jì)算邏輯,在內(nèi)部會以 data?ow graph 的形式來表達(dá)。在這?有向?環(huán)圖 (DAG) 上,以算?等作為節(jié)點(diǎn),以 Tesnor 等作為邊來指明數(shù)據(jù)的流動路徑。在 graph 上,有些節(jié)點(diǎn)是 TF 框架?身根據(jù)需要添加的,?如,?戶在 training 算法階段時,只需要調(diào)?各種優(yōu)化器 (Optimizer) 的 minimize ?法,TF ?身就會?動找到前向圖中各算?所對應(yīng)的梯度算?,并按照數(shù)學(xué)上的鏈?zhǔn)角髮?dǎo)法則,構(gòu)建出反向梯度?圖。

TensorFlow 數(shù)據(jù)流計(jì)算圖

Session(會話)

Session 主要是在實(shí)際執(zhí)? graph 時對?次執(zhí)?的上下?進(jìn)?維護(hù)處理。當(dāng)?戶調(diào)?其 run ?法時,TF 就會分析為了獲取這?次的計(jì)算?標(biāo)所需要運(yùn)?的?圖,并結(jié)合 TF 內(nèi)置的強(qiáng)?的并?優(yōu)化、分布式執(zhí)?等模塊,將所需要執(zhí)?的邏輯進(jìn)?步拆分為各個?圖,各?映射到當(dāng)前的可?設(shè)備資源上,最終調(diào)度這些設(shè)備以并?的?式?效完成計(jì)算任務(wù)。

TensorFlow 分布式并?執(zhí)?(圖?來??絡(luò))

TensorFlow 的 codebase 本身還是很復(fù)雜的,篇幅所限,難以在此對 TensorFlow 進(jìn)?深?的介紹,感興趣的讀者可以參考 TensorFlow 公眾號(TensorFlow_official) 上其他優(yōu)秀?章以進(jìn)?步學(xué)習(xí) TensorFlow。

TensorFlow 自定義算子庫的擴(kuò)展方法

TF 提供了?較豐富的擴(kuò)展?法,除了在 Python 層可以基于內(nèi)置的豐富算?集合,通過模塊的繼承、組裝等?式得到?定義的功能之外,還可以在后端 C++ 層?定義??的算?[2]。在后端基于 CustomC++op 機(jī)制進(jìn)?擴(kuò)展相?于在前端層進(jìn)?擴(kuò)展有?些特別的優(yōu)勢:

有時候基于現(xiàn)有 TF 原?算?表達(dá)上層?定義邏輯很困難,?在后端實(shí)現(xiàn)則更靈活?由;

通過后端 CustomC++op,可以以更加?效的?式實(shí)現(xiàn)??的邏輯,可以在其中進(jìn)?更底層的、?向編譯器等的各種優(yōu)化;

整體上看,基于 TF 的擴(kuò)展?具,使? customC++op,只需要完成以下四步即可:

1. 通過 TF 提供的 C++ 宏?具注冊新的 op。這主要是定義好這個 op 的輸?輸出類型、名稱等接?信息。例如在 Rosetta 中可以如下定義?個新的 op:

REGISTER_OP("RttMatmul") .Input("x: string") .Input("y: string") .Output("res: string") .Attr("transpose_a: bool = false") .Attr("transpose_b: bool = false") .SetIsStateful();

2. 在 C++ 中具體的實(shí)現(xiàn)這個 op 所對應(yīng)的內(nèi)部處理邏輯,這就是所謂的后端 “kernel”。TF 提供了?些?便的基類接?,?戶?般只需要定義?個?類,override 實(shí)現(xiàn)其中的 compute ?法即可,例如:

template class RttMatMulOp :public OpKernel { public: explicit RttMatMulOp(OpKernelConstruction* context) : OpKernel(context) { OP_REQUIRES_OK(context, context->GetAttr("transpose_a", &transpose_a_)); OP_REQUIRES_OK(context, context->GetAttr("transpose_b", &transpose_b_)); } void Compute(OpKernelContext* context) override { // Check if the dimensions of the two matrices are valid const Tensor& x = context->input(0); const Tensor& y = context->input(1); // detailed implementation... } }

3. 基于 REGISTER_KERNEL_BUILDER 這樣的宏,將上?所定義的接?和內(nèi)部的實(shí)現(xiàn)給綁定起來。這是因?yàn)?TF ?持基于不同的輸?、輸出類型和所運(yùn)?的底層設(shè)備架構(gòu)來定義同?個算?不同的內(nèi)部實(shí)現(xiàn),所以?戶可以定義多種 kernel 實(shí)現(xiàn),告知給系統(tǒng)什么場景下運(yùn)?具體哪?個 kernel,在實(shí)際運(yùn)?時,TF 就可以根據(jù)不同的設(shè)備、數(shù)據(jù)流上下?調(diào)?不同的 kernel 來實(shí)際執(zhí)?此 op。例如:

REGISTER_KERNEL_BUILDER(Name("RttMatmul").Device(DEVICE_CPU), RttMatMulOp);

4. 將你的后端算?庫編譯為?個動態(tài)庫 so ?件后,在 Python 層調(diào)?接?引?此模塊,然后就可以如同調(diào)?原?算??樣的?式來調(diào)?這些?定義算?了。例如:

# load librtt_ops.so _rtt_ops_lib = os.path.dirname(__file__) + '/../../../librtt-ops.so' rtt_ops = tf.load_op_library(_rtt_ops_lib) # now, you can use the ops in this library as rtt_ops.rtt_matmul

如果你需要在模型訓(xùn)練程序中調(diào)?這個?定義算?,你還需要在 Python 層通過 @ops.RegisterGradient("XXXOp") 來注冊這個算?對應(yīng)的梯度算?,通過這種?式,TF 就可以在?動構(gòu)建反向梯度圖時?動的實(shí)現(xiàn)對?定義算?梯度的集成。

Rosetta 利用 TF 這?擴(kuò)展機(jī)制引?兩類算?:中間過渡層 RttOps 算?庫和隱私計(jì)算 SecureOps 算?庫,前者是為了?持?向?定義數(shù)據(jù)類型的計(jì)算圖的構(gòu)建,后者是為了對接后端隱私計(jì)算功能,并在執(zhí)?圖時進(jìn)?動態(tài)綁定。之所以從設(shè)計(jì)上區(qū)分這兩類算?,是因?yàn)榭梢赃M(jìn)?步解耦圖的構(gòu)建和圖的執(zhí)?,提供更多的靈活性。引?了這兩個基礎(chǔ)的算?庫之后,就可以進(jìn)?步的進(jìn)?整體的改造了。

RttOp 算?庫
與后端 MPC 隱私計(jì)算完全?關(guān)的輔助中間層,?系列的“浮標(biāo)”置位算?,?持?定義Tensor類型。其內(nèi)部默認(rèn)的實(shí)現(xiàn)邏輯是和對應(yīng)的 TF 原?算??樣的。

SecureOp 算?庫
完整的前后端算?庫,注冊了對應(yīng)的梯度函數(shù);在內(nèi)部實(shí)現(xiàn)中調(diào)?隱私協(xié)議層的抽象算?接?實(shí)現(xiàn)和 TF 的對接。

Rosetta 對 TensorFlow 的深度定制化

如上?篇?章整體介紹的那樣,作為?向?qū)嶋H?業(yè)落地?標(biāo)的隱私 AI 框架,Rosetta 對于 TF 的改造原則始終是為了提供更加便于 AI 開發(fā)者使?的上層接?,以及兼顧系統(tǒng)后端隱私協(xié)議的可擴(kuò)展性。

Rosetta 整體?程架構(gòu)

從系統(tǒng)架構(gòu)和代碼上看,改造的??可以分為兩?部分:

后端 C++ 部分的適配定制。主要以?定義算?的 kernel 形式進(jìn)?適配。?部分接?的輸?輸出參數(shù)是以 tf.string 基礎(chǔ)類型的 Tensor,??封裝的是?定義的密?數(shù)據(jù)。在隱私算? SecureOps 的 kernel 內(nèi)部會進(jìn)?步調(diào)?統(tǒng)?的密碼協(xié)議接?來完成 TF 到隱私計(jì)算功能的聯(lián)通。

前端 Python 部分的適配定制。這?除了在 Python 前端引?我們?定義的算?庫之外,還需要進(jìn)?步改造 TF 中的?動求導(dǎo)功能等模塊以實(shí)現(xiàn)對于新隱私算?的?動構(gòu)建圖、?動求導(dǎo)的?持。

從對程序的動態(tài)處理?度來看,如前?篇?章所說,Rosetta 是經(jīng)過兩個階段的 Pass,來完成到底層多?協(xié)作的 MPC 處理程序的轉(zhuǎn)換。這??部分基于 TF 的前后端改造都是為了完成 StaticPass 階段的轉(zhuǎn)換,即將原? Tensor 轉(zhuǎn)換為?持?定義密?類型的 RttTensor,將原? Operation 轉(zhuǎn)換為?持 tf.string 格式輸?輸出的 RttOp ,并最終在圖開始啟動時進(jìn)?步的轉(zhuǎn)換為承載實(shí)際 MPC 操作的 SecureOp 。

細(xì)?的讀者可以看出,上?在介紹 TF 的 customC++op 擴(kuò)展機(jī)制的同時,我們已經(jīng)展示了如何定義 Rosetta 中的單個新算?。接下來,我們介紹?下如何基于這些算?實(shí)現(xiàn)計(jì)算圖的分階段轉(zhuǎn)換。

計(jì)算圖的轉(zhuǎn)換構(gòu)建過程

引入 rosetta 庫時

?戶在前端執(zhí)? import lattciex.rosetta 之后,Rosetta 就會? RttOp 靜態(tài)替換掉原? TF 中對應(yīng)的原? API 算?,且各個原? Tensor 也會被包裝?層到 RttTensor ,其與原? Tensor 的主要區(qū)別是,其數(shù)據(jù)的基礎(chǔ)類型是 tf.string,且對應(yīng)的計(jì)算算?是 RttOp。這種基礎(chǔ)類型的轉(zhuǎn)換是基于 RttOp 算?庫中的 TfToRtt 和 RttToTf 兩個?于類型轉(zhuǎn)換的算?來完成的。

Rosetta在import時的靜態(tài)替換

調(diào)用 Session.run 接口時

我們同樣 hook 了 Session.run ??,在其內(nèi)部完成從上?步驟中 RttOp 算?到 SecureOp 算?的轉(zhuǎn)換。如果?戶使? TensorBoard ?具查看此時的運(yùn)?圖,就會看到我們在圖上添加了?個和原? TF 計(jì)算圖基本同構(gòu)的新?圖,這個?圖就是由 SecureOp 構(gòu)成。

TensorBoard 可以查看得到的 SecureOp 計(jì)算圖

和上?介紹的原? TF 中的完整圖構(gòu)建過程?樣,如果?戶的程序含有模型訓(xùn)練過程,調(diào)?了優(yōu)化器 Optimizer 的 minimize ?法,則我們還需要完成對 SecureOp 的反向梯度圖?動?成的?持。

?先,我們需要注冊各個 SecureOp 算?所對應(yīng)的梯度函數(shù)。?如對于隱私矩陣乘法算? SecureMatMul,我們按照底層梯度的計(jì)算邏輯,定義其梯度函數(shù)如下:

@ops.RegisterGradient("SecureMatmul") def SecureMatMulGrad(op, grad): """The gradient for the Secure MatMul operator.""" t_a = op.get_attr("transpose_a") t_b = op.get_attr("transpose_b") a = op.inputs[0] b = op.inputs[1] if not t_a and not t_b: grad_a = SecureMatMul(grad, b, transpose_b=True) grad_b = SecureMatMul(a, grad, transpose_a=True) elif not t_a and t_b: grad_a = SecureMatMul(grad, b) grad_b = SecureMatMul(grad, a, transpose_a=True) elif t_a and not t_b: grad_a = SecureMatMul(b, grad, transpose_b=True) grad_b = SecureMatMul(a, grad) elif t_a and t_b: grad_a = SecureMatMul(b, grad, transpose_a=True, transpose_b=True) grad_b = SecureMatMul(grad, a, transpose_a=True, transpose_b=True) return grad_a, grad_b

此外,由于我們使? tf.string 來統(tǒng)?承載?定義的密?數(shù)據(jù)類型,? TF 本身是不?持對于 tf.string 類型算?的?動求導(dǎo)的,所以 Rosetta 中還對 tf.python.ops.gradients_util 等??進(jìn)?了 hook 改造。?如,在下?這?,我們設(shè)定當(dāng) tensor 的基礎(chǔ)類型為 string 時仍可以繼續(xù)進(jìn)?反向傳播:

反向梯度圖的?動?成

通過這些精細(xì)的定制化改造,最終就可以實(shí)現(xiàn)反向梯度?圖的?動?成,可以極?的降低?戶上?隱私計(jì)算的開發(fā)難度。

補(bǔ)充說明

并?所有的算?都需要轉(zhuǎn)換為 SecureOp,這是因?yàn)槿绻?個局部?圖中全部的輸?都是本地的常量(公開的寫定到代碼中的數(shù)據(jù),?需保護(hù)),那么就沒有必要將這個?圖轉(zhuǎn)換為多?協(xié)作的隱私計(jì)算?式計(jì)算,這樣可以減少不必要的計(jì)算時間。

轉(zhuǎn)換時,由于此時知道了即將運(yùn)?的完整?圖的信息,?如 DAG 圖上有多少了算?需要運(yùn)?,所以可以在這?進(jìn)??些定制化的優(yōu)化,?如優(yōu)化底層協(xié)議中多?之間的并發(fā)通訊。

在通過上述過程完成在前端層到 SecureOp 圖的構(gòu)建后,接下?就是依賴 TensorFlow ?身的圖執(zhí)?引擎來調(diào)度執(zhí)?各個 SecureOp 的后端實(shí)現(xiàn)了,在這個 kernal 中,為了和具體使?的隱私計(jì)算技術(shù)解耦,我們所調(diào)?的是密碼協(xié)議接?,?如 SecureMatMul ?最終通過如下代碼?段來調(diào)?內(nèi)部“隱私計(jì)算引擎”。這?的內(nèi)部細(xì)節(jié),我們會在后續(xù)內(nèi)容中加以介紹。

// call protocol ops vector outstr(m*n); ProtocolManager::Instance()->GetProtocol()->GetOps(msg_id().str())->Matmul(in1, in2, outstr, &attrs_);

小結(jié)

在本篇?章中,我們進(jìn)?步介紹了 Rosetta 是如何深度適配、定制化改造 TensorFlow 的各個組件以引?隱私計(jì)算功能的。與其他隱私 AI 開源框架相?,Rosetta 由于需要同時對 TensorFlow 的前端和后端進(jìn)?擴(kuò)展,并且完全復(fù)?對上層的 API 接?,所以定制化的程度更加深?。這?的改造是偏向于“系統(tǒng)易?性”這??標(biāo)的,不需要太多涉及 MPC 等隱私計(jì)算技術(shù)。

作者介紹

Rosetta 技術(shù)團(tuán)隊(duì),?群專注于技術(shù)、玩轉(zhuǎn)算法、追求?效的?程師。Rosetta 是?款基于主流深度學(xué)習(xí)框架 TensorFlow 的隱私 AI 框架,作為矩陣元公司?規(guī)模商業(yè)落地的重要引擎,它承載和結(jié)合了隱私計(jì)算、區(qū)塊鏈和 AI 三種典型技術(shù)。

?前 Rosetta 已經(jīng)在 Github 開源(https://github.com/LatticeX-Foundation/Rosettaf),歡迎關(guān)注并參與到 Rosetta 社區(qū)中來。

參考文獻(xiàn)

[1] Abadi,Martín,etal."Tensor?ow:A system for large-scale machine learning." 12th{USENIX}symposium on operat ing syst ems design and implement at ion({OSDI}16).2016.

[2] TensorFlow 對定制化 Op 擴(kuò)展的?持:https://tensor?ow.google.cn/guide/create_op

責(zé)任編輯:xj

原文標(biāo)題:社區(qū)分享 | ?向隱私 AI 的 TensorFlow 深度定制化實(shí)踐

文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    0

    文章

    372

    瀏覽量

    41259
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    33591

    瀏覽量

    274307
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    330

    瀏覽量

    60941

原文標(biāo)題:社區(qū)分享 | ?向隱私 AI 的 TensorFlow 深度定制化實(shí)踐

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

收藏 人收藏

    評論

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

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

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

    RAKsmart美國裸機(jī)云服務(wù)器DeepSeek的高級定制部署方案

    在RAKsmart美國裸機(jī)云服務(wù)器上進(jìn)行DeepSeek的高級定制部署,需結(jié)合高性能硬件與靈活的軟件配置,以實(shí)現(xiàn)模型優(yōu)化、多任務(wù)并行及安全性提升。以下是針對企業(yè)級需求的詳細(xì)方案,主機(jī)推薦小編為您整理發(fā)布RAKsmart美國裸機(jī)
    的頭像 發(fā)表于 03-13 11:55 ?309次閱讀

    定制互連解決方案:理想互連的正確選擇

    在雷迪埃,“定制”絕非僅僅是改造產(chǎn)品手冊中的組件,而是開啟創(chuàng)新之門,創(chuàng)造全新的互連解決方案。
    的頭像 發(fā)表于 02-14 09:43 ?290次閱讀
    <b class='flag-5'>定制</b><b class='flag-5'>化</b>互連解決方案:理想互連的正確選擇

    將DMA與C64x的框架組件結(jié)合使用

    電子發(fā)燒友網(wǎng)站提供《將DMA與C64x的框架組件結(jié)合使用.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 10:29 ?0次下載
    將DMA與C64x的框架<b class='flag-5'>組件</b><b class='flag-5'>結(jié)合</b>使用

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發(fā)表于 08-25 11:38 ?1955次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測試

    通力發(fā)布最新定制電梯更新改造方案

    積極響應(yīng)"兩新"工作部署,助力城市高質(zhì)量發(fā)展 上海2024年8月6日 /美通社/ -- 作為全球電梯和自動扶梯行業(yè)的領(lǐng)導(dǎo)者之一,通力電梯今日宣布推出最新的定制電梯更新改造方案,旨在積極響應(yīng)并
    的頭像 發(fā)表于 08-06 08:30 ?480次閱讀

    宜科EEDS Slim數(shù)字擴(kuò)展組件介紹

    伴隨工業(yè)互聯(lián)網(wǎng)理念及數(shù)字能力建設(shè)需求的普及,企業(yè)生產(chǎn)力規(guī)劃過程對于數(shù)字能力的要求成為基礎(chǔ)技術(shù)要求,對于設(shè)備制造商而言,選擇直接開放設(shè)備數(shù)據(jù)接口或是通過搭載數(shù)字能力組件,更好的體現(xiàn)
    的頭像 發(fā)表于 07-18 16:16 ?568次閱讀
    宜科EEDS Slim數(shù)字<b class='flag-5'>化</b>擴(kuò)展<b class='flag-5'>組件</b><b class='flag-5'>介紹</b>

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。TensorFlow憑借其高效的計(jì)算性能、靈活的架構(gòu)以及豐富的工具和庫,在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?1093次閱讀

    前后端數(shù)據(jù)傳輸約定探討

    1 目的 穩(wěn)定可靠,降本增效 ? 前后端數(shù)據(jù)傳輸約定旨在提升系統(tǒng)穩(wěn)定性、可靠性,降低線上線下bug率;并提升研發(fā)效率、降低溝通成本、降低延期率。是確保項(xiàng)目前端和后端開發(fā)順利進(jìn)行的重要規(guī)約之一,定義了
    的頭像 發(fā)表于 07-08 19:10 ?395次閱讀
    <b class='flag-5'>前后端</b>數(shù)據(jù)傳輸約定探討

    tensorflow和pytorch哪個更簡單?

    工業(yè)界廣泛使用、具有豐富生態(tài)系統(tǒng)和跨平臺支持的框架,TensorFlow可能更適合您。以下是tensorflow和pytorch的介紹TensorFlow和PyTorch的基本概念
    的頭像 發(fā)表于 07-05 09:45 ?1273次閱讀

    tensorflow和pytorch哪個好

    tensorflow和pytorch都是非常不錯的強(qiáng)大的框架,TensorFlow還是PyTorch哪個更好取決于您的具體需求,以下是關(guān)于這兩個框架的一些關(guān)鍵點(diǎn): TensorFlow : 發(fā)布時間
    的頭像 發(fā)表于 07-05 09:42 ?1009次閱讀

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

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

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡單、快速的方式來構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?746次閱讀

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

    繼續(xù)訓(xùn)練也是必要的。本文將詳細(xì)介紹如何使用TensorFlow保存和加載模型,包括使用tf.keras和tf.saved_model兩種主要方法。
    的頭像 發(fā)表于 07-04 13:07 ?2357次閱讀

    英特爾聯(lián)手日企研發(fā)后端芯片自動制造技術(shù)

    隨著電路制造等前端技術(shù)逐漸逼近物理極限,后端步驟如芯片堆疊以提升性能的競爭愈發(fā)激烈。目前,后端生產(chǎn)主要依賴手工組裝,主要分布在勞動力資源豐富的地區(qū)如中國和東南亞。因此,英特爾視自動技術(shù)為在美國和日本設(shè)立工廠的關(guān)鍵要素。
    的頭像 發(fā)表于 05-07 09:42 ?641次閱讀
    主站蜘蛛池模板: 狼色网站 | 在线精品一区二区三区 | 色天天天天综合男人的天堂 | 精品国产免费观看一区高清 | 色婷五月综激情亚洲综合 | 免费视频大全 | 国产精品日韩欧美亚洲另类 | 欧美性生交xxxxx久久久 | 日韩一级欧美一级一级国产 | 27pao强力打造高清免费高 | 综合久久99 | 欧美黄视频在线观看 | 欧美网站在线播放 | 欧美黄页网 | bt天堂bt在线网 | 日本aaaa级毛片在线看 | 九九精品国产兔费观看久久 | 免费看美女的逼 | 日本免费不卡视频 | 女人午夜啪啪性刺激免费看 | 久久一级毛片 | 夜色伊人 | 欧美视频三区 | 国产精品一一在线观看 | 手机看片欧美日韩 | 日本欧美一区二区三区视频 | 在线免费亚洲 | 久久99色| 视频在线观看网站 | 免费看黄色一级毛片 | 天天色资料| 午夜精品视频在线 | 黄色视屏在线免费观看 | www.淫| 美女免费视频一区二区三区 | 日本欧洲亚洲一区在线观看 | 国产操比视频 | 中日韩一级片 | 藏经阁在线观看 | 五月激情五月婷婷 | 大美女久久久久久j久久 |