色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TorchFix:基于PyTorch的代碼靜態分析

jf_pmFSk4VX ? 來源:GiantPandaCV ? 2023-12-18 15:20 ? 次閱讀

我們推出了一個新的系列,對PytorchConference2023 的博客進行中文編譯,會陸續在公眾號發表。

你好,我叫塞爾吉。我在Meta公司負責PyTorch的開發者體驗。今天我想要談談TorchFix。

TorchFix是我們最近開發的一個新工具,旨在幫助PyTorch用戶維護健康的代碼庫并遵循PyTorch的最佳實踐。首先,我想要展示一些我們努力解決的問題的示例。

For Cholesky decomposition
- torch.cholesky deprecated in favor of torch.linalg.cholesky
- Replace torch.cholesky(A) with torch.linalg.cholesky(A)
- Replace torch.cholesky(A,upper=True)with torch.linalg.ch

首先是第一個示例。最近,PyTorch的API中計算Cholesky分解的函數發生了改變。將該函數從torch.shalesky移動到torch.linauk.shalesky,并且參數也進行了變更。在舊的API中,您可以提供upper equals true參數,但在新的API中,您只需計算一個聯合。我們希望更新我們的代碼以使用這個新的API。但是手動操作這個過程非常繁瑣。

- Bad: param.require grad = False
- Good: param.requires grad = False (notice 'requires')
The bad code doesn't cause any explicit errors but doesn't do what it's supposed to do

有時,出于性能原因,您不想為參數計算梯度。要告訴PyTorch您不需要梯度,只需將requires grad屬性設置為false。不幸的是,人們會經常會輸入require gradient, requiregrad false。又因為這個是python,屬性動態創建沒有錯誤,你的程序繼續工作但沒有執行預期的操作,這可能會導致性能下降。這實際上很難注意到,我們在多個流行的大型開源庫發現了這個問題。

- Synchronized dataloader
torch.utils.data.DataLoader(dataset,batch_size=10)
- For efficiency in production
torch.utils.data.DataLoader(dataset,batch_size=10,num_workers=n)

關于數據加載器的另一個問題是,如果你沒有為數據加載器提供"numWorkers"參數,那么默認值為零。這意味著數據加載將在與計算相同的進程中進行。數據加載可能會阻塞計算。因此,出于效率原因,您希望在生產環境中提供"numWorkers"參數,并將其設置為大于零的值。具體的數字可能取決于您擁有的CPU數量或其他因素。但這個問題不一定是一個錯誤。根據您的目標和代碼的運行方式,默認值0可能是完全有效的。但是,我們仍然希望向用戶標記此問題,以便用戶可以檢查和理解它是否對他們造成了實際問題。

TorchVision introduced new
Multi-weight support API
Replace
models.resnet101(pretrained=True)
with
models.resnet101(weights=models.ResNetl01_Weights.IMAGENET1K_V1)

這個例子與核心PyTorch無關,而是與一種流行的領域庫TorchVision有關。

最近,TorchVision中加載預訓練權重的API發生了變化。所以以前你提供的是Pretend等于true或等于false。但是使用新的API,你需要提供weight參數,并明確指定要加載的權重。這個新的API更加靈活,我們希望更新我們的代碼來使用它。實際上,我們希望全世界的代碼都能更新使用這個新的API。在那之后,TorchVision可以完全停止支持舊的API。再次強調,手動做這個過程非常繁瑣。特別是考慮到TorchVIsion不只有一個模型,TorchVision有許多模型和許多權重,這個API的變化適用于所有模型。

: A specialized static analysis tool for Pythoncode
Uses LibcsT
- A concrete syntax tree parser and serializer library for Python
- Similar to standard Python's ast, but.preserves things like comments and formatting
- https://github.com/Instagram/LibCST

如果有什么是解決所有這些問題的方法,它就是TorchFix。TorchFix是一個專門為PyTorch設計的靜態分析工具。他們使用了Lipcea ST這個流行的庫。Lipcea ST允許TorchFix加載、獲取語法樹、更新語法樹,然后將修改后的語法樹寫回。關于如何運行TorchFix,有兩種模式。一種是作為Flake8插件,另一種是獨立模式。在Flake 8插件模式中,你只需要安裝Torchfix,然后基本上使用Flake 8. 如果你的項目中已經使用了Flake 8,這種模式非常方便。如果你的CI正在運行Flake 8,你只需要安裝并指定你想要處理的額外警告。但是在這種模式下,沒有自動修復,只有代碼檢查和錯誤提示。

