99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

大象轉(zhuǎn)身,TPU-MLIR適配DragGAN模型前向操作

算能開發(fā)者社區(qū) ? 2023-10-10 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

DragGAN

DragGAN是由谷歌、麻省理工學(xué)院和馬克斯普朗克研究所創(chuàng)建的一種新的人工智能模型。

通過(guò)點(diǎn)擊、拖動(dòng)等簡(jiǎn)單的交互操作就能改變拍攝對(duì)象的姿勢(shì)、形狀和表情等。

DragGAN改變了傳統(tǒng)的PS操作流程,只需簡(jiǎn)單拖拽起點(diǎn)和終點(diǎn),AI就會(huì)根據(jù)圖像的變化自動(dòng)生成和補(bǔ)全圖像。

DragGAN可處理的圖像類型豐富多樣,無(wú)論是人類表情的調(diào)整還是自然風(fēng)景的變化,都可以在瞬息之內(nèi)輕松實(shí)現(xiàn)。

DragGAN的全流程包含一個(gè)基于Generator的前向操作和反向傳播過(guò)程。本文主要介紹在TPU-MLIR上適配DragGAN模型的前向操作的全部過(guò)程。

模型移植

推理代碼定位與模型導(dǎo)出

適配的模型代碼使用 XingangPan/DragGAN: Official Code for DragGAN (SIGGRAPH 2023) (github.com) ,模型的入口在 DragGAN/viz/renderer.py:357,可以在這里直接引入TPU-MLIR提供的 gen_shell 工具,直接 trace 生成 workspace 文件夾,onnx/pt 模型,以及默認(rèn)的轉(zhuǎn)換腳本:

fromutils.gen_shellimportgenerate
generate(
"DragGan",
G,
dict(
ws=ws,
c=label
),
"../draggan_workspace",
)

運(yùn)行源碼 README.md 中提供的腳本 python visualizer_drag_gradio.py,運(yùn)行成功后可以在在同級(jí)目錄下得到如下的目錄結(jié)構(gòu):

draggan_workspace
├──cali_data
│└──data.npz
├──convert.sh
├──DragGan.onnx
├──DragGan.pt
├──data.npz
└──cali_data

模型移植過(guò)程中錯(cuò)誤的分析和解決

RuntimeError: Op not support:{'RandomNormalLike'}

在 model_transform 階段,發(fā)現(xiàn)存在不支持的算子 RandomNormalLike:

23bff33c-6713-11ee-9788-92fbcf53809c.png

RandomNormalLike(隨機(jī)數(shù)相關(guān))的算子 1684x 無(wú)法支持,所以必須嘗試在原模型中避開這些算子。定位到模型代碼處,發(fā)現(xiàn)該算子用于提供一個(gè)噪音供下游使用。源碼中提供了三種噪音生成方式,分別是 random(隨機(jī)噪音),const(常量噪音),和 none(不提供噪音),因此可以通過(guò)設(shè)置 noise_mode = const 避開這一算子的使用。

23d00a6a-6713-11ee-9788-92fbcf53809c.png

對(duì) Conv/DeConv Filter 為動(dòng)態(tài)輸入情況的支持

DragGan 的模型結(jié)構(gòu)中,有一部分 Conv 和 DeConv 的輸入是固定權(quán)重,而 FilterOp 部份是動(dòng)態(tài)的從上游計(jì)算得到的輸入。這種情況在這之前未做考慮,需要添加支持。這包括在多個(gè)地方的代碼更改。下面通過(guò)具體的報(bào)錯(cuò)提示來(lái)一步步分析、定位和解決。

model_transform 階段

