一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

深度學(xué)習(xí)腦補(bǔ)缺失 TF 代碼

5RJg_mcuworld ? 來(lái)源:YXQ ? 2019-08-06 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在項(xiàng)目開(kāi)發(fā)中,優(yōu)秀的代碼自動(dòng)補(bǔ)全工具可以提升工作效率。然而,近來(lái)的 IDE 基本都使用搜索方法進(jìn)行補(bǔ)全,在一些場(chǎng)景下效果不佳。

近日,有開(kāi)源項(xiàng)目用深度學(xué)習(xí)模型進(jìn)行代碼補(bǔ)全,顯示出非常有潛力的效果。

近日,Reddit 上的一篇帖子引起了網(wǎng)友的熱議。帖子作者「mlvpj」稱:

「我們使用深度學(xué)習(xí)完成了一個(gè)簡(jiǎn)單的項(xiàng)目,可以自動(dòng)進(jìn)行 Python 代碼補(bǔ)全?!?/p>

根據(jù)介紹,該項(xiàng)目基于 LSTM 模型,訓(xùn)練后,負(fù)責(zé)對(duì)代碼的缺失部分進(jìn)行補(bǔ)全。評(píng)價(jià)模型的方法是判斷節(jié)省了多少的按鍵信息——即模型給出長(zhǎng)度為 L 的代碼建議,如果和真實(shí)的代碼匹配,則節(jié)省 L - 1 個(gè)鍵入操作。實(shí)驗(yàn)結(jié)果說(shuō)明,大約有 30%-50% 的鍵入成本可以節(jié)省下來(lái)。

作者在帖子中表示,他們接下來(lái)會(huì)嘗試不同的架構(gòu),并提高推斷的表現(xiàn)。而現(xiàn)在的模型推斷很慢,不能實(shí)際使用。作者已在 GitHub 開(kāi)源了項(xiàng)目代碼:

和 IDE 的自動(dòng)補(bǔ)全有什么區(qū)別

該項(xiàng)目對(duì) Python 代碼的自動(dòng)補(bǔ)全與傳統(tǒng) IDE(如 PyCharm)等不同。IDE 補(bǔ)全基于檢索方法,需要從已有代碼中進(jìn)行搜索。

以 PyCharm 中的基本補(bǔ)全(Basic Completion)方法為例?;狙a(bǔ)全可幫助補(bǔ)全可見(jiàn)區(qū)域的類、方法、關(guān)鍵詞代碼。使用時(shí),PyCharm 會(huì)分析補(bǔ)全使用情況,并提供當(dāng)前位置可能的選擇。如果是對(duì)空間、參數(shù)或變量聲明進(jìn)行補(bǔ)全,則 PyCharm 會(huì)基于類別提供一系列可能的命名。

當(dāng)出現(xiàn)已定義的類、函數(shù)、模塊和變量時(shí),基本補(bǔ)全就會(huì)啟動(dòng)。

此外,PyCharm 也提供智能補(bǔ)全等其他補(bǔ)全功能,但基本上都需要對(duì)已有文本進(jìn)行搜索,根據(jù)位置和類型判斷補(bǔ)全的方法。這些方法都沒(méi)有配置機(jī)器學(xué)習(xí)模型。

Pycharm 的自動(dòng)補(bǔ)全介紹:https://www.jetbrains.com/help/pycharm/auto-completing-code.html

深度學(xué)習(xí)怎樣腦補(bǔ)缺失 TF 代碼

最常用的 PyCharm 自動(dòng)補(bǔ)全也能省很多功夫,但它需要 IDE 能檢索到你的代碼文件或庫(kù),而且補(bǔ)全會(huì)提供多個(gè)可能的選項(xiàng)。但是在本項(xiàng)目實(shí)驗(yàn)的工具中,LSTM 會(huì)根據(jù)上下文語(yǔ)義確定最可能調(diào)用的函數(shù),因此它能節(jié)省更多的成本。作者表示如果使用束搜索,那么一次能預(yù)測(cè) 10 多個(gè)字符,不過(guò)這樣對(duì)于實(shí)際使用還是有點(diǎn)低效。