Two modes: flake8-plugin and standalone
flake8-plugin: linting only
- flake8 --select=TOR0,TOR1,TOR2
standalone: linting and autofixing
- torchfix
- torchfix . --fix
- torchfix --select=ALL

另一種模式是獨立運行,你可以將TorchFix作為腳本運行,并提供相應的參數。這張幻燈片的最后一行顯示,并不是所有規則都默認啟用。這是因為有些規則太過繁雜,不能默認啟用。若要查看所有規則和結果,你可以提供SELECT等命令

Get a release from PyPI
pip install torchfix

Latest code from GitHub Clone
https://github.com/pytorch/test-infra/tree/main/tools/torchfix
pip install .

獲取Torchfix也很簡單,你只需要從PyPy安裝Torchfix的最新版本,或者從GitHub克隆倉庫并進行安裝。目前的階段是早期測試版(early beta),但已經非常有用。TorchFix已經擁有查找和修復我之前提到的所有示例的規則。它在Meta內部和開源項目中已經被使用來查找問題并更新代碼。

Beta version stage, already useful
- Rules for all the mentioned examples problems and more
- Was used to find issues and update code of multiple projects both internally at Meta and in open source
- Running in CI of several projects on GitHub

并且我們已經在幾個GitHub上的元開源項目的CI中運行了它。將來我們希望為更多類別的問題添加更多的規則。而這項工作將根據我們在真實代碼庫中發現的實際問題進行引導。此外,我們還希望增加更多的配置選項。

目前TorchFix假設您使用最新版本的PyTorch,但實際上這未必是正確的。我們還希望將其與PyTorch CI和PyTorch文檔生成集成。因此,例如,當您在PyTorch中棄用一個函數時,我們希望能夠檢查是否存在TorchFix的規則,以標記并更新棄用的函數...當然,我們還希望看到TorchFix在更多項目的CI中使用。希望這是有機地發生的,當人們嘗試TorchFix并發現它很有用時。以及如何參與進來。首先,只需嘗試在您的代碼庫上運行它。如果它發現任何問題,或者您可以發現TorchFix本身出現了一些問題。可以在github反饋。

https://github.com/pytorch/test-infra/tree/main/tools/torchfix
- Bug reports, feature requests, and code contributions are very welcome
- There are open "good first issues" -searchfor[TorchFix]

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62569
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • pytorch
    +關注

    關注

    2

    文章

    807

    瀏覽量

    13198