在 tpu-mlir 的 Converter 中,權(quán)重(weight)和 動(dòng)態(tài)輸入(dynamic input)存儲(chǔ)在不同的變量中,其中,weight 通過(guò) getWeightOp(name) 獲取,input 通過(guò) getOperand(name) 獲取。如果不確定 op 是 dynamic input 還是 weight,可以使用 getOp(name) 來(lái)獲取。而在對(duì) DragGan 的 model_transform.py 腳本的運(yùn)行過(guò)程中,會(huì)遇到如下的報(bào)錯(cuò)KeyError: '/synthesis/b8/conv0/Transpose_output_0'

23e4a79a-6713-11ee-9788-92fbcf53809c.png

此時(shí)對(duì)應(yīng)模型結(jié)構(gòu),發(fā)現(xiàn)該 DeConv 的輸入 /synthesis/b8/conv0/Transpose_output_0 是作為一個(gè) Weight 獲取的。

23f183c0-6713-11ee-9788-92fbcf53809c.png

因此將ConvTranspose 的 filter_opd 的獲取邏輯改為 getOp 即可

2404748a-6713-11ee-9788-92fbcf53809c.png

同理,另外一個(gè) KeyError 中,DeConv 的 filter 來(lái)自于動(dòng)態(tài)輸入,所以同理,將 DeConv 獲取 filter 結(jié)點(diǎn)的邏輯同樣改為 getOp。

241726d4-6713-11ee-9788-92fbcf53809c.png

在 model_transform 階段, 模型會(huì)首先轉(zhuǎn)換到DragGAN_origin.mlir,再經(jīng)過(guò)--shape-infer,--canonicalize 等過(guò)程,轉(zhuǎn)換為可以通過(guò)model_runner.py做推理的 Top Dialect 描述的 mlir 文件。在對(duì) Top 層做推理驗(yàn)證正確性時(shí),DragGan 模型報(bào)出了精度為零的錯(cuò)誤。通過(guò)觀察輸出的錯(cuò)誤信息,發(fā)現(xiàn)是在 DeConv 層之后精度出現(xiàn)問(wèn)題的,而且僅在 DeConv 的 filter 是動(dòng)態(tài)輸入的情況下會(huì)有這一問(wèn)題。

構(gòu)建了一個(gè) filter 是動(dòng)態(tài)輸入的 DeConv 作為單側(cè),復(fù)現(xiàn)該錯(cuò)誤成功:

classDeConvCase(nn.Module):
def__init__(self)->None:
super().__init__()
self.deconv=nn.ConvTranspose2d(4,4,[2,2],stride=[1,1],bias=False)
self.deconv.weight.data=weight

defforward(self,x,y):
output_padding=self.deconv._output_padding(
x,
None,
[2,2],
[0,0],
[2,2],
1,
[1,1],
)

out=F.conv_transpose2d(x,y,None,[1,1],0,output_padding,1,1)

returnout,self.deconv(x)

此時(shí)通過(guò)斷點(diǎn)調(diào)試,發(fā)現(xiàn)錯(cuò)誤原因有兩個(gè):

  • 正確性驗(yàn)證階段推理時(shí),在 init() 時(shí)設(shè)置權(quán)重,此時(shí) weight 還沒(méi)有設(shè)置
  • 動(dòng)態(tài)輸入時(shí)沒(méi)有做對(duì)應(yīng)的權(quán)重重排(WeightReorder)

tpu-mlir 在適配模型的過(guò)程會(huì)經(jīng)過(guò)多步轉(zhuǎn)換和多次優(yōu)化,為了保證轉(zhuǎn)換后的正確性,tpu-mlir 會(huì)做三次正確性驗(yàn)證,分別針對(duì) Top Dialect,Tpu Dialect 和 bmodel。Top 和 Tpu 層的正確性的核心代碼位于 ModuleInterpreter.[h/cpp],該過(guò)程會(huì)從輸入開始,對(duì)每一個(gè) Op 分配空間,進(jìn)行初始化(init),在初始化結(jié)束后進(jìn)行推理(inference),并在最終對(duì)每個(gè) Op 進(jìn)行析構(gòu)(deinit)。而 DeConv 的精度錯(cuò)誤之一則來(lái)自于 Inference 階段時(shí) init 和 inference 的分離。

