大家平時都喜歡看什么視頻?最近B站開始流行“裸眼3D”視頻......你聽過沒?
咳咳!“裸眼3D”和透視可沒關系,收起你邪惡的想法!
它指的是:不戴眼鏡就可看到3D效果的視頻。
比如鵝妹作為一個追星黨,最喜歡的明星是李易峰,自從發現“裸眼3D”視頻后,它的鵝生幸福了起來,因為效果跟李易峰親自站在它眼前一樣,“汗毛”都清晰可見!
別怪鵝妹激動,還是“裸眼3D”太神奇,光說不體驗都是假的,一起試試。
首先把手機放在眼前15cm以內的距離,點開上方動圖,雙眼看向手機上方遠處的某一點,眼神聚焦于那一點,聚焦后以放松的狀態快速向下看屏幕,記得頭別動,只能眼珠轉動。
然后你的視野中便會出現3D狀態的畫面......
成功的朋友們,效果是不是很神奇?沒成功的多試幾次,越看越上癮,只是看多了眼睛疼!!!
這不該叫“裸眼3D”視頻,應該叫“斗雞眼”視頻......
有沒有真正可以達到“裸眼3D”效果,不用傷眼睛的那種?
有!
鴨鴨在 OPPO Reno4 系列新品發布會上看到了真“裸眼3D”,作為已經看了幾十場線上發布會的科技鴨,毫不夸張的說,有被震撼到!
看!手機在你眼前直接旋轉了360°,下一秒好像能飛出屏幕,真滴是“裸眼3D”吧?畫質感人沒重影!
大家有看出來上面這張動圖是在講什么嘛?說的正是這次發布會的主角 OPPO Reno4 Pro。
鴨鴨帶你一起揭開它的“面紗”~
OPPO Reno4 Pro 作為一款5G視頻手機, 這次了搭載65W SuperVOOC 2.0閃充技術。
不太懂65W 超級閃充的科技小白莫慌,簡單來說就是充電快快快!它相比 OPPO Reno3 Pro的30W,充滿電時間幾乎縮短一半。
用上65W 超級閃充的OPPO Reno4 Pro 充電只需15分鐘,就可快速充電至60%以上。
想想這充電速度有多可怕,15分鐘只夠你吃個簡餐或者拿個快遞的時間,你的手機電量便能充至60%。
以前OPPO是“充電5分鐘,通話兩小時”,現在 OPPO Reno4 Pro 變成“充電5分鐘,刷劇4小時”啦!尤其對像鵝妹愛看視頻、拍視頻的朋友來說真的很實用,外出的時候都不敢看視頻,隨便兩集,手機就沒電了。
敲黑板!那些經常手機充電充一晚的朋友,如果你用上了OPPO Reno4 Pro ,除了36分鐘即可充滿4000mAh電池容量外,你甚至可以早上起來時再給手機充電,刷牙洗個臉的時間完全夠充了!
OPPO Reno4 Pro 的貼心之處還在于非充電狀態下,它能像個小管家一樣分析你的使用場景和網絡環境,像拍攝視頻時、睡眠時等不同場景下,會給你的手機提供“全場景智能省電”優化。
如果手機電量不足,還可開啟超級省電模式,也就微信文字聊天90分鐘才耗電5%吧~
OPPO Reno4 Pro 真的是把該省的電都給你省下來,低電量的時候又能讓你安心,不用擔心因為電量低失去聯系,甩脫電量焦慮癥!
有些朋友可能要問了,甭管你充電快不快,我就喜歡邊充電邊玩手機怎么辦?
當然可以!但邊充邊玩的一大弊端是手機會發熱,正處夏天,你也不想握個熱乎乎的手機吧?
OPPO Reno4 Pro 就通過分應用場景限制充電電流機制,能夠保證邊充邊玩也不會明顯發熱。
看看下方的“裸眼3D”視頻圖,直接把搭載的立體VC液冷散熱系統展現出來了,清晰易懂。
OPPO Reno4 Pro 在定制版柔性屏上覆蓋一層銅箔和雙層石墨片、導熱凝膠將處理器的熱能傳導到VC液冷系統、中框和后蓋分別加入散熱石墨片,讓手機處于高效散熱的狀態中。
所以燙手什么的都再見吧!
說完 OPPO Reno4 Pro 充電方面,我們先看張圖:
這是在發布會上演講的OPPO產品經理喬家棟,他每走幾步,便會有星星點點的光線追隨他,畫面可不止唯美這么簡單!
OPPO產品經理喬家棟是在介紹 OPPO Reno4 Pro 超夜景視頻,深處黑夜中也能拍清想要看到的人!
隨著互聯網和5G的發展,我們已經不滿足于只是用手機拍拍圖了,更喜歡用視頻記錄生活。
其實大家手機基本能滿足白天的視頻拍攝,但一到了晚上,再拿手機拍視頻時,畫質模糊,噪點又多,完全不能表現夜晚的美景。
(非OPPO手機拍攝)
所以滿足視頻拍攝需求的 OPPO Reno4 Pro 發布啦,作為5G視頻手機,將視頻拍攝功能再次升級。
首先從攝像頭的配置來看,擁有4800萬主攝( IMX586) +1200萬超廣角(IMX708) +1300萬長焦鏡頭+激光對焦,其中搭載的索尼IMX708超廣角鏡頭,具有行業領先的120°視場角,原始視角更大、細節更多。
現在都說自己鏡頭厲害,光鏡頭厲害沒用,得有真本事才行!
Reno4 Pro 擁有首發自研的“月光夜景視頻算法”,能夠在極暗環境下有效提升74. 4%進光量,畫面純凈度可提升33.7%。
看下對比圖,可以明顯看出“月光夜景視頻算法”可實現拍攝場景的動態畫質優化,以及改良畫面的色彩表現上,讓整體畫面看起來更舒服。
大家有遇到過拍夜景視頻的時候,有些許卡頓嗎?
那是因為夜間畫面復雜度高,導致在拍攝的時候手機容易發燙,然后影響運行效率。但是在Reno4 Pro的”月光夜景算法”中,搭載了OFuison算法可以使算法功耗優化達到40%!再也不用擔心晚上拍視頻卡頓了~
鴨鴨平時也喜歡拍視頻,但有個小毛病便是手抖,尤其心情一激動,畫面更是抖到看不清。
OPPO Reno4 Pro搭載最新的視頻超級防抖3.0,主攝、超廣角、前置都能超級防抖,拍攝極限場景都沒問題,更別提日常拍攝啦。
鴨鴨比較在意手機的性能配置方面,而鵝妹最在意的只有一個方面——輕薄!
手機重的、厚的,它都不要!鵝妹看到 OPPO Reno4 Pro時,眼都亮了,因為夠輕薄。
在搭載65W超級閃充的基礎上, OPPO Reno4 Pro機身厚度進一步減薄0.1mm至7.6mm,實現172g整機重量,配備6.55英寸雙曲面柔性OLED屏,屏占比達到93.4%,再對攝像頭進行額外設計,讓它們自然過渡到機身背部,渾然一體。
不光手機本身就纖薄,看著也會顯得很輕盈,整體摸起來的手感相當不錯。
除了 OPPO Reno4 Pro 新機本身帶給鴨鴨驚喜外,這次發布會的用心程度也遠遠超出了鴨鴨的想象,由頂級設備打造出來的裸眼3D效果和沉浸式投影舞臺,帶來震撼的視覺效果,隔著屏幕都能感受到的高科技感,更直觀、更震撼、更炸裂的體驗感。
扳扳手指頭,想想今年這么多線上發布會,OPPO帶來的感覺格外不同,做到了發布會不是開給自己看,而是真正開給屏幕前所有觀眾看的,OPPO始終如一對發布會保持足夠用心的態度。
讓人越來越期待未來的線上發布會還會帶來什么驚喜呢?從創意到形式都會有什么改變?
OPPO Reno4 Pro 使用全新的“Reno Glow晶鉆工藝”打造而成的新配色晶鉆藍和晶鉆紅,以及夢鏡黑、鈦空白四種配色可選,你喜歡哪種顏色?
最后說下大家期待已久的價格:
OPPO Reno4 標準版8GB+128GB售價為2999元,8GB+256GB售價3299元;
OPPO Reno4 Pro的8GB+128GB版本售價3799元,12GB+256GB版本售價4299元。
鴨鴨已經迫不及待想買了呢,大家可以前往OPPO官方商城了解更多產品信息和預約喲!
點擊【https://hd.oppo.com/act/m/2020/reno4huodongye/index.html】
立即預約 OPPO Reno4 系列
T之家 8 月 6 日消息 微軟今天宣布發布 Visual Studio Code 七月更新(v1.59),其中包括幾個新功能,包括 Live HTML Preview 擴展 w/JS 調試支持、測試運行程序的本地支持、跨窗口拖放終端的能力等等。
微軟中國 MSDN 表示,歡迎使用 2021 年 7 月版的 Visual Studio Code。我們希望您會喜歡此版本中的許多更新與改進,以下是其中的一些亮點:
* 擴展視圖的改進 - 豐富的擴展詳細信息懸停,新的運行狀態標簽頁。
* 設置編輯器驗證 - 快速查找到對象設置的編輯錯誤。
* 拖放終端 - 將終端跨窗口移動到編輯器和面板區域。
* 擴展的主題定制 - 一次定制多個顏色主題。
* Jupyter 筆記本的內建支持 - 直接在 VS Code 中打開 .ipynb 文件。
* 筆記本 UI 的改進 - 顯示折疊單元格的第一行,每個單元格的撤消/重做。
* 測試 API 的最終確定 - 原生支持 VS Code 中使用測試資源管理器運行測試。
* 調試反匯編視圖預覽 - 在 VS Code 中顯示反匯編的 C++ 代碼。
* 實時預覽擴展 - VS Code 中的實時的 HTML 預覽,支持 JavaScript 調試。
* 遠程 - 容器 devcontainer CLI - 用于開發容器的命令行界面。
如果您想在線閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新。
更多關于 VS Code 的資料請訪問微軟 MS Learn 平臺:http://aka.ms/vscodelearn
內部搶先版:想更先一步體驗新功能嗎?您可以下載每晚的 Insiders 版本,并在最新更新可用時立即試用。
code.visualstudio.com:
https://code.visualstudio.com/
更新:
https://code.visualstudio.com/updates/v1_58
http://aka.ms/vscodelearn:
https://docs.microsoft.com/zh-cn/users/nathanxue/collections/3jxsyzg0epdj3?WT.mc_id=VSCode_457601
Insiders:
https://code.visualstudio.com/insiders/
擴展插件:
改進了調整大小后的擴展視圖。在下面的動圖中,你可以看到默認寬度的擴展視圖顯示了所有詳細信息(以前未顯示圖標、評分和安裝計數)。當它縮小時,會顯示較小的擴展圖標,當其寬度進一步減小時,圖標和評分將被隱藏。
主題:GitHub Light
擴展視圖現在會顯示自定義懸停信息。這個豐富的懸停包括擴展的完整描述和其他有用的信息,例如為什么禁用或推薦擴展。
主題:GitHub Light
您現在可以在插件面板中看到更多的插件運行狀態,例如其激活時間、是否在啟動時激活,以及擴展編輯器中新引入的 運行時狀態 選項卡中是否生成了任何警告或錯誤。當然,你也可以懸停在插件試圖上看到部分的運行狀態信息。
主題:GitHub Light
插件面板的詳細信息標簽頁現在會顯示分類信息,資源鏈接,和諸如插件發布時間和更新時間的其他信息。選擇某個分類會顯示當前分類下的所有插件。
主題:GitHub Light
GitHub Light:
https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme
設置編輯器:
設置編輯器現在支持對象驗證功能。驗證會涵蓋直接編輯 JSON 文件時可能引入的類型錯誤。
非編輯模式下,數組設置現在具有了拖放功能的支持。
此外,將 uniqueItems 屬性設置為 true 的枚舉數組設置現在僅顯示剩余選項,而不是下拉列表中的所有選項。
設置編輯器現在還支持多行字符串設置,其中值呈現在多行文本區域而不是單行輸入框中:
擴展的主題自定義語法:
顏色自定義設置允許用戶自定義當前主題的顏色:
workbench.colorCustomizations
editor.tokenColorCustomizations
editor.semanticTokenColorCustomizations
以下語法可以用來一次自定義多個主題的顏色:
您可以列出多個主題,或者,在名稱的開頭或者結尾使用 * 通配符來選取多個主題。
Jupyter 筆記本文件的支持:
本月,我們把支援 *.ipynb 文件的代碼從 Jupyter 筆記本 插件吸收為了內建插件。這意味著你現在可以在一個全新安裝的 VS Code 環境中得到 Jupyter 筆記本的原生支持。你甚至都不用安裝 Jupyter 的插件。需要注意的是,如果你想要執行 ipywidgets 或者其他復雜渲染類型的代碼單元或者查看運行結果時,你依然需要完整安裝 Jupyter 插件。
Jupyter 筆記本:
https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
筆記本布局的改進:
我們在本次迭代中對筆記本布局進行了一些改進:
我們現在將會在折疊時渲染代碼單元的第一行。
當窗口寬度不足以呈現所有主要操作時,筆記本編輯器工具欄上的操作將移至溢出區。
notebook.undoRedoPerCell 的默認值現在更改為 true。
我們還更新了代碼單元格的默認樣式,顯示背景顏色以幫助區分單元格。主題可以使用 notebook.cellEditorBackground 來自定義這個顏色。
最后,您現在可以使用 notebook.globalToolbarShowLabel 設置在筆記本工具欄上切換文本標簽:
“復制相對路徑”配置路徑分隔符:
在調用“復制相關路徑”操作時,新設置 explorer.copyRelativePathSeparator 允許顯式設置使用路徑分隔符。以下為可用選項:
Auto(默認) - 使用操作系統特定的路徑分隔符
/- 使用斜線作為路徑分隔符
\ - 使用反斜杠作為路徑分隔符
跨編輯器組共享視圖狀態:
添加了一個新設置 workbench.editor.sharedViewState 以配置編輯器視圖狀態(例如,編輯器中的滾動位置)在編輯器組之間共享的方式。
默認情況下,此設置被禁用以保留當前設置。如果您在靠邊打開編輯器并稍后關閉該編輯器組,只是為了再次打開編輯器到靠邊,則不會恢復視圖狀態,因為您正在打開一個新的編輯器組。但是,當您啟用此設置時,除非為編輯器組找到更具體的視圖狀態,否則將在所有編輯器組中保留并使用最新的編輯器視圖狀態。
在不同的折疊范圍之間切換:
以下的新指令可以將光標位置設置為相應的折疊:
轉到下一個折疊 (editor.gotoNextFold)
轉到上一個折疊 (editor.gotoPreviousFold)
轉到父級折疊 (editor.gotoParentFold)
這些命令目前沒有默認鍵綁定,但是你可以通過以下方法添加自己的鍵盤快捷鍵:
** 首選項:打開鍵盤快捷鍵 ** (kb (workbench.action.openGlobalKeybindings))
自動折疊 Import 語句:
通過設置 editor.foldingImportsByDefault 來自動折疊 Import 語句。
當文件被打開后,折疊的狀態將會被保存。
TypeScript,JavaScript,Java,C#,C++ 和其他具備折疊范圍提供程序的編程語言都支持這項新功能。注:折疊范圍提供程序特指將 Import 語句標注為 FoldingRangeKind.Imports 的提供程序。
選擇項的種子搜索字符串:
Find Widget 設置 editor.find.seedSearchStringFromSelection 已支持從非空選擇中播種搜索字符串。默認情況下,當顯示小部件時,編輯器將使用以下兩項作為搜索關鍵詞:1. 選擇項。2. 空選擇周圍的單詞。
內聯建議的改進:
我們改變了內聯建議的呈現方式。這不僅修復了許多錯誤,而且還使自動換行識別了內聯建議。
此外,現在支持了非尾隨位置的多行內聯建議。
嵌入提示的改進:
我們還改變了嵌入提示的呈現方式。通過使用與內聯建議相同的機制,嵌入提示現在也被用于自動換行。
這種機制還實現了嵌入提示周圍的單獨光標停靠。
在窗口之間拖拽終端:
現在,您可以任意地從標簽頁或一個窗口的編輯區域,拖拽終端到標簽頁,編輯區域,或者另一個窗口的面板。
子進程跟蹤和關閉警告:
當用戶嘗試關閉一個有子進程的終端時,terminal.integrated.confirmOnExit 和新的設置 terminal.integrated.confirmOnKill 會警告用戶。默認情況下,這僅影響編輯器區域中的終端,但用戶可以配置為顯示所有的(面板區域中)終端警告。
設置所提供的終端配置文件為默認:
現在用戶可以將插件所提供的終端配置文件設為默認的配置文件。
下劃線和刪除線支持:
終端現在支持下劃線和刪除線屬性。例如,用可以可以配置 git 來使用這些新屬性:
主題: Sapphire
上述的例子使用了下列 .gitconfig 參數:
配置 git:
https://git-scm.com/docs/git-config#Documentation/git-config.txt-color
Sapphire:
https://marketplace.visualstudio.com/items?itemName=Tyriar.theme-sapphire
編輯區域靠邊創建終端:
現在,用戶可以在活動編輯區域使用新指令 workbench.action.createTerminalEditorSide 來創建一個靠邊新的終端。
活動終端標簽頁指示器:
主題現在可以使用主題鍵 terminal.tab.activeBorder 設置垂直線的顏色,用以指示活動的終端選項卡。
如果沒有設置 terminal.tab.activeBorder,顏色將回退到 tab.activeBorder。
禁用終端標簽頁動畫圖標:
terminal.integrated.tabs.enableAnimation 會禁用終端標簽頁動畫圖標。如果是針對任務而不是微調器,播放按鈕會被使用:
改進了編輯器標題區域內的 播放/調試 按鍵:
在 2 月的版本中,我們引入了一個下拉按鈕,用以在編輯器標題區域的中央(緊湊)位置對運行和調試命令進行分組。根據一些用戶反饋,我們嘗試通過記憶上次執行的操作來改進下拉按鈕。下拉按鈕現在將會擁有兩個單擊區域,一個用于默認動作(左),另一個用于下拉(右),其中,所選運行操作將被記憶并存為新的默認值。
請注意:
如果只有一個運行或調試操作,則會省略下拉菜單。
如果有多個運行或調試操作,所有操作都會出現在下拉菜單中,并且默認操作設置為下拉菜單中的第一個操作(前提是沒有記住的操作)。
VS Code 重新啟動時,會為特定工作區保留默認操作;它不會為編輯器內容保留。
2 月的版本:
https://code.visualstudio.com/updates/v1_54#_limits-for-editor-title-menu-and-run-submenu
實時預覽:
實時預覽擴展插件本月出現了一些令人興奮的新功能!這包括:
內建 JavaScript 調試器兼容性的外部預覽。
請使用 `Live Preview: Show Debug Preview` 來嘗鮮使用!
對嵌入式瀏覽器的改進,例如“在頁面中查找”的支持和快速訪問 `webvivew` DevTools。
文件系統監視自動生成文件。
期待更多!
要查看有關本月進度的更多詳細信息,請參閱擴展的發行說明。
主題:GitHub Dark
實時預覽擴展插件:
https://marketplace.visualstudio.com/items?itemName=ms-vscode.live-server
發行說明:
https://github.com/microsoft/vscode-livepreview/blob/main/release_notes/july-2021.md
GitHub Dark:
https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme
GitHub 拉取請求和問題:
GitHub 拉取請求和問題 擴展插件的工作仍在繼續,它允許您響應、創建和管理拉取請求和問題。本月重點:
對問題的“開始工作”進行了擴展,讓您可以處理當前打開的存儲庫之外的問題。
要了解所有新功能和更新,您可以查看 0.29.0 版擴展的完整變更日志。
GitHub 拉取請求和問題:
https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github
0.29.0 版擴展的完整變更日志:
https://github.com/microsoft/vscode-pull-request-github/blob/main/CHANGELOG.md#0290
Jupyter:
Jupyter 擴展插件的工作仍在繼續。要了解所有的新功能和更新,您可以查看 7 月版本的完整更新日志。
Jupyter:
https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
7 月版本的完整更新日志:
https://github.com/microsoft/vscode-jupyter/blob/main/CHANGELOG.md#202189-3-august-2021
互動窗口:
Jupyter 交互窗口提供了另一種構建和使用 Jupyter 筆記本的方法,使用文本文件而不是筆記本界面。上個月,我們預覽了 Jupyter 交互式窗口的升級版本,現在我們提供了具有更深入的工作臺集成,包括對主題的支持、自定義鍵綁定、片段、與擴展的兼容性等!非常感謝我們的用戶通過 GitHub 問題提供有關預覽體驗版的反饋。內置交互窗口現在已經成為了 1.59 版本中的默認界面。之前的界面在 "jupyter.enableNativeInteractiveWindow": false 后將仍然可用,并會在即將發布的版本中刪除。我們期待您的反饋!
您的反饋:
https://github.com/microsoft/vscode-jupyter/issues
逐行運行:
我們一直致力于支持 Jupyter 筆記本中的“逐行運行”功能。此功能本質上是一種簡化的調試模式,可讓您逐行執行單元代碼,而無需任何復雜的調試 UI。這依然是實驗性的,您可以通過設置 "jupyter.experimental.debugging": true,在您選擇的內核中安裝 ipykernel 的第 6 版,然后選擇單元格工具欄中的“按行運行”按鈕來嘗鮮一下。
遠程容器 devcontainer CLI:
遠程 - 容器 擴展適用于在 VS Code 中使用 Docker 容器。它現在包含 devcontainer 命令行界面,讓您可以輕松地打開容器中的文件夾 (devcontainer open) 或者構建開發容器映像 (devcontainer build)。
您可以在 遠程開發 發行說明中了解新的功能和錯誤修復。
遠程 - 容器:
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
遠程開發:
https://github.com/microsoft/vscode-docs/blob/main/remote-release-notes/v1_59.md
無標題文件的自動語言檢測:
我們很高興地宣布無標題文件的自動語言檢測的初始預覽版,它使用機器學習來檢測您正在編碼的語言并自動設置無標題文件的語言模式。此功能利用了開源 ML 庫 Tensorflow.js 和 GitHub 用戶 @yoeo 來自 Guesslang 的 ML 模型。
在此版本中,該功能將默認關閉,但我們計劃將其設為下一次迭代版本的默認設置。如果您想要啟用它,請應用以下設置:
```json "workbench.editor.untitled.experimentalLanguageDetection": true ``` "workbench.editor.untitled.experimentalLanguageDetection": true
舉個例子,您可以打開一個無標題文件并將一段代碼粘貼到您的編輯器中。
以下是一段自動識別的 Python 代碼段:
主題:Panda
此外,您可以通過打開語言選擇器查看正在檢測的語言。
主題:Panda
注意:如果語言檢測結果不夠確信,那么您將保持當前的語言模式,語言選擇器中不會顯示任何結果,直到語言檢測結果更有把握。
該設置還允許您提供語言覆蓋,可用于指定您不想自動關閉的語言模式。
以下的例子展示了如何關閉 .md 文件自動檢測:
在您編輯無標題的 Markdown 文件時,自動語言檢測功能 * 不會 * 運行。但是,如果您正在修改任何其他類型的無標題文件,自動語言檢測功能 * 將 * 會檢測這些文件的內容。
我們已經將與 ML 模型交互的代碼分離并合并到它自己的代碼庫中,作為 npm 包發布,該包存在于 vscode-languagedetection 存儲庫中。
請讓我們知道無標題文件的自動語言檢測功能是否幫助到了您的日常工作!
Tensorflow.js:
https://www.tensorflow.org/js/
@yoeo:
https://github.com/yoeo
Guesslang:
https://github.com/yoeo/guesslang
Panda:
https://marketplace.visualstudio.com/items?itemName=tinkertrain.theme-panda
vscode-languagedetection:
https://github.com/Microsoft/vscode-languagedetection
TypeScript 4.4:
此版本包括對 TypeScript 4.4 版本的支持。您可以在 TypeScript 博客上閱讀有關 TypeScript 4.4 中新語言功能和改進的更多信息。一些工具亮點:
在 JavaScript 和 TypeScript 文件中嵌入參數名稱和類型的提示。
純 JS 文件中的基本拼寫建議。只有當我們對錯誤和修復有把握時才會顯示這些。
要開始使用 TypeScript 4.4 內測版本,請安裝 TypeScript Nightly 擴展。
如果您在使用 TypeScript 4.4 時遇到任何錯誤,請分享您的反饋并告訴我們。
TypeScript 博客:
https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-beta/
TypeScript Nightly 擴展:
https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next
反匯編試圖:
感謝微軟 C++ 團隊貢獻的大量代碼,我們很高興在這個里程碑版本中包括了 ** 反匯編視圖 ** 的預覽功能。
反匯編視圖可以從編輯器的上下文菜單中打開,用以顯示活動堆棧幀的反匯編源碼,它支持單步執行匯編指令,并且可以在單個指令上設置斷點。
反匯編視圖僅在活動的調試會話中可用。注意,底層調試擴展插件也需要有相應的支持。
目前,只有 C++ 和 Mock Debug 可以支持反匯編視圖。
從技術角度而言,VS Code 的反匯編視圖實現了 DAP (Debug Adapter Protocol) 協議另外四個功能:
disassembly 請求,用以提供基于內存位置的反匯編源碼。
堆棧幀上的 instructionPointerReference 屬性。
步進請求的 granularity 屬性。
指令斷點和 setInstructionBreakpoints 請求。
貢獻的大量代碼:
https://github.com/microsoft/vscode/pull/125737
C++:
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
Mock Debug:
https://marketplace.visualstudio.com/items?itemName=andreweinand.mock-debug
測試 API:
去年秋天,我們開始在 VS Code 中添加對運行測試的原生支持,本月,第一組與測試相關的 API 已經交付。與之前的擴展插件相比,這些 API 提供了更大的靈活性、更好的性能和更豐富的用戶體驗。查看有關編寫測試擴展的指南以深入了解。
主題:
測試資源管理器 UI 插件的現有用戶可以通過將 testExplorer.useNativeTesting 設置為 true 來獲得原生體驗。但是,該轉換是基于測試資源管理器 UI 擴展現有 API,因此不包括諸如豐富差異之類的一些功能。
Java 擴展包中包含的 Microsoft Java 測試運行器是最早采用測試 API 的擴展之一 。
編寫測試擴展的指南:
https://code.visualstudio.com/api/extension-guides/testing
測試資源管理器 UI:
https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-test-explorer
Java 擴展包:
https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack
Microsoft Java 測試運行器:
https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test
新建文件菜單的貢獻點:
有助于創建新文件編輯器的擴展(例如筆記本或自定義編輯器)現在可以向新的 文件/新文件 菜單貢獻點貢獻命令。可以從歡迎頁面或文件菜單中的“新建文件...”項目訪問此菜單。
豐富狀態欄懸停:
狀態欄項目現在支持豐富的懸停,包括鏈接和圖標 StatusBarItem.tooltip: string | IMarkdownString
* If `MarkdownString.supportThemeIcons` is true, you can use icons with the `$(iconName)` syntax.
* If the `MarkdownString` is trusted, you can also add command links. Syntax: `([test](command:vscode.newWindow))`
如果 MarkdownString.supportThemeIcons 設置為 true,您可以使用帶有 $(iconName) 語法的圖標
如果 MarkdownString 受信任,還可以添加命令鏈接。語法:([test](command:vscode.newWindow))
狀態欄警告顏色:
表示警告的狀態欄項目可以使用新添加的顏色 statusBarItem.warningBackground 和 statusBarItem.warningForeground。
沒有 additionalProperties 的對象設置:
對象設置必須將 additionalProperties 設置為 false,以便在設置編輯器中支持對象。否則,設置編輯器會解讀為復雜設置(不規律的設置),并將用戶定向到設置 JSON 文件。
多行字符串設置:
要在設置編輯器中添加多行字符串設置的支持,請將 "editPresentation": "multilineText" 作為鍵值配對添加到字符串設置中。將字符串設置更改為多行設置將導致設置編輯器在多行文本區域(而非單行輸入框中)呈現設置值。
更新的 Codicons:
我們已經添加了下列新圖標到 codicon 庫中:
azure
compass-active
compass-active
compass-dot
compass
debug-all
debug-coverage
git-pull-request-closed
git-pull-request-draft
issue-draft
layers-active
layers-dot
layers
codicon:
https://code.visualstudio.com/api/references/icons-in-labels
文本文檔更改原因:
當事件 workspace.onDidChangeTextDocument 被觸發時,事件對象的新屬性 reason 會告知用戶文本更改的原因是撤消或重做操作。
語言服務器協議:
語言服務器協議的下一個新版本以及對應的 npm 模塊已經發布。3.17 版本包含了一個關于完成項標簽詳細信息的新提案,該提案符合 VS Code 本身的最新變化。
語言服務器協議:
https://microsoft.github.io/language-server-protocol/
3.17 版本:
https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/
最終確定“writeMemory”請求和“memory”事件提案:
writeMemory 請求已經完成,現在可以在 Debug Adapter Protocol 的 1.48 版和與之相對應的 npm 模塊中使用。如果調試適配器具有 supportsWriteMemoryRequest 功能,客戶端可以使用 writeMemory 請求將字節寫入給定位置的內存。
memory 事件有一個新的提案,將在下一個里程碑中添加到 DAP。
Debug Adapter Protocol:
https://microsoft.github.io/debug-adapter-protocol/
新的提案:
https://github.com/microsoft/debug-adapter-protocol/issues/194#issuecomment-886687894
每個里程碑版本都附有新提議的 API,擴展插件的作者們可以試用它們。我們期待您的反饋。如果您想要嘗鮮提議的新 API,請完成以下步驟:
您必須使用 Insiders 版本,因為提議的 API 經常被修改
你必須在你的擴展的 package.json 文件中加入這一行:"enableProposedApi": true
將最新版本的 vscode.proposed.d.ts 文件復制到項目的源位置
您將不能使用建議 API 發布擴展插件。因為新的版本可能會有重大變化,我們需要保證現有的擴展插件可以被繼續使用。
vscode.proposed.d.ts:
https://github.com/microsoft/vscode/blob/main/src/vs/vscode.proposed.d.ts
isDefault 用于 TaskGroup:
group 屬性存在于 tasks.json 文件中定義的任務上,也通過任務 API 公開。group 屬性有一個 isDefault 屬性,該屬性直到現在在 API 中都不可用。該提案將 isDefault 屬性公開為 TaskGroup 上的只讀屬性,以便擴展可以讀取哪個任務是組的默認任務,但不能通過為組設置默認值來覆蓋用戶配置。
用于 AuthenticationGetSessionOptions 的 forceRecreate
到目前為止,用于獲取身份驗證會話對象的 getSession API 從來沒有能力要求用戶需要再次登錄。然而這對于使用 SAML/單點登錄 (SSO) 體驗的 GitHub 等身份驗證服務是必需的,其中訪問令牌最終會在 SSO 會話到期時失去對資源的訪問權限。該提案為 AuthenticationGetSessionOptions 添加了另一個名為 forceRecreate 的屬性,允許您要求用戶再次登錄。向用戶顯示類似于您指定 createIfNone 時顯示的模式體驗。
基于 iframe 的 webviews 現在在桌面上隨處可見:
本月我們完成了從 Electron 的 webview 標簽元素過渡到基于普通 <iframe> 元素的 webview 。這更好地協調了 VS Code 的 webviews 跨桌面和 web 的實現,也讓我們刪除了很多現在冗余的代碼。
Electron 的 webview 標簽:
https://www.electronjs.org/docs/api/webview-tag
Electron 13 更新:
在這個里程碑版本中,我們完成了將 Electron 13 捆綁到 VS Code 的實驗,這要感謝所有參與 Insiders 測試和自托管的參與者。這是 Chromium 91.0.4472.124 附帶的主要 Electron 版本。此版本的 Node.js 版本沒有變化,它仍然是 v14.16.0。
Electron 沙盒支持的進展:
隨著我們準備讓 VS Code 工作臺啟用 Electron 的沙盒功能,我們希望在 linux 上啟用混合沙盒模式,且不在分布式軟件包 deb、rpm、snap、tar 存檔中捆綁 cli 參數 --no-sandbox。Chromium 在 linux 上有一個多層沙盒模型。如果 Chromium 無法將命名空間沙盒用于第 1 層,它將嘗試通過幫助程序 chrome-sandbox 來使用 setuid 沙盒。要使 setuid 二進制文件工作,它需要滿足以下條件:
沙箱二進制文件必須可由 Chromium 進程執行
它必須是 SUID 并且可以被其他人執行
我們能夠為 deb 和 rpm 包保留這些條件。目前無法獲得 snap 的這些權限,我們有以下跟蹤問題 https://github.com/microsoft/vscode/issues/127140。
至于其他使用 tar 存檔的應用程序,如果應用程序無法使用命名空間沙盒(這在容器內運行時可能會發生)它將失敗并顯示以下錯誤
FATAL:setuid_sandbox_host.cc (158)] 找到了 SUID 沙盒助手二進制文件,但沒有正確配置。而不是在沒有沙盒的情況下運行,我現在正在中止程序。您需要確保 chrome-sandbox 由 root 用戶擁有并且模式為 4755。
如果發生這種情況,您可以使用以下兩個選項之一來使其正常工作:
修復 setuid helper 權限問題
使用 --no-sandbox 標志運行
沙盒:
https://www.electronjs.org/docs/tutorial/sandbox
linux 上有一個多層沙盒模型:
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/sandboxing.md
setuid 沙盒:
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/suid_sandbox.md
煙霧測試的一些改進:
我們一直為每個構建版本運行一套完整的煙霧測試。我們測試打開 VSCode(桌面和 Web)并執行一堆 UI 元素以確保正確的功能。這個里程碑版本中我們在這個基礎上投入了更多資源,從而使我們能夠從最終計劃中移除手動的煙霧測試。
煙霧測試現在可以在所有平臺(macOS、Linux 和 Windows)上運行。最重要的是,我們已經實現在每次代碼提交時自動運行煙霧測試,從而我們可以及時地發現 VS Code 新版本可能引入的軟件錯誤。
最后,感謝我們用于自動化 Web 冒煙測試的 Playwright 庫,我們采用了他們的跟蹤工具,這使得我們可以查看并且重復運行失敗的煙霧測試。
Playwright:
https://github.com/microsoft/playwright
跟蹤工具:
https://playwright.dev/docs/next/trace-viewer/
學習資料
http://aka.ms/vscodelearn
http://aka.ms/vscodelearn:
https://docs.microsoft.com/zh-cn/users/nathanxue/collections/3jxsyzg0epdj3?WT.mc_id=VSCode_457601
重大修復
[26425](https://github.com/microsoft/vscode/issues/26425):沒有更改時不應顯示“打開更改”按鈕
[100815](https://github.com/microsoft/vscode/issues/100815):外部終端在連接到遠程 WSL 時中斷
[106981](https://github.com/microsoft/vscode/issues/106981):當窗口縮放設置為 -1 時,終端光標重影
[127959](https://github.com/microsoft/vscode/issues/127959):調試程序暫停時將打開調試窗格
[129059](https://github.com/microsoft/vscode/issues/129059):設置編輯器中的對象小組件不呈現說明
[129070](https://github.com/microsoft/vscode/issues/129070):無法通過僅按“確定”按鈕更正下拉列表設置值
[129415](https://github.com/microsoft/vscode/issues/129415):無法在單一文件模式下運行用戶任務
分自編碼器(VAE)與生成對抗網絡(GAN)經常被相互比較,其中前者在圖像生成上的應用范圍遠窄于后者。VAE 是不是只能在 MNIST 數據集上生成有意義的輸出?在本文中,作者嘗試使用 VAE 自動生成動漫人物的頭像,并取得了不錯的結果。
以上是通過變分自編碼器生成的動畫圖片樣本。想要獲得本文在 Github 代碼倉庫中的相關代碼請點擊:https://github.com/wuga214/IMPLEMENTATION_Variational-Auto-Encoder
在圖像生成領域,人們總是喜歡試著將變分自編碼器(VAE)和對抗生成網絡(GAN)相比較。人們的共識是,VAE 更容易被訓練,并且具有顯式的分布假設(高斯分布)用于顯式的表示和觀察,而 GAN 則能夠更好地捕獲觀測值的分布并且對觀測分布沒有任何的假設。結果就是,每個人都相信只有 GAN 能夠創造出清晰而生動的圖片。雖然可能確實是這樣,因為從理論上講,GAN 捕獲到了像素之間的相關性,但是沒有多少人試過用比 28*28 維的 MNIST 數據更大的圖片作為輸入訓練 VAE 來證明這一點。
在 MNIST 數據集上有太多變分自編碼器(VAE)的實現,但是很少有人在其他的數據集上做些不一樣的事情。這是因為最原始的變分自編碼器的論文僅僅只用 MNIST 數據集作為了一個例子嗎?
流言終結者!
現在,讓我們做一個「流言終結者」的實踐來看看 VAE 圖像生成器的效果是多么不盡人意。例如,下面這些圖像。
模糊不清的 VAE 樣例。
我們從尋找一些 GAN 的對比組開始。我在 Google 上搜索了」GAN 應用程序」,并且發現了一個非常有趣的 Github 代碼倉庫,這個代碼倉庫總結了一些 GAN 應用程序:https://github.com/nashory/gans-awesome-applications
為什么「GAN 應用程序」就可以呢?好吧,很難找到不是圖像生成的 GAN 應用程序,不是嗎?為了讓這個實踐更加令人興奮,我們這次將嘗試用生成模型輸出一些動漫形象!
首先,讓我們看看一個 GAN 模型完成這個任務的效果有多好。下面的兩組圖片來自于兩個做動漫圖片生成的項目,它們被很多人選擇并且以此為基礎開展工作:
1)https://github.com/jayleicn/animeGAN
2)https://github.com/tdrussell/IllustrationGAN
還不錯哦,不是嗎?我喜歡它們的色彩,它們和真實的圖片十分相似。
盡管這些圖片里面有些重影,但它們看上去更好。我猜竅門是放大圖像,僅僅只看人臉。
結果表明,GAN 的優異表現令人印象深刻。這讓我倍感壓力。
額... 我們還應該繼續嗎...
從哪里獲得數據?
很不幸,在網絡上沒有可以得到的標準動漫形象數據集。但是這不能阻止像我這樣的人去尋找它。在瀏覽了一些 GitHub 代碼倉庫之后,我得到了一些提示:
一個叫做「Getchu」的日本網站有大量的動漫圖片。
需要一些工具從網上下載圖片,但是你需要自己找到這種工具。(我在這里向你提供一個可能是不合法的)
有很多預訓練好的 U-net/ RCNN 動漫人臉檢測器,比如 lbpcascade_animeface,這樣一來你就可以將人臉提取成 64×64 的圖片。
變分自編碼器 VAE
本文假設你已經閱讀了大量關于變分自編碼器的帖子。如果你沒有的話,我想向你推薦下面這幾篇文章:
Intuitively Understanding Variational Autoencoders (https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf)
Tutorial—What is a variational autoencoder? (https://jaan.io/what-is-variational-autoencoder-vae-tutorial/)
Introducing Variational Autoencoders (in Prose and Code) (http://blog.fastforwardlabs.com/2016/08/12/introducing-variational-autoencoders-in-prose-and.html)
在 TensorFlow 中對比兩大生成模型:VAE 與 GAN
所以,在你知道了什么是 VAE 以及如何實現它之后,現在的問題就是「如果知道目標函數和實現方法就足夠去訓練一個變分自編碼器了嗎?」我認為答案是肯定的,但是它并不想通常說的那么簡單。例如,這個目標函數來自哪里的問題,以及 KL 散度分量在這里有什么作用。在這篇帖子中,我會試著去解釋 VAE 背后隱藏的奧秘。
變分推斷是一種在概率圖模型(PGM)中推斷復雜分布的技術。直觀地說,如果你不能很容易地捕獲復雜分布的最優點,你就可以用一些像高斯分布這樣的簡單分布來近似估計它的上界或者下界。例如,下圖展示了如何使用高斯分布近似估計局部最優解。
圖片來自:https://people.duke.edu/~ccc14/sta-663/EMAlgorithm.html
請忽略標題中的 EM(最大期望算法)。這是一個在概率圖模型中經典的優化方法,它能夠更新變分下界,但是現在你在深度學習中會使用隨機梯度下降算法(SGD)。
KL 散度是另外一個在概率圖模型中會用到的非常重要的技術。它用來測量兩個分布之間的差異。它不是一個距離度量,因為 KL[Q||P] 不等于 KL[P||Q]。下面的幻燈片展示了這種差異。
圖片來自:https://www.slideshare.net/Sabhaology/variational-inference
顯然,在 Q>0 時,KL[Q||P] 不允許 P=0. 換句話說,當最小化 KL[Q||P] 時,你想用 Q 分布來捕獲 P 分布的一些模式,但是你必然會忽略一些模式的風險。并且,在 P>0 時,KL[P||Q] 不允許 Q=0。換句話說,當最小化 KL[P||Q] 時,你想讓 Q 捕獲整個分布,而且如果有需要的話,完全忽略掉 P 的模式。
到目前為止,我們直觀地明白了兩個事實:
「變分」大致是對上界或者下界的近似。
「KL」衡量兩個分部之間的差異。
現在讓我們回過頭來看看 VAE 的目標函數是怎么得來的。
這是我對 VAE 的推導。盡管它似乎與你可能在論文中看到的看起來不同,但這是我認為最容易理解的推導。
給定一些圖像作為訓練數據,我們想要擬合一些能夠盡可能準確地表示訓練數據的參數(theta)。正式一點說,我們想要擬合用于最大化觀測值的聯合概率的模型。因此,你會得到左邊的表達式。
「z」從何而來?
z 是創造觀測值(圖像)的潛在表示。直觀地說,我們假設一些神秘的畫家在數據集中創作這些圖像(x),我們將它們稱作 Z。并且,我們發現 Z 是不確定的,有時 1 號畫家創作了圖片,有時候是 2 號畫家創作了圖片。我們僅僅知道所有的藝術家都對他們所畫的圖片有著特別的偏愛。
大于等于號是怎么來的?
Jensen 不等式如下所示。注意: log 是凹函數,所以在我們的例子中,不等式反過來的。
圖片來自 Youtube:https://www.youtube.com/watch?v=10xgmpG_uTs
為什么在最后一行取近似?
我們不能對無窮的可能的 z 做幾分,所以我們使用數值逼近,這意味著我們從分布中進行抽樣來對期望取近似。
最小化 KL 項:將 P(z|x) 看作 N(0,1)(標準正態分布)。我們希望通過從標準正態分布中抽樣來生成圖像。因此,我們最好讓潛在的分布盡可能地接近標準正態分布。
最大限度地減小重構損失:創造盡可能生動/真實的圖像。最小化真實的圖像和生成的圖像之間的誤差。
很容易看到,為了使 VAE 很好的工作,平衡這兩個部分是十分關鍵的。
如果我們完全忽略 KL 項,變分自編碼器將收斂到標準的自編碼器,它將刪除目標函數中的隨機部分。因此,VAE 不能生成新的圖像,只能記住并且展示訓練數據(或者創造純粹的噪聲,因為在那個潛在的位置沒有編碼的圖像!)如果你足夠幸運的話,理想的結果是實現了核主成分分析!
如果我們完全忽略了重構項,那么潛在的分布會退化成標準的正態分布。所以無論輸入是什么,你總是得到類似的輸出。
一個 GAN 退化的案例。VAE 的情況也相同。圖片來自:http://yusuke-ujitoko.hatenablog.com/entry/2017/05/30/011900
現在我們明白了:
我們希望 VAE 生成合理的圖像,但是我們不想讓它顯示訓練數據。
我們想從標準正態分布中取樣,但是我們不想一次又一次地看到同樣的圖像。我們希望模型能產生差別非常大的圖像。
成功了!
好吧,我承認,小圖片是沒有說服力的。
稍微放大一點...
結論
關于 VAE 只能生成模糊的圖片的流言是真實的,但是我仍然認為這是可以接受的。
如果你對這個實踐感興趣,可以試試這里的代碼:https://github.com/wuga214/IMPLEMENTATION_Variational-Auto-Encoder
*請認真填寫需求信息,我們會在24小時內與您取得聯系。