在訓(xùn)練深度補(bǔ)全模型前,我們需要先建立訓(xùn)練集。開(kāi)發(fā)者會(huì)在清洗評(píng)論、標(biāo)注和空行后,構(gòu)建比較干凈的 Python 代碼。然后,模型會(huì)在這些數(shù)據(jù)上進(jìn)行訓(xùn)練與預(yù)測(cè)。在數(shù)據(jù)預(yù)處理上,開(kāi)發(fā)者發(fā)現(xiàn)通過(guò) tokenizing Python 代碼,模型效果比通過(guò) BPE 編碼的字符級(jí)預(yù)測(cè)效果還要好。作者提供了一個(gè)簡(jiǎn)單的預(yù)訓(xùn)練模型,它是在整個(gè) TensorFlow 項(xiàng)目的 models 代碼中訓(xùn)練的。

下圖就是作者在驗(yàn)證集中測(cè)試的驗(yàn)證樣本。綠色的字符表示自動(dòng)補(bǔ)全的起始位置,用戶需要按下 Tab 鍵選擇開(kāi)始補(bǔ)全。綠色及后面高亮的灰色字符是自動(dòng)補(bǔ)全的結(jié)果。

如上所示為驗(yàn)證樣本中的自動(dòng)補(bǔ)全效果。與代碼生成類似,粗略看起來(lái),似乎效果非常不錯(cuò),但實(shí)際上會(huì)有很多不合理的地方。不過(guò)有意思的是,自動(dòng)補(bǔ)全中所有字符串都只有一個(gè)占位操作,這也是非常合理的處理方法。

樣本中自動(dòng)補(bǔ)全的起始和結(jié)束位置都是隨機(jī)的,也就是說(shuō)代碼可能補(bǔ)全到「tensorfl」就結(jié)束了,并不會(huì)補(bǔ)全完整的標(biāo)識(shí)符「tensorflow」。這在實(shí)際場(chǎng)景中用處非常有限,因此作者將生成結(jié)束位置限制為終止 token 而修復(fù)問(wèn)題。目前自動(dòng)補(bǔ)全能完成多種 operator,且當(dāng)我們?cè)黾邮阉鞯拈L(zhǎng)度時(shí),它完成的代碼長(zhǎng)度會(huì)更多。

整個(gè)模型的主體都是 LSTM,它在 TensorFlow 模型代碼庫(kù)訓(xùn)練后能捕捉非常豐富的 TensorFlow API。如下所示為自動(dòng)補(bǔ)全模型的主體代碼,基本上簡(jiǎn)單的一個(gè) LSTM 就能搞定:

網(wǎng)友評(píng)價(jià)

項(xiàng)目開(kāi)源后,有些網(wǎng)友對(duì)作者提出了質(zhì)疑:

「我們已經(jīng)有很多很好用的自動(dòng)補(bǔ)全工具了,比如 kite(一個(gè)可以在 IDE 上使用的插件),為什么還要費(fèi)心搞個(gè)機(jī)器學(xué)習(xí)模型?」

在討論中,有人提出,一些無(wú)良的自動(dòng)補(bǔ)全工具會(huì)悄悄上傳代碼到他們的服務(wù)器中,(而自行訓(xùn)練的深度學(xué)習(xí)模型不存在這個(gè)問(wèn)題)。

也有人提出,其實(shí)不一定要用 LSTM 模型,隱馬爾科夫模型在處理序列數(shù)據(jù)上效果也很好。

此外,也有網(wǎng)友建議使用 CuDNN 加速 LSTM 的推斷過(guò)程。這樣能大大提升推斷速度,集成到 IDE 中也就有了可能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35105

    瀏覽量

    279562
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

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

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122789