在 init 時(shí),DeConv 會(huì)構(gòu)造一個(gè) Dnnl 的實(shí)例,此時(shí)會(huì)直接 copy 一份 Weight 在 Dnnl 實(shí)例中,但由于該 filter 為動(dòng)態(tài)輸入, init 時(shí)值還沒(méi)有傳入,所以傳入的 filter 的值實(shí)質(zhì)上是全零。導(dǎo)致在 inference 階段出現(xiàn)錯(cuò)誤。定位后該問(wèn)題比較好改,將 init 過(guò)程中對(duì) Dnnl 實(shí)例的 setup 移到 inference 階段即可。Conv 也有同樣的問(wèn)題,修改邏輯相同。

24318ca4-6713-11ee-9788-92fbcf53809c.png

對(duì) onnx 模型,DeConv 的 filter 的權(quán)重存儲(chǔ)方式是 input channel first(即 shape 為 [ic, oc, kw, kh]),而后端的計(jì)算過(guò)程大多都需要 output channel first([oc, ic, kw, kh]),可以注意到 OnnxConverter 中,原本對(duì) DeConv 的權(quán)重會(huì)存在一個(gè)轉(zhuǎn)置操作:

24527a72-6713-11ee-9788-92fbcf53809c.png

而動(dòng)態(tài)權(quán)重自然沒(méi)有辦法實(shí)現(xiàn)這一操作。因此,需要添加一個(gè)圖優(yōu)化,當(dāng) DeConv 的 filter 是動(dòng)態(tài)時(shí),在其前面添加一個(gè) [oc, ic] 互換的 Permute 操作。在添加 Permute 操作時(shí),需要仔細(xì)考慮 DeConv 添加這一 Permute 的先決條件。確保該 Permute 添加是針對(duì) DeConv 的動(dòng)態(tài)權(quán)重,且同時(shí)不會(huì)重復(fù)添加。因此考慮在 DeConv 的 Operation 結(jié)構(gòu)中添加 bool 類型的 dynweight_reorderd 參數(shù)。當(dāng) filter 不是 top.WeightOp (使用動(dòng)態(tài)權(quán)重)且 dynweight_reordered 為 false (沒(méi)有添加對(duì)動(dòng)態(tài) weight 的 Permute)時(shí),添加這一 Permute,同時(shí)設(shè)置 dynweight_reorderd 參數(shù)為 true。

在 TopOps.td 文件對(duì) DeConv 添加 dynweight_reorderd 參數(shù)后,對(duì) DeConv 動(dòng)態(tài)權(quán)重的圖優(yōu)化邏輯如下:

structReorderDynWeight:publicOpRewritePattern{
usingOpRewritePattern::OpRewritePattern;

LogicalResultmatchAndRewrite(DeconvOpop,
PatternRewriter&rewriter)constoverride{

autofilter_shape=module::getShape(op.getFilter());//or

if(module::isWeight(op.getOperand(1))){
returnfailure();
}
booldyn_weight_reorderd=op.getDynweightReorderd();
if(dyn_weight_reorderd){
returnfailure();
}

if(isa(op.getOperand(1).getDefiningOp())){
autopermute_op=
dyn_cast(op.getOperand(1).getDefiningOp());

//eraseifalreadyhavethispermutebutfromoriginalgraph
std::vector<int64_t>ps={1,0,2,3};
autoorder=module::getI64Array(permute_op.getOrder());
if(*order==ps){
permute_op.replaceAllUsesWith(permute_op.getInput());
rewriter.eraseOp(permute_op);
op.setDynweightReorderd(true);
returnsuccess();
}
}

rewriter.setInsertionPointAfterValue(op.getFilter());
std::stringname=module::getName(op.getOutput()).str();
autoloc=
NameLoc::get(rewriter.getStringAttr(name+"_reorder_permute"));

std::vector<int64_t>order={1,0};
autofilter_dim=filter_shape.size();
for(inti=2;iorder.push_back(i);
}

autop_type=
UnrankedTensorType::get(module::getElementType(op.getFilter()));
std::vectorattrs;
attrs.emplace_back(
rewriter.getNamedAttr("order",rewriter.getI64ArrayAttr(order)));

autonew_permute_op=rewriter.create(
loc,p_type,ValueRange{op.getFilter()},attrs);

new_permute_op.shape_inference();
op.setOperand(1,new_permute_op.getOutput());
op.setDynweightReorderd(true);
returnsuccess();
}
};