原文標題:《PytorchConference2023 翻譯系列》3- TorchFix

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于數據融合的源代碼靜態分析

    采用數據融合技術對源代碼進行靜態分析,實現可擴展的原型系統。對現有靜態分析工具的分析結果進行解析
    發表于 04-13 08:57 ?9次下載

    全面、深入的軟件源代碼靜態分析方案

    KLOCWORK INSIGHT是業內唯一桌面源代碼分析的快速高效性與系統分析的強大功能及準確性優點相結合的軟件靜態分析解決方案。在桌面開發
    發表于 04-04 22:53 ?27次下載

    靜態代碼分析

    Fortify的靜態代碼分析器(Static Code Analyzer,SCA)是組成Fortify 360的三個分析器之一。SCA工作在開發階段,以用于
    發表于 04-07 20:32 ?22次下載

    IAR靜態代碼分析工具

    前言IAR集成了C-STAT靜態分析工具,主要通過對源代碼等級進行分析來發現代碼中的潛在問題,除了提高
    發表于 12-03 10:36 ?2次下載
    IAR<b class='flag-5'>靜態</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具

    利用正確的靜態分析實現應用

      一些靜態分析模式可以在運行時檢測缺陷。如果嵌入式目標可以容納開銷,則組織應執行運行時靜態分析以完善其預防策略。運行時靜態
    的頭像 發表于 06-19 07:23 ?966次閱讀
    利用正確的<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>實現應用

    利用醫療設備軟件的靜態代碼分析

      如果使用得當,靜態分析已被證明在提高安全關鍵代碼的軟件質量方面非常有效。盡管不嚴格要求批準,但 FDA 承認其有效性。
    的頭像 發表于 06-19 10:07 ?1082次閱讀
    利用醫療設備軟件的<b class='flag-5'>靜態</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>

    利用醫療設備軟件的靜態代碼分析

      靜態分析將提供各種類型的錯誤,從必須解決的關鍵問題到警告。一些組織希望投機取巧,只為可證明的錯誤更改代碼。其他人則主動清理代碼并提高質量,甚至“修復”警告。團隊應該在處理
    發表于 07-09 07:13 ?613次閱讀
    利用醫療設備軟件的<b class='flag-5'>靜態</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>

    靜態分析:對代碼質量至關重要

      讓我們從顯而易見的事情開始:靜態分析本身并不是靈丹妙藥。它不能保證復雜的軍事嵌入式應用程序中的高代碼質量、安全性或安全性。靜態分析也不能
    的頭像 發表于 11-01 09:30 ?567次閱讀

    什么是靜態分析?如何管理早期靜態分析報告

    簡單來說,靜態分析是在不執行代碼的情況下檢查源代碼和二進制代碼的過程,通常用于查找bug的前期準備或評估
    的頭像 發表于 11-01 11:35 ?6104次閱讀

    靜態分析:對代碼質量至關重要

      讓我們從顯而易見的事情開始:靜態分析本身并不是靈丹妙藥。它不能保證復雜的軍事嵌入式應用程序中的高代碼質量、安全性或安全性。靜態分析也不能
    的頭像 發表于 11-08 14:10 ?659次閱讀

    靜態分析工具

    Analyzer`:Clang Static Analyzer是一款靜態代碼掃描工具,專門用于針對C,C++和Objective-C的程序進行分析。已經被Xcode集成,可以直接使用Xcode進行
    的頭像 發表于 03-02 17:53 ?2564次閱讀
    <b class='flag-5'>靜態</b><b class='flag-5'>分析</b>工具

    【技術分享】代碼可以靜態分析,PCB可以嗎?

    軟件代碼有bug,可以通過人工查找,也可以通過編譯發現,同時也可以通過代碼靜態分析工具找到錯誤或警告。人工查找代碼bug,顯然不合理,除非只
    的頭像 發表于 03-21 09:34 ?530次閱讀
    【技術分享】<b class='flag-5'>代碼</b>可以<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>,PCB可以嗎?

    Harmony系統代碼靜態測試

    本文通過使用靜態分析工具QAC,來分析測試Harmony系統代碼對汽車行業內常用編碼規范的遵循情況。
    的頭像 發表于 08-01 14:22 ?1151次閱讀
    Harmony系統<b class='flag-5'>代碼</b>的<b class='flag-5'>靜態</b>測試

    什么是完備靜態分析

    在開發安全、可靠和合規的軟件時,完備靜態分析是一種有益的實踐。本篇文章中,我們將討論完備分析靜態分析的不同之處,為什么它很重要,以及完備
    的頭像 發表于 11-11 10:16 ?681次閱讀
    什么是完備<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>?

    什么是靜態代碼分析靜態代碼分析概述

    靜態分析可幫助面臨壓力的開發團隊。高質量的版本需要按時交付。需要滿足編碼和合規性標準。錯誤不是一種選擇。 這就是開發團隊使用靜態分析工具/源代碼
    的頭像 發表于 07-19 12:09 ?1567次閱讀
    什么是<b class='flag-5'>靜態</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>?<b class='flag-5'>靜態</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>概述
    主站蜘蛛池模板: 午夜一区欧美二区高清三区| 99久久就热视频精品草| 丰满艳妇亲伦| 伦理片在线线看手机版| 校园全肉高h湿一女多男| 99久久国内精品成人免费| 好男人好资源在线观看| 日日噜噜噜噜夜夜爽亚洲精品| 在线视频 国产 日韩 欧美| 国产精品高清在线观看93| 免费三级播放器| 一本大道手机在线看| 国产精品久久久久久久A片冻果| 男宿舍里的呻吟h| 伊人激情综合网| 国产午夜永久福利视频在线观看| 奇米狠狠干| 97精品免费视频| 久久九九免费| 亚洲免费黄色| 国产乱码伦人偷精品视频| 日韩高清特级特黄毛片| 99久久网站| 沦为公交两奶头春药高潮迭起| 亚洲qvod图片区电影| 闺蜜撬开我的腿用黄瓜折磨我| 你的欲梦裸身在线播放| 中文字幕完整高清版| 精品亚洲一区二区三区在线播放| 午夜福利体验试看120秒| 成人免费观看www视频| 欧美性色xo影院69| 99久久精品免费精品国产| 麻豆免费观看高清完整视频在线 | 免费观看a视频| 永久久久免费人妻精品| 教室眠催白丝美女校花| 亚洲国产精品久久人人爱| 国产日韩久久久精品影院首页| 色欲久久综合亚洲精品蜜桃| 成人在无码AV在线观看一|