原文標(biāo)題:你是成熟的 AI 了,應(yīng)該自己學(xué)會(huì)補(bǔ)全代碼!

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    靈汐科技開(kāi)源類深度學(xué)習(xí)應(yīng)用開(kāi)發(fā)平臺(tái)BIDL

    富案例等問(wèn)題,一直制約著其廣泛應(yīng)用。為了突破這一瓶頸,靈汐科技聯(lián)合啟社區(qū)正式宣布開(kāi)源類深度學(xué)習(xí)應(yīng)用開(kāi)發(fā)平臺(tái)BIDL(Brain-inspired Deep Learning)。
    的頭像 發(fā)表于 03-05 09:13 ?913次閱讀
    靈汐科技開(kāi)源類<b class='flag-5'>腦</b><b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>應(yīng)用開(kāi)發(fā)平臺(tái)BIDL

    軍事應(yīng)用中深度學(xué)習(xí)的挑戰(zhàn)與機(jī)遇

    人工智能尤其是深度學(xué)習(xí)技術(shù)的最新進(jìn)展,加速了不同應(yīng)用領(lǐng)域的創(chuàng)新與發(fā)展。深度學(xué)習(xí)技術(shù)的發(fā)展深刻影響了軍事發(fā)展趨勢(shì),導(dǎo)致戰(zhàn)爭(zhēng)形式和模式發(fā)生重大變化。本文將概述
    的頭像 發(fā)表于 02-14 11:15 ?535次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對(duì)它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network
    的頭像 發(fā)表于 02-12 15:15 ?850次閱讀

    tf卡存儲(chǔ)容量選擇 tf卡的常見(jiàn)故障及解決方法

    TF卡存儲(chǔ)容量選擇 TF卡(TransFlash卡)是一種小型的存儲(chǔ)卡,廣泛應(yīng)用于手機(jī)、相機(jī)、平板電腦等便攜式設(shè)備中。選擇合適的TF卡存儲(chǔ)容量,需要考慮以下幾個(gè)因素: 設(shè)備兼容性 :首先,需要確認(rèn)你
    的頭像 發(fā)表于 12-19 15:20 ?2777次閱讀

    ADS1282HI出現(xiàn)數(shù)據(jù)缺失是什么原因?qū)е碌模?/a>

    不同:39TG4A3TF),使用完全相同的程序和板卡,出現(xiàn)數(shù)據(jù)缺失的情況,波形如下: 明顯發(fā)現(xiàn)第一個(gè)字節(jié)丟失。前八個(gè)SCLK時(shí)DOUT上沒(méi)有任何輸出,是產(chǎn)品批次不同導(dǎo)致的情況還是新進(jìn)的芯片有問(wèn)題,希望能有您這邊的答復(fù),謝謝
    發(fā)表于 12-16 07:03

    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ò)處理單元)是專門(mén)為深度學(xué)習(xí)
    的頭像 發(fā)表于 11-14 15:17 ?1902次閱讀

    使用TF卡的常見(jiàn)問(wèn)題

    隨著科技的發(fā)展,TF卡(TransFlash卡,也稱為MicroSD卡)已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡拇鎯?chǔ)工具。它們被廣泛應(yīng)用于智能手機(jī)、平板電腦、數(shù)碼相機(jī)等設(shè)備中,用于擴(kuò)展存儲(chǔ)空間,存儲(chǔ)照片
    的頭像 發(fā)表于 11-04 09:54 ?3668次閱讀

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?651次閱讀
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的方法

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

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

    激光雷達(dá)技術(shù)的基于深度學(xué)習(xí)的進(jìn)步

    信息。這使得激光雷達(dá)在自動(dòng)駕駛、無(wú)人機(jī)、機(jī)器人等領(lǐng)域具有廣泛的應(yīng)用前景。 二、深度學(xué)習(xí)技術(shù)的發(fā)展 深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,它通過(guò)模擬人
    的頭像 發(fā)表于 10-27 10:57 ?1061次閱讀

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個(gè)熱門(mén)研究方向。以下是一些FPGA加速深度學(xué)習(xí)模型的案例: 一、基于FPGA的AlexNet卷積運(yùn)算加速 項(xiàng)目名稱
    的頭像 發(fā)表于 10-25 09:22 ?1220次閱讀

    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 ?2879次閱讀

    深度學(xué)習(xí)GPU加速效果如何

    圖形處理器(GPU)憑借其強(qiáng)大的并行計(jì)算能力,成為加速深度學(xué)習(xí)任務(wù)的理想選擇。
    的頭像 發(fā)表于 10-17 10:07 ?608次閱讀

    FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問(wèn)題(一) Q:FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?現(xiàn)在用FPGA做深度學(xué)習(xí)加速成為一個(gè)熱門(mén),深鑒科技,商湯,曠視科技等都有基于FPG
    發(fā)表于 09-27 20:53

    PyTorch深度學(xué)習(xí)開(kāi)發(fā)環(huán)境搭建指南

    PyTorch作為一種流行的深度學(xué)習(xí)框架,其開(kāi)發(fā)環(huán)境的搭建對(duì)于深度學(xué)習(xí)研究者和開(kāi)發(fā)者來(lái)說(shuō)至關(guān)重要。在Windows操作系統(tǒng)上搭建PyTorch環(huán)境,需要綜合考慮多個(gè)方面,包括軟件安裝、
    的頭像 發(fā)表于 07-16 18:29 ?2521次閱讀