這里做了一個(gè)額外的判斷,當(dāng) DeConv 的 filter 位置已經(jīng)是 Permute 且其 order 和要添加的 Permute 一樣(1,0,2,3)時(shí),兩個(gè) Permute 可以直接融合,所以此時(shí)可以直接刪除該 Permute 并返回。其他的情況則是插入一個(gè)額外的 Permute 操作。Conv 層同樣要支持動(dòng)態(tài) weight 的權(quán)重重排,要添加一個(gè)相同的圖優(yōu)化。

此外,Top 層的 shape-infer 要早于圖優(yōu)化,因此在做 shape-infer 時(shí)動(dòng)態(tài) weight 的 shape 仍然還是 input channle first,所以 DeConv 的 output_shape 的 dim[1] 應(yīng)該基于 filter_shape[1] 來(lái)判斷。對(duì)應(yīng)的修改位于 lib/Dialect/Top/Interfaces/Deconv.cpp:

2461b438-6713-11ee-9788-92fbcf53809c.png

bmodel 運(yùn)行錯(cuò)誤 ASSERT /workspace/nntoolchain/TPU1686/bm1684x/cmodel/src/cmodel_common.cpp: gather_data: 207: dst_offset < (1<<18)

在大模型中定位這一錯(cuò)誤較難,因此可以通過(guò) mlir_cut.py 逐步縮小范圍,得到了最小可復(fù)現(xiàn)的 mlir:

2471cbe8-6713-11ee-9788-92fbcf53809c.png

mlir_cut.py--mlir*tpu.mlir--output_names/synthesis/b64/conv0/Conv_output_0_Conv--input_names/synthesis/b32/conv1/Mul_3_output_0_Mul,/synthesis/b64/conv0/Reshape_3_output_0_Reshape

tpuc-optDragGan_bm1684x_f32_final.mlir--codegen="model_file=DragGan_f32.bmodelembed_debug_info=true"-o/dev/null
model_runner.py--inputfake_data.npz--modelDragGan_f32.bmodel--outputDragGan_bm1684x_f32_model_outputs.npz

進(jìn)一步構(gòu)建了能夠復(fù)現(xiàn)該錯(cuò)誤的單元測(cè)試:

24822fd8-6713-11ee-9788-92fbcf53809c.png

通過(guò)控制變量,得到了以下現(xiàn)象:

  • 關(guān)閉 layer-group,模型運(yùn)行正常不報(bào)錯(cuò):這說(shuō)明問(wèn)題基本是出在 tpu-mlir 部份而不是后端算子部份
  • 將上述的代碼中 DeConv 的 filter 從動(dòng)態(tài)改為靜態(tài),模型運(yùn)行正常:說(shuō)明問(wèn)題仍然是動(dòng)態(tài) Weight 導(dǎo)致的
  • 構(gòu)建基本的 DeConv 算子,無(wú)論是靜態(tài)和動(dòng)態(tài)都運(yùn)行正常,和上面的單側(cè)進(jìn)行對(duì)比,發(fā)現(xiàn)區(qū)別在單個(gè) DeConv 算子不會(huì)進(jìn)行 LayerGroup:將問(wèn)題定位到 tpu-mlir 的 LayerGroup 部份的代碼

