❶ jquery 簡介
JQuery是繼prototype之後又一個優秀的javascript庫。它是輕量級的js庫 ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及後續版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更方便地處理HTML(標准通用標記語言下的一個應用)、events、實現動畫效果,並且方便地為網站提供AJAX交互。jQuery還有頌閉一個比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內容分離,也就是說,不用再在html裡面插入一堆js來調用命令了,只需要定義id即可。
jQuery是一個兼容多瀏覽器的javascript庫,核心理念是write less,do more(寫得更少,做得更多)。jQuery在2006年1月由美國人John Resig在紐約的barcamp發布,吸引了來自世界各地的眾多JavaScript高手加入,由Dave Methvin率領團隊進行開發。如今,jQuery已經成為最流行的javascript庫,在世界前10000個訪問最多的網站中,有超過55%在使用jQuery。
jQuery是免費、開源的,使用MIT許可協議。jQuery的語法設計可以使開發更加便捷,例如操作文檔對象、選擇DOM元素、製作動畫效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開發者編寫插件。其模塊化的使用方式使開發者可以很輕松的開發出功能強大的靜態或動態網頁。
jQuery,顧名思義,也就是JavaScript和查詢(Query),即是輔助JavaScript開發的庫。
歷史
大概在 1992 年,一家稱作 Nombas 的公司開發了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言。Cmm 背後的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與 C (和 C ++)足夠的相似性,以便開發人員能很快學會。這個腳本語言捆綁在一個叫做 CEnvi 的共享軟體中,它首次向開發人員展示了這種語言的威力。
Nombas 最終把 Cmm 的名字改成了 ScriptEase,原因是後面的部分(mm)聽起來過於消極,同時字母 C 「令人害怕」。
當 Netscape Navigator 嶄露頭角時,Nombas 開發了一個可以嵌入網頁中的 CEnvi 的版本。這些早期的試驗被稱為 Espresso Page(濃咖啡般的頁面),它們代表了第一個在萬維網上使用的客戶端語言。而 Nombas 絲毫沒有料到它的理念將會野拿裂成為萬維網的一塊重要基石。
當網上沖浪越來越流行時,對於開發客戶端腳本的需求也逐漸增大。此時,大部分網際網路用戶還僅僅通過 28.8 kbit/s 的數據機連接到網路,即便這時網頁已經不斷地變得更大和更復雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與伺服器進行多次地往返敏散交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理後,看到的卻是一條告訴你忘記填寫一個必要的欄位。
那時正處於技術革新最前沿的 Netscape,開始認真考慮開發一種客戶端腳本語言來解決簡單的處理問題。
當時工作於 Netscape 的 Brendan Eich,開始著手為即將在 1995 年發行的 Netscape Navigator 2.0 開發一個稱之為 LiveScript 的腳本語言,當時的目的是在瀏覽器和伺服器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時完成 LiveScript 實現。
就在 Netscape Navigator 2.0 即將正式發布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個網際網路時髦詞彙。Netscape 的賭注最終得到回報,JavaScript 從此變成了網際網路的必備組件。
因為 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發布了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發布了 IE 3.0 並搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript 語言發展過程中的重要一步。
在微軟進入後,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 並沒有一個標准來統一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨著業界擔心的增加,這個語言的標准化顯然已經勢在必行。
2006年1月,jQuery的第一個版本面世,至今已經有10年多了(註:這個時間點是截止至出書時間)。雖然過了這么久,但它依然以其簡潔、靈活的編程風格讓人一見傾心。在本篇文章中,我們將講述jQuery的發展 歷史 ,讓讀者對jQuery有更多的了解。
在jQuery迅速發展的同時,一些大的廠商也看中了商機。2009年9月,微軟和諾基亞公司正式宣布支持開源的jQuery庫,另外,微軟公司還宣稱他們將把jQuery作為Visual Studio工具集的一部分。他將提供包括jQuery的智能提示、代碼片段、示例文檔編制等內容在內的功能。微軟和諾基亞公司將長期成為jQuery的用戶成員,其他成員還有Google,Intel,IBM,Intuit等公司。
2009年1月,jQuery 1.3版發布,它使用了全新的選擇符引擎Sizzle,在各個瀏覽器下全面超越其他同類型JavaScript框架的查詢速度,程序庫的性能也因此有了極大提升。這一版本的第2個變化就是提供live()方法,使用live()方法可以為當前及將來增加的元素綁定事件,在1.3版之前,如果要為將來增加的元素綁定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。2005年8月,John Resig提議改進Prototype的「Behaviour」庫,於是他在blog上發表了自己的想法,並用了3個例子做說明。
2010年2月,jQuery 1.4.2版發布,它新增了有關事件委託的兩個方法:delegate()和undelegate()。delegate()用於替代1.3.2中的live()方法。這個方法比live()來的方便,而且也可以達到動態添加事件的作用。比如給表格的每個td綁定hover事件
特點
1.動態特效
2.AJAX
3.通過插件來擴展
4.方便的工具 - 例如瀏覽器版本判斷
5.漸進增強
6.鏈式調用
7.多瀏覽器支持,支持Internet Explorer6.0+、Opera9.0+、Firefox2+、Safari2.0+、Chrome1.0+(在2.0.0中取消了對Internet Explorer6,7,8的支持)
歷史 版本
jQuery 1.0
(2006年8月):該庫的第一個穩定版本,已經具有了對CSS選擇符、事件處理和AJAX交互的穩健支持。
jQuery 1.1
(2007年1月):這一版大幅簡化了API。許多較少使用的方法被合並,減少了需要掌握和解釋的方法數量。
jQuery 1.1.3
(2007年7月):這次小版本變化包含了對jQuery選擇符引擎執行速度的顯著提升。從這個版本開始,jQuery的性能達到了Prototype、Mootools以及Dojo等同類JavaScript庫的水平。
jQuery 1.2
(2007年9月):這一版去掉了對XPath選擇符的支持,原因是相對於CSS語法它已經變得多餘了。這一版能夠支持對效果的更靈活定製,而且藉助新增的命名空間事件,也使插件開發變得更容易。
jQuery UI(2007年9月):這個新的插件套件是作為曾經流行但已過時的Interface插件的替代項目而發布的。jQuery UI中包含大量預定義好的部件(widget),以及一組用於構建高級元素(例如可拖放的界面元素)的工具。
jQuery 1.2.6
(2008年5月):這一版主要是將Brandon Aaron開發的流行的Dimensions插件的功能移植到了核心庫中。
jQuery 1.3
(2009年1月):這一版使用了全新的選擇符引擎Sizzle,庫的性能也因此有了極大提升。這一版正式支持事件委託特性。
jQuery 1.3.2
(2009年2月):這次小版本升級進一步提升了庫的性能,例如改進了:visible/:hidden選擇符、.height()/.width()方法的底層處理機制。另外,也支持查詢的元素按文檔順序返回。
jQuery 1.4
(2010年1月14號):對代碼庫進行了內部重寫組織,開始建立一些風格規范。老的core.js文件被分為attribute.js,css.js,data.js,manipulation.js,traversing.js和queue.js;CSS和attribute的邏輯分離。
重要變化:
1. Ajax重寫
Ajax模塊完全進行了重寫。新增一個jXHR對象,為不同瀏覽器內置的XMLHttpRequest提供了一致的超集。對於XMLHttpRequest之外的傳輸機制,比如JSONP請求,jXHR對象也可以進行處理。(詳情可以參見:jQuery.ajax文檔)
此外,系統的可擴展性大大增強,可以附加各種數據處理器、過濾器和傳輸機制,為開發新的Ajax插件提供了方便。
2. 延遲對象
延遲對象(Deferred Object,jQuery.Deferred對象)是一個可鏈接的(chainable)實用工具對象,實現了Promise介面,可以在回調隊列中注冊多個回調、調用回調隊列並轉發任何同步/非同步函數的成敗狀態。正如Using Deferreds in jQuery 1.5一文中說明的,其結果是在jQuery中能夠將依賴於某個任務(事件)結果的邏輯與任務本身解耦了。這一點在JavaScript中其實並不新鮮,Mochikit和Dojo等已經實現有些日子了。由於jQuery 1.5的Ajax模塊內置使用了延遲對象,因此通過jQuery編寫Ajax程序將自動獲得這一功能。
開發人員藉此可以使用無法立即獲得的返回值(如非同步Ajax請求的返回結果),而且第一次能夠附加多個事件處理器。
例如,使用了新的jQuery內部Ajax API就可以實現下面的代碼了:
// Assign handlers immediately after making the request,// and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); });// perform other work here ... // Set another completion function for the request above jxhr.complete(function(){ alert("second complete"); });
此外,使用jQuery.Deferred還可以開發自己的延遲對象。更多詳情參見:延遲對象文檔。
3. jQuery.sub()
jQuery 1.5提供了一種創建和修改jQuery副本的方式。可以用來添加不向外部公開的方法,或者對jQuery的某些方法進行重新定義以提供新功能,或者提供更好的封裝、避免名稱空間沖突。當然,也可以用來開發插件,但Resig強烈建議在開發插件之前,先考慮jQuery UI widget工廠。
值得注意的是,sub函數並不提供真正的隔離,所有方法、數據、調用仍然依靠jQuery本身來支持。
4. 遍歷性能提高
在新版本中.children(),.prev(),.next()幾個常用的遍歷函數性能有了顯著提高。
5. 內部開發系統
John Resig還特別提到了jQuery團隊內部開發系統的兩點改變:一是伺服器端用Node.js替換了老的Java/Rhino系統,使得團隊可以專注於JavaScript環境的新變化;二是所用的代碼優化程序從Google Closure切換到UglifyJS,新工具的壓縮效果非常令人滿意。
使用方法
jQuery可以下載使用,有兩個版本的 jQuery 可供下載
Proction version - 用於實際的網站中,已被精簡和壓縮。
Development version - 用於測試和開發(未壓縮,是可讀的代碼)
jQuery 1.8.0版時壓縮前後的對比
插件機制
jQuery的官方插件是jQuery UI。開發者可以任意擴展jQuery的函數庫或者按照自己的需求開發UI組件。網上已經有數以萬計的jQuery插件,覆蓋各種各樣的需求。例如Ajax輔助、數據表格、動態列表、XML工具、拖曳、cookie處理、彈出層等等。jQuery 的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇,例如ComponentOne Studio for ASP NET Wijmo.
隨著jQuery插件在網站建設過程中的使用率不斷的增加,所以有必要跟進時代步伐開發出一些新的插件/代碼片段,以此來鞏固並提高前端用戶體驗,將用戶體驗提升到一個新的高度。其中包括Flat jQuery Price Slider、Gmaps jQuery Map Plugin 、FormChimp——MailChimp Ajax plugin for jQuery 等。
控制項
jQuery Gantt控制項是一個基於原生HTML5/jQuery,功能豐富的控制項,該控制項真正實現了跨平台,在許多設備和瀏覽器中無縫的運行。
使用項目甘特圖中內置的調度,依賴等功能實現任務分層列表的可視化。
使用資源甘特圖實現一個資源利用視圖。
使用基於API的jQuery或者基於API的MVC可幫您輕松地安裝甘特圖並加快應用速度。
可與諸如KnockOut(KO),jQuery.tmpl等流行的jQuery模式一同使用。
❷ 這就是自動駕駛的大結局
北京時間8月20日,特斯拉召開一次別開生面的技術發布會,AI DAY,與以往的電池日、新車日不同,這次發布會的重點放在目前電動車上最前沿的技術——自動駕駛、神經網路、超級計算機等。
在AI DAY上,特斯拉著重介紹了在人工智慧領域的軟體和硬體進展,尤其在神經網路上的訓練系統,其中最大的看點就是『Dojo超級計算機』。
特斯拉本次推出的人工智慧訓練機Dojo D1晶元,是特斯拉全新自研的超級計算機晶元,該電腦將用於車輛自動駕駛數據的運算和分析,能夠自動地學習和識別標記道路上的行人、動物、坑窪地等數據,將海量的數據匯聚於Dojo,然後通過自動化深度神經網路訓練,以此不斷加強演算法進化,最終實現以純視覺為基礎的完全自動駕駛(FSD),即特斯拉自動駕駛的最終形態。
據悉,目前單個Dojo D1晶元的演算力已經達液答到全球第五。縱觀全世界的超級計算機的排名,前五中除了第五名的Selene是英偉達的之外,前四的都是國家所有,包括第一的日本『富岳』、第二的美國Summit、第三的美國Sier,以及第四的中國『神威太湖』。
其中,目前排名第一的超級計算機是日本的『富岳』,在機器學習應用上的算力超神埋舉頻之後是2.15EFLOPS,默頻是1.95EFLOPS。
值得一提的是,上述前四的超級計算機都是舉國之力研發的結果,而特斯拉只是一家新能源車製造公司,能取得這樣的成就,特斯拉可謂又一次突破了自己的極限。
什麼是『Dojo超級計算機』?
Dojo一詞來源於日語,意思是「道場」,翻譯成中文應該叫做「訓練館」。
特斯拉特地取此名,可以說目的就是專門訓練特斯拉 汽車 的。來自全球超100萬輛特斯拉車輛採集的真實數據將匯聚於此,然後通過Dojo進行深度神經網路訓練,以此幫助特斯拉的Autopilot不斷進化,最終實現以純視覺為基礎的完全自動駕駛(FSD)。
換一個更好理解的方式,就像是AlphaGo專攻圍棋領域一樣,經過人工參與調整和標注的訓練,只需要幾年時間就擊敗了全球圍棋高手,而Dojo可以被看做是為專攻自動駕駛領域的AlphaGo,通過深度學習和分析海量的特斯拉車隊數據,Dojo可以自動模擬開車、自動尋找問題最優解,從而完成自我進化。
重點是「無監督訓練」和「自我進化」,你可以理解為:Dojo最初不會駕駛車輛,但通過極快的速度學習人類開車(影子模式)和模擬開車(特斯拉為其構建了一個虛擬世界供訓練)後,就可以慢慢地在真實世界開車了。
接著隨經驗的積累,演算法的精進,駕駛技術還會越來越嫻熟,最終超過人類的駕駛水平。就像AlphaGo最終擊敗李世石和柯潔一樣。
『Dojo超級計算機』有什麼能力?
今年6月,特斯拉AI高級總監Andrej Karpathy宣稱由特斯拉團隊研發的世界第五代超級電腦Dojo即將問世。今天的AI Day發布會則透露了更多的細節。
Dojo D1計算晶元採用了5760個算力為321TFLOPS的英偉達A100顯卡,組成了720個節點構建的超級計算機,總算力達到了1.8EFLOPS(EFLOPS:每秒千萬億次浮點運算),有10PB的存儲空間,讀寫速度為1.6TBps。
注意,這還是單個Dojo D1的算力,未來特斯拉還會將多個Dojo D1組成『Dojo超級計算機群』,屆時,該超級計算機群的總算力將超過目前世界第一的超級計算機『日本富岳』。
隨著Dojo D1推出,毫不誇張的說,它就是目前世界上最強大的人工學習機器,它使用7nm晶元驅動、將50萬個訓練單元搭建在一起。
在馬斯克的規劃中,『Dojo超級計算機群』目標算力要達到每秒鍾exaFLOP的級別,也就是百億億次浮點運算,是現在的游碧一萬倍,名副其實的直接最尖端的超級計算機。
那麼,Dojo能做什麼呢?主要就是自主深度神經網路訓練。
特斯拉車輛搭載的攝像頭,能夠不間斷地採集真實的道路數據,然後Dojo D1的人工智慧演算法,會自動標記這些數據中的物體(包括常規道路、危險道路和其他意外情況)。
之前的大型AI數據集通常需要手動標記,非常耗時費力,而Dojo將配合無監督學習演算法(Unsupervised Learning,無需人工對訓練數據集進行標注,系統可以自行根據樣本間的統計規律對樣本集進行分析)。
譬如,可以不給任何額外提示的情況下,僅依據一定數量「狗」的圖片特徵,就能將「狗」這個物體識別出來。大幅減少特斯拉對於數據人工標注的工作量,進而幫助其數據訓練效率實現指數級提升。
這些數據還可以包括信號燈、車道線、動物、行人、天氣、馬路邊緣、指示牌、路燈、樁桶、可行車區域、不可行車區域等等,通過8個攝像完成360度環影,以鳥瞰的方式來展示一個4D視圖(三維空間+時間戳)。
不過,特斯拉車輛並不會將每分每秒的視頻數據都發送給Dojo,也不會隨機發送視頻數據,更多的情況是發送一個「案例」(10秒)。比如在Autopilot駕駛時,駕駛員突然介入,改為人工駕駛,Dojo就會分析這個視頻案例,試圖找出駕駛員中斷Autopilot的原因,又或者司機在高速路上突然剎車、堵車時有人插隊、雷達與攝像頭判斷結果不一致、車輛發生事故/險些發生事故等等,將這些具體的案例,交給Dojo來分析處理。
最終,更多的數據通過Dojo的處理,反饋給神經學習系統,實現自動駕駛演算法的迭代,而演算法的迭代,讓Autopilot更加好用,持續反饋更多的數據給Dojo分析,從而實現一個正循環。
目前,特斯拉已經積累了100萬個10秒左右的視頻,並給60億個物體貼上了深度、速度和加速度的標簽。這些數據每天都還在增加,這就需要特斯拉有一個強大的計算機來處理這些龐大的數據,目前這些數據已經達到了驚人的1.5PB。
以特斯拉百萬級的車輛保有量,這個規模的數據收集終端,數據增長速度也是驚人的。這似乎是個天文數字,而特斯拉如果繼續依賴純視覺的自動駕駛方案,不斷提高其可靠性,就需要開發出更強大的超級計算機,以追求更先進的AI演算法。
一家車企為什麼要做超級計算機?
我們前面說到,全世界的超級計算機的排名前五的超級計算機,除了第五名的Selene是英偉達的之外,前四的都是國家擁有的,包括第一的日本『富岳』、美國的Summit和Siera分別位於第二、第三,第四的是中國的『神威太湖』。
這些都是國家級的超級計算機,它們通常是體量巨大、造價高昂的設備,擁有數以萬計的處理器,旨在執行專業性強、計算密集型的任務,可完成極端尺度的宇宙模擬、為葯物反應預測尋找新途徑、發現可用於製造高效有機太陽能電池的新材料等任務,應用於人工智慧、生物醫葯和智慧城市建設等多個領域。
為什麼特斯拉,一個電動車企需要研製一台超級計算機?
其實原因,上面已經有所提及。
目前,全球自動駕駛領域主要分為兩派,即純視覺路線與高精地圖+雷達路線。後者認為,多感測器與攝像頭可以優勢互補,更可依靠高精度地圖與多激光雷達來完成全自動駕駛。而作為純視覺路線領頭者的特斯拉,則堅定的認為,純視覺是唯一正確的出路。
馬斯克主張採用純視覺的自動駕駛方法,就是依靠攝像頭和機器學習來支持其高級駕駛輔助系統和自動駕駛,而摒棄了激光雷達(LiDAR)、毫米波雷達。
馬斯克曾非常自信地說到:「只要人眼能夠完成的事情,視覺感測器也應該能夠完成。其它的激光雷達都是累贅」。
在特斯拉看來,把激光雷達、毫米波雷達砍掉,是因為多感測器融合,會干擾系統的判斷,甚至會造成誤判,因為當不同感測器過來的數據沖突的時候,會延長系統處理和判斷的時間,甚至會出現誤判。
在純視覺自動駕駛方法下想改進這套自動駕駛AI達到足夠的可靠性,自研適應計算需要的超級計算機便極為必要。
特斯拉AI高級總監Andrej Karpathy是計算機視覺和深度學習領域的頂級專家之一,博士畢業於斯坦福AI實驗室,主要研究方向是卷積神經網路結構,自然語言處理,以及其在計算機視覺上的應用。
進入特斯拉之後,主要就是為了攻堅特斯拉自動駕駛的難題,而特斯拉非常堅決地採取純視覺演算法路線,這就為數據處理以及神經網路學習提出了巨大的要求。
Karpathy解釋道,如果想要讓計算機以人類的方式對新環境做出反應,需要一個巨大的數據集,以及超級計算機的處理能力。我們有一個神經網路架構網路和一個1.5 PB的數據集,需要大量的計算。
對我們而言,計算機視覺是使自動駕駛成為可能的基本要素。為了讓其更好地工作,我們需要掌握來自車隊的數據,訓練大量的神經網路,並進行大量實驗。
Karpathy討論了特斯拉人工智慧的視覺組件,他指出,特斯拉在設計其 汽車 的視覺皮層時,是按照眼睛感知生物視覺的方式進行建模的。他還談到了特斯拉的視覺處理策略多年來是如何演變的,以及現在是如何實現的。Karpathy還提到了特斯拉的「HydraNets」,它具有多任務學習能力。
充分利用從整個車隊收集來的數據訓練,從而不斷改善特斯拉的自動駕駛功能(Autopilot),為下一代自動駕駛人工智慧(AI)提供能夠更進一步的自主學習的神經網路。
這里的神經網路可以簡單理解為通過『仿生學』模擬人類大腦皮層的神經元『溝通學習』的方式進行處理數據,用來實現『類似人類』的學習方式。
這也是為什麼這個超算機群取名為Dojo(道場)的原因,在中文裡翻譯為訓練場也非常合適,這個「訓練場」就是專門用來訓練特斯拉 汽車 的自動駕駛能力的。
其實早在2019年的Autonomous Day,馬斯克就提到過Dojo,稱Dojo是能夠利用海量的視頻(級別)數據,做『無人監管』的標注和訓練的超級計算機。
如果認真了解過當年Autonomous Day的朋友,自然會發現,特斯拉推出Dojo超算以及自研晶元,是必然且在規劃中的事,也是特斯拉不得不去做的事。
因為按照特斯拉的邏輯,一輛車上要裝8個攝像機,十秒內就能產生一百萬個視頻。這也難怪,需要依賴超級計算機的運算能力。
換句話說,不是特斯拉想要成為人工智慧巨頭,而是被逼無奈,因為選了純視覺路線,就需要一個超級計算機的算力與之匹配。結果Dojo一出場,就是要成為世界第一。可以說,這也是馬斯克的凡爾賽了吧。
其實關於「視覺演算法與AI的關系」這個問題,馬斯克曾在推特中回復過,大致意思為:『只有解決了真實世界的 AI 問題,才能解決自動駕駛問題……除非擁有很強的 AI 能力以及超強算力,否則根本沒辦法……自動駕駛行業大家都很清楚,無數的邊緣場景只能通過真實世界的視覺 AI 來解決,因為整個世界的道路就是按照人類的認知來建立的……一旦擁有了解決上述問題的 AI 晶元,其他的就只能算是錦上添花』。
確實,毫米波雷達或激光雷達方案雖然有優勢,但是成本更高,而且還有著無法解決的弊端。首先雷達精度、反應速度都不如純視覺方案,而高精地圖則嚴重限制了可使用自動駕駛的范圍。這意味著他們除了需要非常詳細的使用地點地圖外,還需要所有車道及其連接方式、實時交通燈等額外信息。
但特斯拉的純視覺方式不同,特斯拉的自動駕駛依靠8個攝像頭和背後的Dojo超算,原則上我們可以在地球上任何地方(的道路上)使用。
『Dojo超級計算機』的出現意味著什麼?
Dojo的問世,將幫助特斯拉的無人駕駛技術繼續提升一個等級,讓視覺演算法這條路線走的更加深遠,它能幫助訓練電腦去理解道路畫面,通過對視頻信息的採集和大量視頻信息運算處理,達到僅通過視覺圖像便能實現全自動駕駛的目的。
視覺自動駕駛與人類駕駛員的開車方式相似,但最重要的是,計算機更加的可靠。為此,Karpathy也舉了幾個例子:
首先,人類的反應速度太慢,即使是優秀的駕駛員也要250ms(0.25秒)的反應速度,很多人甚至超過460ms(0.46秒),而電腦的反應速度全部低於100ms(0.1秒);其次,人類駕駛員經常在開車時玩手機,而電腦則會全神貫注,不會一會看看微信,一會刷刷抖音;再來,人類駕駛員的視野范圍太窄,並道時如果不回頭,則完全看不到位於後視鏡盲區的來車,而特斯拉擁有8個攝像頭以每秒36幀的速度從車身周圍識別信息,涵蓋360度視野……
通過海量的案例,Dojo將幫助駕駛員更安全的駕駛車輛,包括利用視覺計算機來糾正人類錯誤和不安全的駕駛行為。比如:信號燈警告,系統識別到遠處的紅燈或黃燈,如駕駛員不減速會發出警告;緊急制動場景,系統判斷車輛在障礙物前減速度不足或沒有減速,會自動幫助車輛制動;躲避障礙,系統偵測到周圍有突然出現的動物、行人、車輛、異物等,會自動控制方向盤來進行躲避。
在目前的特斯拉Autopilot中,已經出現過很多因系統失靈而出現的事故,這些可以通過Dojo進行解決,包括不限於:橋下陰影造成的無故剎車;高速跟車時,自動剎車踩得太死;遇到路邊佔用部分車道停放車輛的規避問題;當車輛檢測到前方有行人或者道路變窄的情況時,當駕駛員把油門當做剎車踩下,車輛則不會加速(包括惡意報復 社會 行為)。
總結起來, Dojo的出現,實現了海量數據的『無監督訓練』,大幅度提高神經網路訓練的效率。通過用海量的數據鍛煉它,就能解決各種『邊緣場景』的問題,加快自動駕駛系統的成熟和完善,實現指數級的成長速度。
更關鍵的是,特斯拉對其軟硬體的垂直整合度非常高,不僅不受制於別人,而且能夠以此作為服務,給外界提供深度學習的訓練業務。
在特斯拉的規劃中,全球各地的數據,都會匯集到Dojo超級計算機中心進行處理。當然,這不包括中國的數據,因為中國出台了相關的管理辦法,限制這類數據出境(因此,特斯拉在上海建立了數據中心,所以我們也會期待Dojo也能在中國實現)。
這就是自動駕駛的大結局?
對於自動駕駛的 科技 價值,幾乎全球科學家都達成共識,其擁有廣泛的應用前景,在包括計程車、代駕、共享 汽車 、機器人物流等領域都有巨大潛力。
根據中國信通院《2020年全球自動駕駛戰略與政策觀察》報告顯示,自動駕駛具有巨大的 社會 經濟價值,預計2050年將為美國創造大約3.2至6.3萬億美元的經濟效益,其中 社會 福利和消費者福利預計接近8000億美元。
我國多個地方政府也大力支持自動駕駛技術發展。北京已累計開放四個區縣的自動駕駛測試道路共計200條、699.58公里,開放了亦庄和海淀2個自動駕駛測試區域,面積約140平方公里。同時累計為14家自動駕駛企業87輛車發放一般性道路測試牌照。
深圳市也已經先後公開兩批無人駕駛路測道路;深圳坪山區的L5級別全無人RoboTaxi已商業化試運營超過100天,並承載了國內首批乘客。此外,包括亞馬遜、蘋果、三星等國外 科技 巨頭,以及阿里巴巴、網路、騰訊等國內 科技 巨頭都紛紛加入無人駕駛的賽道,想在這個潛力無限的市場里瓜分一塊蛋糕。
從技術的角度來看,無人駕駛 汽車 是一個復雜的軟硬體結合的智能自動化系統,運用到了自動控制技術、現代感測技術、計算機技術、信息與通信技術以及人工智慧等。從戰略意義的角度來看,自動駕駛移動能力更強,能夠有效改善交通安全、實現節能減排、消除交通擁堵、促進產業轉型。
過去數年,特斯拉一直對外宣傳「全自動駕駛」技術,由此也為人們所詬病。因為事實上,特斯拉的「Autopilot」(自動輔助駕駛)以及「Full Self-Driving」(全自動輔助駕駛)都只是「輔助駕駛」功能,並不是真正意義上的「自動駕駛」功能。
因為這樣的宣傳,導致了不少車主過於相信特斯拉的輔助駕駛功能,因此也導致了很多起令人痛心的安全事故,最近的蔚來也因為NIO Pilot導致的事故登上了熱搜。
可見,截止目前,自動駕駛還是一個理想中的概念,離我們的實際使用還有不少的距離,我們現在能用上路的都是「輔助駕駛」,大家為了自己的人身財產安全一定要牢記這一點,切勿過分相信市面鼓吹的「自動駕駛」功能。
目前,特斯拉已開始向純視覺自動駕駛路線轉變,從上月開始,部分在北美生產的特斯拉車型,已停止安裝雷達感測器,而全新的FSD Beta V9.0(完全自動駕駛測試版)也將在近期更新,而這一切的背後,都離不開Dojo。
Dojo的到來,意味著我們離真正的「自動駕駛」又近了一步,打開了電動車駕駛AI世界的新入口。
對了,這個技術並不遙遠,我們明年可能看到Dojo正式運行。
最後的彩蛋
就在發布會最後,馬斯克開著玩笑帶來了一位Tesla Bot機器人,他表示,如果Dojo的能力能夠如期實現,那麼將它至於機器人的內部,同樣可以100%模擬人類的性能。在未來,可以為人類 社會 釋放更多的勞動力。
馬斯克絕對是一個技術瘋子,改變全球能源布局、改變交通出行方式、改變人類腦機交互方式、游歷太空、 探索 火星等等,單憑一個人的意志推動了整個人類 社會 的 科技 進步。
通過已量產的產品掙錢,但不會斂財,因為掙到的錢馬上用在下一個瘋狂的想法,並努力實現它,如果此時說馬斯克是後喬布斯時代最偉大的 科技 創造者,應該沒有人會反對吧?
(圖/文/攝:皆電 唐科)
❸ struts2.0.11中時間標簽不顯示
struts2.0.11這個版本很不穩定
可以替換到2.1.6版數畢本
替陸世換包包括
xwork
還有以struts的所有包都去掉
替換的新包有
xwork-2.1.2.jar
struts2-core-2.1.6.jar
struts2-dojo-plugin-2.1.6.jar
就可以了
當然時間標簽就不能這么用了
要這樣
頁面引入
<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
頭部加
<sx:head/>
標簽用法<sx:datetimepicker cssStyle="height:20px;width:170px;" cssClass="b3" toggleType="薯悉芹explode" language="zh-cn" name="date" displayFormat="yyyy-MM-dd" ></sx:datetimepicker>
❹ js閉包誰能給我講講
作用一:創建一個獨立的名稱空間。通俗易懂的理解,變數,函數的命名不容易跟其他包沖突。
varmyfun=function(){
alert("Iamglobalmyfun");
}
varbb="bibi";
varnewHello=function(){
varmyFun=function(){
alert("Iaminaclosuredpackage.");
}
varbb="cici";
return{
bb:bb,
myfun:myfun
}
}();
myfun();
alert(bb);
alert(newHello.bb);
newHello.myFun();
能體會出來嗎?
作用二:做面向對象編程時,可以更好的隱藏私有實現,有利於代碼維護,因為javascript中的代碼,基本是靠約定私有實現或私有變數的,閉包就不一樣。
varnewHello1={
_bb:"bibi",
_myFun:function(content){
alert(content);
},
myFun:function(){
this._myFun(
"Iamjusttosupplyouterinterface,"+
"foryourprintingservice"+this._bb
);
}
}
對象中的_開頭的成員代表私有,私有的概念意思是:實現者可能會改變它,但是對外介面
一般是不會改變的。想設計框架或試用框架的時候,
你要隨意改動公用介面別人怎麼用這框架。強悍的dojo框架就有這毛病。
這塊知識,做前端開發的很多人不知道吧?
厲害的前端開發除外,如騰訊、淘寶、網路的前端開發,別人有這能力。
因此工資一般比咋們高。
閑話少扯,上面的對象枯團渣定義有個問題,使用者。
不一定會按照設計者或叫提供者的意圖使用該對象。
newHello1._bb="Ialwayswanttomodifyyourdata,"+
"howcanyoudowhattopreventfrom或改me?";
newHello1.myFun();
上面的調用系列,就會破壞對象的封裝性原則,結果可能就是庫設計者不想要的,
為了防止出現上面的誤用。
varnewHello2=function(){
//這個變數別人不修改源碼肯定該表不了
var_bb="Howcanyoumodifyme?";
var_myFun=function(content){
alert(content);
}
return{
myFun:function(){
沒悄_myFun(_bb+":.");
}
}
}();
newHello2.myFun();
上面代碼只能這樣調用,可以保證你不想讓人動的,肯定動不了。除非修改源碼。
能更好的實現設計意圖。
❺ 如何用Dojo提高Web應用程序設計能力
應用程序錯誤問題:
1.木馬病毒造成常用病毒捆綁應用程序和系統文件,然後安全殺毒軟體把有木馬病毒應用程序和系統文件查殺導致。
2.應用程序組件丟失,應用程序完整的運行需要一些系統文件或者某些ll文件支持,如果應用程序組件不完整也會導致的虛判。
3.系統文件損壞或丟失,盜版系統或Ghost版本系統,首游很容易出現該問題。
4.操作系統自身的問題,操作系統本身也會有bug 。
5.硬體問題,例如內存條壞了或者存在質量問題,或者內存條的金手指的灰塵特別多。
應用程序錯誤解決方法:
1.檢查電腦是否存在病毒,請使用網路衛士進行木馬查殺。
2.系統文件損壞或丟失,盜版系統或Ghost版本系統,很容易出現該問題。建議:使用完整版或正差芹改版系統。
3.安裝的軟體與系統或其它軟體發生沖突,找到發生沖突的軟體,卸載它。如果更新下載補丁不是該軟體的錯誤補丁,也會引起軟體異常,解決辦法:卸載該軟體,重新下載重新安裝試試。順便檢查開機啟動項,把沒必要啟動的啟動項禁止開機啟動。
4.如果檢查上面的都沒問題,可以試試下面的方法。
打開開始菜單→運行→輸入cmd→回車,在命令提示符下輸入下面命令 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回車。
完成後,在輸入下面
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回車。
如果怕輸入錯誤,可以復制這兩條指令,然後在命令提示符後擊滑鼠右鍵,打「粘貼」,回車,耐心等待,直到屏幕滾動停止為止(重啟電腦)。