此時(shí)進(jìn)一步對(duì)比正常和出錯(cuò)的 final.mlir,發(fā)現(xiàn) dynamic weight 和 weight 的 slice 屬性不一致,如下所示:

249748be-6713-11ee-9788-92fbcf53809c.png

top.Weight 的 layer-group 是比較特殊。top.Weight 在整個(gè) layer-group 都保存在 local memory 中(hold_in_lmem = true);同時(shí),weight 也不能切分 slice,每個(gè) slice 都要用到完成的 filter,從而導(dǎo)致結(jié)果錯(cuò)誤。

所以需要單獨(dú)針對(duì) dynamic weight 處理,這包括設(shè)置其生命周期(hold_in_mem = true),以及將其 slice 設(shè)置為長(zhǎng)度為 1,元素為其 shape 對(duì)應(yīng)維度值的列表。這一過(guò)程可以在 lib/Dialect/Tpu/Transforms/LayerGroup/LayerGroupUtil.cpp 的 backward_update_slice 方法中完成:

24ad9fba-6713-11ee-9788-92fbcf53809c.png

優(yōu)化后再對(duì)比兩個(gè)單例的 final.mlir,發(fā)現(xiàn)此時(shí) dynamic weight 的 slice 信息已經(jīng)和普通 weight 完全相同:

24c4dd7e-6713-11ee-9788-92fbcf53809c.png

F16 和 int8 精度問(wèn)題

在解決了 F32 的 bug 后,F(xiàn)16 和 int8 的 tpu 層 mlir 仍然存在精度問(wèn)題。原本以為是 DeConv 的 F16 適配存在問(wèn)題,通過(guò)使用 mlir_debugger 對(duì)每一層用正確數(shù)值做推理(也可以直接觀察輸出的 npz 文件以及 npz_tool 的比對(duì)結(jié)果),發(fā)現(xiàn)出錯(cuò)的是 Active -> Mul 的結(jié)構(gòu),Active 是 ReduceSum 操作:

24e5685a-6713-11ee-9788-92fbcf53809c.png

因此基本可以確定是普通的 F16 溢出問(wèn)題。驗(yàn)證 BF16,發(fā)現(xiàn)BF16 編譯成功,進(jìn)一步確認(rèn)是溢出問(wèn)題。

將這些層添加到 qtable 中,發(fā)現(xiàn)還是通過(guò)不了比對(duì),值里面仍然會(huì)存在 inf。對(duì)比發(fā)現(xiàn)是在 Active(ReduceSum) -> Sqrt 的結(jié)構(gòu)中間有兩個(gè) Cast 導(dǎo)致的:

24f21456-6713-11ee-9788-92fbcf53809c.png

這兩個(gè) cast 沒(méi)有作用,可以被優(yōu)化掉,于是寫圖優(yōu)化將這兩個(gè) Cast 直接消除。優(yōu)化后對(duì)應(yīng)的 mlir 如下:

2504a922-6713-11ee-9788-92fbcf53809c.png

int8 也是相同的精度溢出問(wèn)題,同樣確認(rèn)兩個(gè) cast 融合的操作能夠覆蓋 int8 的情況即可。

至此,DragGan 適配的模型部份適配完成。

總結(jié)

  • 在一些情況下,在不影響結(jié)果的情況下直接修改模型的代碼結(jié)構(gòu)可以更容易的解決一些算子適配問(wèn)題
  • 較大的模型測(cè)試錯(cuò)誤定位到具體算子的情況下,優(yōu)先考慮構(gòu)建單側(cè)嘗試復(fù)現(xiàn)問(wèn)題
  • 控制變量,設(shè)置對(duì)照,是缺少解決思路時(shí)尋找問(wèn)題的一個(gè)較為通用的方案。

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

    關(guān)注

    1806

    文章

    49011

    瀏覽量

    249354
  • GaN
    GaN
    +關(guān)注

    關(guān)注

    19

    文章

    2207

    瀏覽量

    76783
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3519

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    壁仞科技完成Qwen3旗艦模型適配

    近日,在高效適配Qwen3系列模型推理后,壁仞科技宣布完成旗艦版Qwen3-235B-A22B模型的訓(xùn)練適配和優(yōu)化。由此,壁仞科技已實(shí)現(xiàn)Qwen3系列
    的頭像 發(fā)表于 05-16 16:23 ?401次閱讀

    大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開源六軸機(jī)械臂產(chǎn)品

    大象機(jī)器人成立于2016年,專注協(xié)作機(jī)器人研發(fā)與應(yīng)用,產(chǎn)品線涵蓋輕量級(jí)協(xié)作機(jī)器人、人形機(jī)器人、仿生機(jī)器人等多種形態(tài)。拳頭產(chǎn)品myCobot系列以“全球最輕的六軸機(jī)械臂”聞名,累計(jì)銷量超數(shù)萬(wàn)臺(tái),覆蓋
    發(fā)表于 04-25 17:59

    KaihongOS操作系統(tǒng)FA模型與Stage模型介紹

    FA模型與Stage模型介紹 KaihongOS操作系統(tǒng)中,F(xiàn)A模型(Feature Ability)和Stage模型是兩種不同的應(yīng)用
    發(fā)表于 04-24 07:27

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命

    谷歌第七代TPU Ironwood深度解讀:AI推理時(shí)代的硬件革命 Google 發(fā)布了 Ironwood,這是其第七代張量處理單元 (TPU),專為推理而設(shè)計(jì)。這款功能強(qiáng)大的 AI 加速器旨在處理
    的頭像 發(fā)表于 04-12 11:10 ?1816次閱讀
    谷歌第七代<b class='flag-5'>TPU</b> Ironwood深度解讀:AI推理時(shí)代的硬件革命

    谷歌新一代 TPU 芯片 Ironwood:助力大規(guī)模思考與推理的 AI 模型新引擎?

    與推理 AI 模型。谷歌方面表示,它代表著 AI 發(fā)展從 “響應(yīng)式” “主動(dòng)式” 的范式轉(zhuǎn)變,未來(lái) AI 代理將能夠主動(dòng)檢索并
    的頭像 發(fā)表于 04-12 00:57 ?2413次閱讀

    3D打印可以打印那種柔韌性好,能隨意變形的模型嗎?

    且具有回彈性產(chǎn)品的,比如使用柔性材料TPU(熱塑性聚氨脂),它就能夠承受掰折、拉扯或扭曲而不輕易斷裂、損壞。 為了驗(yàn)證這一特點(diǎn),JLC3D小編用TPU材料打印了一個(gè)小模型來(lái)進(jìn)行測(cè)試: (圖片源于嘉立創(chuàng)
    發(fā)表于 03-13 11:41

    為什么無(wú)法使用OpenVINO?模型優(yōu)化器轉(zhuǎn)換TensorFlow 2.4模型?

    已下載 ssd_mobilenet_v2_fpnlite_640x640_coco17_tpu-8 型號(hào)。 使用將模型轉(zhuǎn)換為中間表示 (IR) ssd_support_api_v.2.4.json
    發(fā)表于 03-05 09:07

    天數(shù)智芯加速DeepSeek全系列模型適配

    天數(shù)智芯正攜手合作伙伴,以驚人的速度推進(jìn)DeepSeek全系列模型適配與上線工作。目前,多款DeepSeek模型服務(wù)已正式登陸各大平臺(tái),為用戶帶來(lái)多樣化的選擇。 其中,DeepSeek
    的頭像 發(fā)表于 02-10 15:30 ?988次閱讀

    龍芯中科與DeepSeek大模型協(xié)同適配成功

    龍芯中科近日宣布了一項(xiàng)重大進(jìn)展,其自主研發(fā)的龍芯3號(hào)CPU已成功運(yùn)行DeepSeek R17B模型,實(shí)現(xiàn)了本地化高效部署。這一成就標(biāo)志著國(guó)產(chǎn)芯片與AI大模型的協(xié)同適配取得了關(guān)鍵性突破,為構(gòu)建自主可控
    的頭像 發(fā)表于 02-10 09:14 ?689次閱讀

    海光信息技術(shù)團(tuán)隊(duì)成功適配DeepSeek大模型

    近日,海光信息技術(shù)團(tuán)隊(duì)宣布,已成功完成DeepSeek-Janus-Pro多模態(tài)大模型與海光DCU(數(shù)據(jù)計(jì)算單元)的適配優(yōu)化,并正式上線運(yùn)行。這一成果標(biāo)志著海光團(tuán)隊(duì)在推動(dòng)AI大模型與國(guó)產(chǎn)硬件平臺(tái)融合
    的頭像 發(fā)表于 02-08 14:10 ?671次閱讀

    大象機(jī)器人11月大事件回顧

    冬意漸濃,在過(guò)去的11月里,大象機(jī)器人活躍在國(guó)內(nèi)外的多個(gè)行業(yè)盛會(huì)上,廣大機(jī)器人愛(ài)好者和行業(yè)專家展示了我們?cè)趨f(xié)作機(jī)器人、人形機(jī)器人、仿生機(jī)器人領(lǐng)域的最新成果。
    的頭像 發(fā)表于 12-03 15:35 ?601次閱讀

    【每天學(xué)點(diǎn)AI】傳播、損失函數(shù)、反向傳播

    在深度學(xué)習(xí)的領(lǐng)域中,傳播、反向傳播和損失函數(shù)是構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的三個(gè)核心概念。今天,小編將通過(guò)一個(gè)簡(jiǎn)單的實(shí)例,解釋這三個(gè)概念,并展示它們的作用。
    的頭像 發(fā)表于 11-15 10:32 ?1221次閱讀
    【每天學(xué)點(diǎn)AI】<b class='flag-5'>前</b><b class='flag-5'>向</b>傳播、損失函數(shù)、反向傳播

    大象機(jī)器人10月大事件回顧

    金秋10月,大象機(jī)器人積極參加數(shù)個(gè)海內(nèi)外知名行業(yè)盛會(huì),全球機(jī)器人愛(ài)好者與行業(yè)專家展示最新的成果,也收獲了一些獎(jiǎng)項(xiàng)、報(bào)道,通過(guò)這些難得的展示機(jī)會(huì),大象機(jī)器人在協(xié)作、仿人、仿生機(jī)器人領(lǐng)域的產(chǎn)品得到了高度的關(guān)注。讓我們一起來(lái)回顧這些
    的頭像 發(fā)表于 10-31 16:43 ?958次閱讀

    掃描模型模型檢查的注意事項(xiàng)

    掃描模型模型檢查是一個(gè)至關(guān)重要的步驟,它確保了掃描過(guò)程的順利進(jìn)行和最終結(jié)果的準(zhǔn)確性。 引言 在現(xiàn)代工業(yè)設(shè)計(jì)、制造和建筑領(lǐng)域,三維掃描技術(shù)已經(jīng)成為獲取精確模型數(shù)據(jù)的重要手段。無(wú)論是為了
    的頭像 發(fā)表于 10-14 14:59 ?1471次閱讀

    TPU v1到Trillium TPU,蘋果等科技公司使用谷歌TPU進(jìn)行AI計(jì)算

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)7月30日消息,蘋果公司周一在一篇技術(shù)論文中表示,支撐其人工智能系統(tǒng)Apple Intelligence的兩個(gè)人工智能模型是在谷歌設(shè)計(jì)的云端芯片上進(jìn)行預(yù)訓(xùn)練的。這表明
    的頭像 發(fā)表于 07-31 01:08 ?3946次閱讀