標籤: USB CONNECTOR

  • 印度政府宣布向Tata Motors採購1萬輛電動車

    印度政府宣布向Tata Motors採購1萬輛電動車

     

    Thomson Reuters報導,印度政府9月29日宣布向Tata Motors Ltd採購1萬輛電動車、未來3到4年將用來分批汰換原有的公務車。Tata Motors將自11月起分兩階段供應電動車。印度政府約有50萬輛公務車。

    英國最大汽車製造商Jaguar Land Rover(Tata Motors子公司)9月7日宣布,2020年起旗下所有新車都將具備電動或油電混合驅動選項。英國跟隨法國以及馬德里、墨西哥城和雅典等城市的抗空汙腳步,7月宣布將自2040年起禁止販售汽油和柴油新車。

    livemint.com 9月30日報導,Tata第一批電動車將在今年11月交送給印度政府旗下合資企業「能源效率服務有限公司(Energy Efficiency Services Limited;EESL)」。

    (本文內容由授權使用。圖片出處:public domain CC0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 塔塔電力擬興建1千座充電站,助印度汰除汽柴油車

    塔塔電力擬興建1千座充電站,助印度汰除汽柴油車

    日經新聞周二報導,印度最大民營電廠塔塔電力(Tata Power)計畫未來五年將於印度首都建造一千座充電站,藉以響應政府2030年禁用汽柴油車的政策。

    塔塔電力目前只有五座充電站在營運,印度全國充電站加總起來也不過100座左右,由此可知印度發展電動車的基礎設施嚴重不足,增加充電站密度勢在必行。

    據塔塔電力執行長Praveer Sinha表示,一千個新充電站都將設置在新德里北部地區,預估將花費10億印度盧比(1,520萬美元),每個充電站有九成服務鉛電池車,一成服務鋰電池車。

    (本文內容由授權使用)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

  • 不看好歐洲純電動車市場,BMW 高層:監管機構想要,但沒有顧客真的需要

    不看好歐洲純電動車市場,BMW 高層:監管機構想要,但沒有顧客真的需要

    電動車已成為多數車商的發展趨勢,然而近日在慕尼黑舉行的 NextGen 活動期間,BMW 執行董事 Klaus Fröhlich 卻語出驚人的表示,他認為電動車轉型被過度吹捧,實際上消費者對這些車輛根本沒有需求。

    考量到 BMW 日前才宣布將加速純電動車發展計畫,Fröhlich 的發言看似大膽,但其實並非沒有道理。據了解,這項發言主要是針對遊說團體 Transport and Environment 日前公開譴責歐洲車商的回應。

    該篇報告 T&E 引述 EEA 的最新排氣數據,指出歐洲在電動車銷售明顯落後中美兩國,主要原因是市場純電動車的選擇和可用性都受侷限,而 T&E 認為,這是因為歐洲車商故意推遲純電動車的銷售計畫,好最大程度提高燃油車的利潤,「在環境方面,車商只會做法律規定他們要做的事情」。

    對這項指控,Fröhlich 表示,他認為 T&E 忽略了最重要的問題:那就是歐洲客戶實際上並不想買純電動車。

    Fröhlich 解釋,與美國人為不同目的駕駛不同車輛的習慣不同,歐洲人通常是「單車家庭」,車庫中只會有一輛車使用,因此他們並不願完全依賴純電動車,不應該拿美國的市場情況來比較。

    除此之外,還有充電基礎設施的普及問題,Fröhlich 認為,柴油引擎至少還有 20 年、汽油引擎至少還有 30 年,即使是俄羅斯、中東、中國中西部地區這些市場,在缺乏基礎建設下,燃油引擎都至少還有 10~15 年時間。

    「純電動車只適用中國、美國加州市場,至於其他地方,有更大電池的混合式動力車應該是更好的選擇。」

    除了基礎設施普及,Fröhlich 也指出,在電池原始材料,純電動車的成本要遠高於燃油或混合動力車,隨著未來市場對電池原料的需求增加,一旦供應鏈無法支持,那麼價格可能只會有增無減。

    Fröhlich 表示,如果政府能提供許多協助,BMW 可生產足以淹沒歐洲的百萬台純電動車,但在他看來,歐洲人並不想買這些東西,「監管機構想要純電動車,但沒有顧客真的需要。」

    (合作媒體:。首圖來源: CC BY 2.0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 人臉檢測和人臉識別原理,微調(Fine-tune)原理

    人臉檢測和人臉識別原理,微調(Fine-tune)原理

    一、MTCNN的原理

      搭建人臉識別系統的第一步是人臉檢測,也就是在圖片中找到人臉的位置。在這個過程中,系統的輸入是一張可能含有人臉的圖片,輸出是人臉位置的矩形框,如下圖所示。一般來說,人臉檢測應該可以正確檢測出圖片中存在的所有人臉,不能用遺漏,也不能有錯檢。  

       

      獲得包含人臉的矩形框后,第二步要做的就是人臉對齊(Face Alignment)。原始圖片中人臉的姿態、位置可能較大的區別,為了之後統一處理,要把人臉“擺正”。為此,需要檢測人臉中的關鍵點(Landmark),如眼睛的位置、鼻子的位置、嘴巴的位置、臉的輪廓點等。根據這些關鍵點可以使用仿射變換將人臉統一校準,以盡量消除姿勢不同帶來的誤差,人臉對齊的過程如下圖所示。

       

      這裏介紹一種基於深度卷積神經網絡的人臉檢測和人臉對齊方法—-MTCNN,它是基於卷積神經網絡的一種高精度的實時人臉檢測和對齊技術。MT是英文單詞Multi-task的縮寫,意思就是這種方法可以同時完成人臉檢測的人臉對齊兩項任務。相比於傳統方法,MTCNN的性能更好,可以更精確的定位人臉,此外,MTCNN也可以做到實時的檢測。

      MTCNN由三個神經網絡組成,分別是P-Net、R-Net、O-Net。在使用這些網絡之前,首先要將原始圖片縮放到不同尺度,形成一個“圖像金字塔”,如下圖所示。

       

      接着會對每個尺度的圖片通過神經網絡計算一遍。這樣做的原因在於:原始圖片中的人臉存在不同的尺度,如有的人臉比較大,有的人臉比較小。對於比較小的人臉,可以在放大后的圖片上檢測;對於比較大的人臉,可以在縮小后的圖片上進行檢測。這樣,就可以在統一的尺度下檢測人臉了。

      現在再來討論第一個網絡P-Net的結構,如下圖所示

       

      P-Net的輸入是一個寬和高皆為12像素,同時是3通道的RGB圖像,該網絡要判斷這個12×12的圖像中是否含有人臉,並且給出人臉框和關鍵點的位置。因此對應的輸出應該由3部分組成:

      (1)第一個部分要判斷該圖像是否是人臉(上圖中的face classification),輸出向量的形狀為1x1x2,也就是兩個值,分別為該圖像是人臉的概率,以及該圖像不是人臉的概率。這兩個值加起來應該嚴格等1。之所以使用兩個值來表示,是為了方便定義交叉熵損失。
      (2)第二個部分給出框的精確位置(上圖中的bounding box regression),一般稱之為框回歸。P-Net輸入的12×12的圖像塊可能並不是完美的人臉框的位置,如有的時候人臉並不正好為方形,有的時候12×12的圖像塊可能偏左或偏右,因此需要輸出當前框位置相對於完美的人臉框位置的偏移。這個偏移由四個變量組成。一般地,對於圖像中的框,可以用四個數來表示它的位置:框左上角的橫坐標、框左上角的縱坐標、框的寬度、框的高度。因此,框回歸輸出的值是:框左上角的橫坐標的相對偏移、框左上角的縱坐標的相對偏移、框的寬度的誤差、框的 高度的誤差。輸出向量的形狀就是上圖中的1x1x4。
      (3)第三個部分給出人臉的5個關鍵點的位置。5個關鍵點分別為:左眼的位置、右眼的位置、鼻子的位置、左嘴角的位置、右嘴角的位置。每個關鍵點又需要橫坐標和縱坐標來表示,因此輸出一共是10維(即1x1x10)

      上面的介紹大致就是P-Net的結構了。在實際計算中,通過P-Net中第一層卷積的移動,會對圖像中每一個12×12的區域做一次人臉檢測,得到的結構如下圖所示:

       

      圖中框的大小各有不同,除了框回歸的影響外,主要是因為將圖片金字塔的各個尺度都使用P-Net計算了一遍,因此形成了大小不同的人臉框。P-Net的結果還是比較粗糙的,所以接下來又使用R-Net進一步調優。R-Net的網絡結構如下圖所示。

       

      這個結構與之前的P-Net非常類似,P-Net的輸入是12x12x3的圖像,R-Net是24x24x3的圖像,也就是說,R-Net判斷24x24x3的圖像中是否含有人臉,以及預測關鍵點的位置。R-Net的輸出和P-Net完全一樣,同樣有人臉判別、框回歸、關鍵點位置預測三部分組成。

      在實際應用中,對每個P-Net輸出可能為人臉的區域都放縮到24×24的大小,在輸入到R-Net中,進行進一步的判定。得到的結果如下圖所示:

       

      顯然R-Net消除了P-Net中很多誤判的情況。

      進一步把所有得到的區域縮放成48×48的大小,輸入到最後的O-Net中,O-Net的結構同樣與P-Net類似,不同點在於它的輸入是48x48x3的圖像,網絡的通道數和層數也更多了。O-Net的網絡的結構如下圖所示:

       

      檢測結果如下圖所示:

       

      從P-Net到R-Net,最後再到O-Net,網絡輸入的圖片越來越大,卷積層的通道數越來越多,內部的層數也越來越多,因此它們識別人臉的準確率應該是越來越高的。同時,P-Net的運行速度是最快的,R-Net的速度其次,O-Net的運行速度最慢。之所以要使用三個網絡,是因為如果一開始直接對圖中的每個區域使用O-Net,速度會非常慢慢。實際上P-Net先做了一遍過濾,將過濾后的結果再交給R-Net進行過濾,最後將過濾后的結果交給效果最好但速度較慢的O-Net進行判別。這樣在每一步都提前減少了需要判別的數量,有效降低了處理時間。

      最後介紹MTCNN的損失定義和訓練過程。MTCNN中每個網絡都有三部分輸出,因此損失也由三部分組成。針對人臉判別部分,直接使用交叉熵損失,針對框回歸和關鍵點判定,直接使用L2損失。最後這三部分損失各自乘以自身的權重再加起來,就形成最後的總損失了。在訓練P-Net和R-Net時,更關心框位置的準確性,而較少關注關鍵點判定的損失,因此關鍵點判定損失的權重很小。對於O-Net,關鍵點判定損失的權重較大。

    二、使用深度卷積網絡提取特徵

      經過人臉檢測和人臉對齊兩個步驟,就獲得了包含人臉的區域圖像,接下來就要進行人臉識別了。這一步一般是使用深度卷積網絡,將輸入的人臉圖像轉換為一個向量的表示,也就是所謂的“特徵”。

      如何針對人臉來提取特徵?可以先來回憶VGG16的網絡結構(見),輸入神經網絡的是圖像,經過一系列卷積計算后,全連接分類得到類別概率。

      在通常的圖像應用中,可以去掉全連接層,使用卷積層的最後一層當作圖像的“特徵”。但如果對人臉識別問題同樣採用這種方法,即使用卷積層最後一層做為人臉的“向量表示”,效果其實是不好的。這其中的原因和改進方法是什麼?在後面會談到,這裏先談談希望這種人臉的“向量表示”應該具有哪些性質。

      在理想的狀況下,希望“向量表示”之間的距離可以直接反映人臉的相似度

      對於同一個人的兩張人臉圖像,對應的向量之間的歐幾里得距離應該比較小。對於不同人的兩張人臉圖像,對應的向量之間的歐幾里得距離應該比較大。

      例如,設人臉圖像為$x_{1}$,$x_{2}$,對應的特徵為$f(x_{1})$,$f(x_{2})$,當$x_{1}$,$x_{2}$對應是同一個人的人臉時,$f(x_{1})$,$f(x_{2})$的距離$\left \| f(x_{1}),f(x_{2}) \right \|$2應該很小,而當$x_{1}$,$x_{2}$是不同人的人臉時,$f(x_{1})$,$f(x_{2})$的距離$\left \| f(x_{1}),f(x_{2}) \right \|$2應該很大。

      在原始的CNN模型中,使用的是Softmax損失。Softmax是類別間的損失,對於人臉來說,每一類就是一個人。儘管使用Softmax損失可以區別出每個人,但其本質上沒有對每一類的向量表示之間的距離做出要求。

      舉個例子,使用CNN對MNIST進行分類,設計一個特殊的卷積網絡,讓其最後一層的向量變為2維,此時可以畫出每一類對應的2維向量(圖中一種顏色對應一種類別),如下圖所示:

       

      上圖是我們直接使用softmax訓練得到的結果,它就不符合我們希望特徵具有的特點:

      (1)我們希望同一類對應的向量表示盡可能接近。但這裏同一類(如紫色),可能具有很大的類間距離;
      (2)我們希望不同類對應的向量應該盡可能遠。但在圖中靠中心的位置,各個類別的距離都很近;

      對於人臉圖像同樣會出現類似的情況,對此,有很改進方法。這裏介紹其中兩種:一種是三元組損失函數(Triplet Loss),一種是中心損失函數。 

    三、三元組損失的定義

      三元組損失函數的原理:既然目標是特徵之間的距離應該具備某些性質,那麼我們就圍繞這個距離來設計損失。具體的,我們每次都在訓練數據中抽出三張人臉圖像,第一張圖像記為$x_{i}^{a}$,第二張圖像記為$x_{i}^{p}$,第三張圖像記為$x_{i}^{n}$。在這樣的一個“三元組”中,$x_{i}^{a}$和$x_{i}^{p}$對應的是同一個人的圖像,而$x_{i}^{n}$是另外一個不同的人的人臉圖像。因此,距離$\left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}$應該較小,而距離$\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}$應該較大。嚴格來說,三元組損失要求下面的式子成立:

       $\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}+\alpha <\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}$

      然後計算相同人臉之間與不同人臉之間距離的平方

       $\left [ \left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}^{2}+\alpha -\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}^{2} \right ]_{+}$

      上式表達相同人臉間的距離平方至少要比不同人臉間的距離平方小α(取平方主要是為了方便求導),據此,上式實際上就是相當於一個損失函數。這樣的話,當三元組的距離滿足 $\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}+\alpha <\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}$時,不產生任何損失,此時$L_{i}=0$。當距離不滿足上述等式時,就會有值為$\left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}^{2}+\alpha -\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}^{2}$的損失。此外,在訓練時會固定$\left \| f(x) \right \|_{2}=1$,以保證特徵不會無限地“遠離”。

      三元組損失直接對距離進行優化,因此可以解決人臉的特徵表示問題。但是在訓練過程中,三元組的選擇非常地有技巧性。如果每次都是隨機選擇三元組,雖然模型可以正確的收斂,但是並不能達到最好的性能。如果加入”難例挖掘”,即每次都選擇最難分辨率的三元組進行訓練,模型又往往不能正確的收斂。對此,又提出每次都選擇那些“半難”(Semi-hard)的數據進行訓練,讓模型在可以收斂的同時也保持良好的性能。此外,使用三元組損失訓練人臉模型通常還需要非常大的人臉數據集,才能取得較好的效果。

    四、中心損失的定義

      與三元組損失不同,中心損失(Center Loss)不直接對距離進行優化,它保留了原有的分類模型,但又為每個類(在人臉模型中,一個類就對應一個人)指定了一個類別中心。同一類的圖像對應的特徵都應該盡量靠近自己的類別中心,不同類的類別中心盡量遠離。與三元組損失函數相比,使用中心損失訓練人臉模型不需要使用特別的採樣方法,而且利用較少的圖像就可以達到與單元組損失相似的效果。下面我們一起來學習中心損失的定義:

       還是設輸入的人臉圖像為$x_{i}$,該人臉對應的類別為$y_{i}$,對每個類別都規定一個類別中心,記作$c_{yi}$。希望每個人臉圖像對應的特徵$f(x_{i})$都盡可能接近其中心$c_{yi}$。因此定義中心損失為:

        $L_{i}=\frac{1}{2}\left \| f(x_{i})-c_{yi}\right \|_{2}^{2}$

      多張圖像的中心損失就是將它們的值加在一起:

       $L_{center}=\sum\limits_{i}L_i$

      這是一個非常簡單的定義。不過還有一個問題沒有解決,那就是如何確定每個類別的中心$c_{yi}$呢?從理論上來說,類別$y_{i}$的最佳中心應該是它對應的所有圖片的特徵的平均值。但如果採取這樣的定義,那麼在每一次梯度下降時,都要對所有圖片計算一次$c_{yi}$,計算複雜度就太高了。針對這種情況,不妨近似一處理下,在初始階段,先隨機確定$c_{yi}$,接着在每個batch內,使用$L_i=\|f(x_i)-c_{yi}\|_2^2$對當前batch內的$c_{yi}$ 也計算梯度,並使用該梯度更新$c_{yi}$ 。此外,不能只使用中心損失來訓練分類模型,還需要加入Softmax損失,也就是說,最終的損失由兩部分構成,即$L = L_{softmax}+\lambda L_{center}$,其中$\lambda $是一個超參數。

      最後來總結使用中心損失來訓練人臉模型的過程。首先隨機初始化各个中心$c_{yi}$,接着不斷地取出batch進行訓練,在每個batch中,使用總的損失$L$,除了使用神經網絡模型的參數對模型進行更新外,也對$c_{yi}$進行計算梯度,並更新中心的位置。

      中心損失可以讓訓練處的特徵具有“內聚性”。還是以MNIST的例子來說,在未加入中心損失時,訓練的結果不具有內聚性。再加入中心損失后,得到的特徵如下圖所示。 

       

    從圖中可以看出,當中心損失的權重λ越大時,生成的特徵就會具有越明顯的“內聚性” 。

    五、使用特徵設計應用

    當提取出特徵后,剩下的問題就非常簡單了。因為這種特徵已經具有了相同人對應的向量的距離小,不同人對應的向量距離大的特點,接下來,一般的應用有以下幾類:

    • 人臉驗證(Face Identification)。就是檢測A、B是否屬於同一個人。只需要計算向量之間的距離,設定合適的報警閾值(threshold)即可。
    • 人臉識別(Face Recognition)。這個應用是最多的,給定一張圖片,檢測數據庫中與之最相似的人臉。顯然可以被轉換為一個求距離的最近鄰問題。
    • 人臉聚類(Face Clustering)。在數據庫中對人臉進行聚類,直接用K-means即可。

     

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

  • Java虛擬機詳解(十)——類加載過程

    Java虛擬機詳解(十)——類加載過程

      在上一篇文章中,我們詳細的介紹了Java,那麼這些Class文件是如何被加載到內存,由虛擬機來直接使用的呢?這就是本篇博客將要介紹的——類加載過程。

    1、類的生命周期

      類從被加載到虛擬機內存開始,到卸載出內存為止,其聲明周期流程如下:

      

      上圖中紅色的5個部分(加載、驗證、準備、初始化、卸載)順序是確定的,也就是說,類的加載過程必須按照這種順序按部就班的開始。這裏的“開始”不是按部就班的“進行”或者“完成”,因為這些階段通常是互相交叉混合的進行的,通常會在一個階段執行過程中調用另一個階段。

    2、加載

      “加載”階段是“類加載”生命周期的第一個階段。在加載階段,虛擬機要完成下面三件事:

      ①、通過一個類的全限定名來獲取定義此類的二進制字節流。

      ②、將這個字節流所代表的靜態存儲結構轉化為方法區的運行時數據結構。

      ③、在Java堆中生成一個代表這個類的java.lang.Class對象,作為方法區這些數據的訪問入口。

      PS:類的全限定名可以理解為這個類存放的絕對路徑。方法區是JDK1.7以前定義的運行時數據區,而在JDK1.8以後改為元數據區(Metaspace),主要用於存放被Java虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。詳情可以參考這邊該系列的第二篇文章——。

      另外,我們看第一點——通過類的權限定名來獲取定義此類的二進制流,這裏並沒有明確指明要從哪裡獲取以及怎樣獲取,也就是說並沒有明確規定一定要我們從一個 Class 文件中獲取。基於此,在Java的發展過程中,充滿創造力的開發人員在這個舞台上玩出了各種花樣:

      1、從 ZIP 包中讀取。這稱為後面的 JAR、EAR、WAR 格式的基礎。

      2、從網絡中獲取。比較典型的應用就是 Applet。

      3、運行時計算生成。這就是動態代理技術。

      4、由其它文件生成。比如 JSP 應用。

      5、從數據庫中讀取。

      加載階段完成后,虛擬機外部的二進制字節流就按照虛擬機所需的格式存儲在方法區中,然後在Java堆中實例化一個 java.lang.Class 類的對象,這個對象將作為程序訪問方法區中這些類型數據的外部接口。

      注意,加載階段與連接階段的部分內容(如一部分字節碼文件的格式校驗)是交叉進行的,加載階段尚未完成,連接階段可能已經開始了。

    3、驗證

      驗證是連接階段的第一步,作用是為了確保 Class 文件的字節流中包含的信息符合當前虛擬機的要求,並且不會危害虛擬機自身的安全。

      我們說Java語言本身是相對安全,因為編譯器的存在,純粹的Java代碼要訪問數組邊界外的數據、跳轉到不存在的代碼行之類的,是要被編譯器拒絕的。但是前面我們也說過,Class 文件不一定非要從Java源碼編譯過來,可以使用任何途徑,包括你很牛逼,直接用十六進制編輯器來編寫 Class 文件。

      所以,如果虛擬機不檢查輸入的字節流,將會載入有害的字節流而導致系統崩潰。但是虛擬機規範對於檢查哪些方面,何時檢查,怎麼檢查都沒有明確的規定,不同的虛擬機實現方式可能都會有所不同,但是大致都會完成下面四個方面的檢查。

    ①、文件格式驗證

      校驗字節流是否符合Class文件格式的規範,並且能夠被當前版本的虛擬機處理。

      一、是否以魔數 0xCAFEBABE 開頭。

      二、主、次版本號是否是當前虛擬機處理範圍之內。

      三、常量池的常量中是否有不被支持的常量類型(檢查常量tag標誌)

      四、指向常量的各種索引值中是否有指向不存在的常量或不符合類型的常量。

      五、CONSTANT_Utf8_info 型的常量中是否有不符合 UTF8 編碼的數據。

      六、Class 文件中各個部分及文件本身是否有被刪除的或附加的其他信息。

      以上是一部分校驗內容,當然遠不止這些。經過這些校驗后,字節流才會進入內存的方法區中存儲,接下來後面的三個階段校驗都是基於方法區的存儲結構進行的。

    ②、元數據驗證

      第二個階段主要是對字節碼描述的信息進行語義分析,以保證其描述的信息符合Java語言規範要求。

      一、這個類是否有父類(除了java.lang.Object 類之外,所有的類都應當有父類)。

      二、這個類的父類是否繼承了不允許被繼承的類(被final修飾的類)。

      三、如果這個類不是抽象類,是否實現了其父類或接口之中要求實現的所有普通方法。

      四、類中的字段、方法是否與父類產生了矛盾(例如覆蓋了父類的final字段、或者出現不符合規則的重載)

    ③、字節碼驗證

      第三個階段字節碼驗證是整個驗證階段中最複雜的,主要是進行數據流和控制流分析。該階段將對類的方法進行分析,保證被校驗的方法在運行時不會做出危害虛擬機安全的行為。

      一、保證任意時刻操作數棧中的數據類型與指令代碼序列都能配合工作。例如不會出現在操作數棧中放置了一個 int 類型的數據,使用時卻按照 long 類型來加載到本地變量表中。

      二、保證跳轉指令不會跳轉到方法體以外的字節碼指令中。

      三、保證方法體中的類型轉換是有效的。比如把一個子類對象賦值給父類數據類型,這是安全的。但是把父類對象賦值給子類數據類型,甚至賦值給完全不相干的類型,這就是不合法的。

    ④、符號引用驗證

      符號引用驗證主要是對類自身以外(常量池中的各種符號引用)的信息進行匹配性的校驗,通常需要校驗如下內容:

      一、符號引用中通過字符串描述的全限定名是否能夠找到相應的類。

      二、在指定類中是否存在符合方法的字段描述符及簡單名稱所描述的方法和字段。

      三、符號引用中的類、字段和方法的訪問性(private、protected、public、default)是否可以被當前類訪問。

    4、準備

      準備階段是正式為類變量分配內存並設置類變量初始值的階段,這些內存是在方法區中進行分配。

      注意:

      一、上面說的是類變量,也就是被 static 修飾的變量,不包括實例變量。實例變量會在對象實例化時隨着對象一起分配在堆中。

      二、初始值,指的是一些數據類型的默認值。基本的數據類型初始值如下(引用類型的初始值為null):

      

     

       比如,定義 public static int value = 123 。那麼在準備階段過後,value 的值是 0 而不是 123,把 value 賦值為123 是在程序被編譯后,存放在類的構造器方法之中,是在初始化階段才會被執行。但是有一種特殊情況,通過final 修飾的屬性,比如 定義 public final static int value = 123,那麼在準備階段過後,value 就被賦值為123了。

    5、解析

      解析階段是虛擬機將常量池中的符號引用替換為直接引用的過程。

      符號引用(Symbolic References):符號引用以一組符號來描述所引用的目標,符號可以是任何形式的字面量,只要使用時能無歧義的定位到目標即可。符號引用與虛擬機實現的內存布局無關,引用的目標不一定已經加載到內存中。

      直接引用(Direct References):直接引用可以是直接指向目標的指針、相對偏移量或是一個能間接定位到目標的句柄。直接引用是與虛擬機實現內存布局相關的,同一個符號引用在不同虛擬機實例上翻譯出來的直接引用一般不會相同。如果有了直接引用,那麼引用的目標必定已經在內存中存在。

      解析動作主要針對類或接口、字段、類方法、接口方法四類符號引用,分別對應於常量池的 CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_info、CONSTANTS_InterfaceMethodref_info四種類型常量。

    6、初始化

       初始化階段是類加載階段的最後一步,前面過程中,除第一個加載階段可以通過用戶自定義類加載器參与之外,其餘過程都是完全由虛擬機主導和控制。而到了初始化階段,則開始真正執行類中定義的Java程序代碼(或者說是字節碼)。

      在前面介紹的準備階段中,類變量已經被賦值過初始值了,而初始化階段,則根據程序員的編碼去初始化變量和資源。

      換句話來說,初始化階段是執行類構造器<clinit>() 方法的過程

      ①、<clinit>() 方法 是由編譯器自動收集類中的所有類變量的賦值動作和靜態語句塊(static{})中的語句合併產生的,編譯器收集的順序是由語句在源文件中出現的順序所決定的,靜態語句塊中只能訪問到定義在靜態語句塊之前的變量,定義在它之後的變量,在前面的靜態語句塊中可以賦值,但是不能訪問。

      比如如下代碼會報錯:

      

     

       但是你把第 14 行代碼放到 static 靜態代碼塊的上面就不會報錯了。或者不改變代碼順序,將第 11 行代碼移除,也不會報錯。

      ②、<clinit>() 方法與類的構造函數(或者說是實例構造器<init>()方法)不同,它不需要显示的調用父類構造器,虛擬機會保證在子類的<init>()方法執行之前,父類的<init>()方法已經執行完畢。因此虛擬機中第一個被執行的<init>()方法的類肯定是 java.lang.Object。

      ③、由於父類的<clinit>() 方法先執行,所以父類中定義的靜態語句塊要優先於子類的變量賦值操作。

      ④、<clinit>() 方法對於接口來說並不是必須的,如果一個類中沒有靜態語句塊,也沒有對變量的賦值操作,那麼編譯器可以不為這個類生成<clinit>() 方法。

      ⑤、接口中不能使用靜態語句塊,但仍然有變量初始化的賦值操作,因此接口與類一樣都會生成<clinit>() 方法。但接口與類不同的是,執行接口中的<clinit>() 方法不需要先執行父接口的<clinit>() 方法。只有當父接口中定義的變量被使用時,父接口才會被初始化。

      ⑥、接口的實現類在初始化時也一樣不會執行接口的<clinit>() 方法。

      ⑦、虛擬機會保證一個類的<clinit>() 方法在多線程環境中被正確的加鎖和同步。如果多個線程同時去初始化一個類,那麼只會有一個線程去執行這個類的<clinit>() 方法,其他的線程都需要阻塞等待,直到活動線程執行<clinit>() 方法完畢。如果在一個類的<clinit>() 方法中有很耗時的操作,那麼可能造成多個進程的阻塞。

      比如對於如下代碼:

    package com.yb.carton.controller;
    
    /**
     * Create by YSOcean
     */
    public class ClassLoadInitTest {
    
    
        static class Hello{
            static {
                if(true){
                    System.out.println(Thread.currentThread().getName() + "init");
                    while(true){}
                }
            }
        }
    
        public static void main(String[] args) {
            new Thread(()->{
                System.out.println(Thread.currentThread().getName()+"start");
                Hello h1 = new Hello();
                System.out.println(Thread.currentThread().getName()+"run over");
            }).start();
    
    
            new Thread(()->{
                System.out.println(Thread.currentThread().getName()+"start");
                Hello h2 = new Hello();
                System.out.println(Thread.currentThread().getName()+"run over");
            }).start();
        }
    
    }

    View Code

      運行結果如下:

      

     

       線程1搶到了執行<clinit>() 方法,但是該方法是一個死循環,線程2將一直阻塞等待。

      知道了類的初始化過程,那麼類的初始化何時被觸發呢?JVM大概規定了如下幾種情況:

      ①、當虛擬機啟動時,初始化用戶指定的類。

      ②、當遇到用以新建目標類實例的 new 指令時,初始化 new 指定的目標類。

      ③、當遇到調用靜態方法的指令時,初始化該靜態方法所在的類。

      ④、當遇到訪問靜態字段的指令時,初始化該靜態字段所在的類。

      ⑤、子類的初始化會觸發父類的初始化。

      ⑥、如果一個接口定義了 default 方法,那麼直接實現或間接實現該接口的類的初始化,會觸發該接口的初始化。

      ⑦、使用反射 API 對某個類進行反射調用時,會初始化這個類。

      ⑧、當初次調用 MethodHandle 實例時,初始化該 MethodHandle 指向的方法所在的類。

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • YAMAHA 與 Gogoro 合作首款電動速克達 EC-05 於 8 月上市,售價 99,800 元

    YAMAHA 與 Gogoro 合作首款電動速克達 EC-05 於 8 月上市,售價 99,800 元

    台灣山葉(YAMAHA)和 Gogoro 在 2018 年宣布展開合作之後,不少消費者都好奇兩家公司會擦出什麼樣的火花。YAMAHA 終於在 6 月 27 日正式發表電動速克達 EC-05,也是雙方合作的第一款機車。

    EC-05 採用 Gogoro 市售車種的平台架構,搭配 YAMAHA 的原創設計,未來也會掛上 YAMAHA 的品牌。EC-05 會以換電為動力來源,支援 Gogoro 旗下的換電站 GoStation,不過車主在購車後需要另行和 Gogoro 簽約購買換電服務。新款的電動速克達由 Gogoro 負責製造,並透過 YAMAHA 的通路進行銷售。

    EC-05 的動力系統是 G2 鋁合金水冷永磁同步馬達(S-Version),配合 MOSFET 水冷馬達控制器。安全極速達到時速 90 公里,靜止加速到時速 50 公里僅需 3.9 秒。空車重量為 106 公斤,加上電池則為 126 公斤,擁有 25L 的置物空間。EC-05 可以連結智慧型手機和 Apple Watch,並使用 NFC 和藍牙進行連結。

    EC-05 的電池位於車身當中,座墊底層結構、置物箱的開口部位與收納空間都和 Gogoro 現有車種相同,不過重塑車身線條的設計風格。里程表則根據 Gogoro 原有的元件進行調整,略為提高並向前方移動,減少騎乘者所需的視線移動。坐墊結構與材質沿用 Gogoro 的現行車種,不過座墊後方略為墊高,提供加速時的止滑和支撐。

    EC-05 的電池位於車身內部,擁有 25L 的置物空間。

    EC-05 的里程表和 Gogoro 的車種類似,不過略為提高並向前方移動。

    EC-05 的頭燈。

    EC-05 的尾燈。

    YAMAHA 表示,EC-05 能夠幫助擴展台灣市場的產品線,不僅回應多樣化顧客的需求,也向電動車領域跨出一步。YAMAHA 指出 EC-05 將為 YAMAHA 未來的電動機車家族打下基礎,似乎暗示未來會推出更多與 Gogoro 合作的車款。YAMAHA 台灣總經理小川真司表示,YAMAHA 日本母公司與其他大廠合作的機車聯盟目前只限於日本國內的市場,因此並不會影響台灣子公司和 Gogoro 的合作。

    小川真司認為雖然 EC-05 內部與 Gogoro 的車種相同,但 YAMAHA 的風格與 Gogoro 不同,而且雙方的消費族群也不一樣,可以給不同生活方式的族群不同的選擇。此外,YAMAHA 在台灣市場已經深耕多年,有更多的經銷商夥伴,無論是銷售或保養都能更貼近消費者。YAMAHA 對 EC-05 頗具信心,喊出了一年 2 萬台的銷售目標。

    EC-05 提供藍灰色、深黑色、深藍灰色和白銀色 4 種顏色讓消費者選擇,定價為台幣 99,800 元,補助最多的桃園市汰換二行程機車換購電動機車補助 33,000 元,因此最低台幣 66,800 元起。預計將在 7 月 1 日開放預購,8 月 1 日正式上市。YAMAHA 將在台北、台中和高雄展開 EC-05 的巡迴賞車活動,活動期間參與的消費者將有機會抽中電動速克達 EC-05。

    EC-05 共推出藍灰色、深黑色、深藍灰色和白銀色四款顏色。

    (合作媒體:。圖片來源:)

    延伸閱讀:

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

  • 搶攻 EV 需求,三菱化學傳倍增美國鋰電池關鍵材料產能

    搶攻 EV 需求,三菱化學傳倍增美國鋰電池關鍵材料產能

    日刊工業新聞 3 日報導,為了搶攻電動車(EV)需求,三菱化學(Mitsubishi Chemical)將擴增鋰離子電池關鍵材料「電解液」產能,計畫於 2019 年度內(2020 年 3 月底前)將美國工廠(位於田納西州曼非斯)電解液年產能提高至 2 萬噸、將達現行的 2 倍水準。

    三菱化學計畫於 2020 年度結束前(2021 年 3 月底前)將電解液全球年產能提高至 8.5 萬噸、將較 2017 年度大增 95%,且計畫將另一項鋰電池關鍵材料「負極材」全球年產能提高至 2.9 萬噸(將較 2017 年度增加 61%),目標在 2020 年度將電池材料等新能源部門營收提高至 1,000 億日圓、2025 年度進一步倍增至 2,000 億日圓的規模。

    三菱化學 2018 年 12 月 26 日宣布,日本國內外電動車、插電式油電混合車(PHV)、油電混合車(HV)市場呈現急速擴大,因此將擴增日本「電解液」產能,計畫將四日市事業所的電解液年產能自現行的 1.1 萬噸大幅擴產約 5 成至 1.6 萬噸。

    日韓企業紛紛擴增鋰離子電池關鍵材料產能

    旭化成(Asahi Kasei)3 月 14 日宣布,因鋰離子電池以電動車等車用需求為中心呈現急速增長,故決議投資 300 億日圓對位於日本滋賀縣守山市的守山製造所、以及位於北卡羅萊納州的美國工廠進行增產投資,增產鋰離子電池關鍵材料「分隔膜」,上述增產工程預計於 2021 年度上半年開始商轉,預估 2021 年度旭化成分隔膜全球年產能將擴增至約 15.5 億平方公尺、將較 2018 年度末提高 1 倍。

    住友化學(Sumitomo Chemical)日前也傳出將階段性提高南韓工廠產能,目標在 2021 年度將分隔膜總年產能(合併日本工廠產能計算)提高至 6 億平方公尺、將達現行的近 2 倍水準。

    全球第 2 大鋰離子電池關鍵材料「分隔膜」廠商南韓 SK Innovation 5 月 27 日表示,計畫在 2025 年結束前將分隔膜產能提高至現行的 5 倍,SK Innovation 社長金俊 27 日在首爾舉行的記者會上表示,「目標藉由大規模增產、搶當全球龍頭」。在全球分隔膜市場上,日本旭化成市佔約 2 成、位居首位,SK Innovation 市佔率超過 1 成居次。

    日本民間調查機構矢野經濟研究所公布調查報告指出,因中國自 2019 年起開始實施新能源車規範,加上 2019-2020 年期間日歐車廠將進行車輛電動化,提振車用鋰離子電池材料需求今後將持續擴大,預估 2020 年全球 4 大關鍵材料(正極材、負極材、電解液和分隔膜)市場規模(廠商出貨金額)將擴增至 281.46 億美元、將較 2017 年暴增 9 成(增加 91.3%)。

    (本文內容由 授權使用。首圖來源:)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 中國AI獨角獸完成全球競賽三連冠偉業:孫劍帶隊,曠視再刷榜

    中國AI獨角獸完成全球競賽三連冠偉業:孫劍帶隊,曠視再刷榜

      邊策 郭一璞 發自 凹非寺
      量子位 報道 公眾號 QbitAI

      全球 AI 競賽再奪 3 項世界第一,實現 COCO 重頭戲“物體檢測”三連冠。

      新歷史、新紀錄,榮耀屬於中國公司,展示的統治力堪比乒乓球。

      這就是 AI 獨角獸曠視科技,剛剛從全球 AI 頂會 ICCV 2019 傳來的捷報。

      而且 IPO 上市當前,無疑是既有實力的繼續展示。

      全球 AI 競賽再奪 3 項第一

      ICCV,國際計算機視覺大會,英文全稱 International Conference on Computer Vision。

      被譽為計算機視覺領域三大頂級會議之一,與 CVPR 和 ECCV 並列。

      ICCV 兩年舉辦一次,今年 10 月 27 日在韓國首爾開幕。

      不過剛剛開幕,中國力量就捷報頻傳,繼續展現在全球 AI 研發領域的潛力和實力。

      特別是在本屆 ICCV 的 COCO 挑戰賽上,曠視再度問鼎,拿下 COCO 物體檢測(Detection)、人體關鍵點(Keypoint)和全景分割(Panoptic)3 項第一。

      繼 2017、2018 年後再度奪冠,更是在最重要的“物體檢測”完成三連冠偉業,自 2015 年 COCO 開賽以來,前無古人,創下新紀錄。

      此外,曠視還獲得今年新設立的 COCO+Mapillary 挑戰賽的最佳論文獎(Best Paper Award),原因是“最具創新性的算法”。

      COCO 是 ICCV 2019 的重頭戲,也是 AI 視覺領域最具影響力的通用物體檢測挑戰賽。

      今年的 COCO 挑戰賽與往年不同,加入了新的規則:

    首先、參加者必須提交一份技術報告,該報告將替代先前要求的簡短描述。只有與報告一起提交的材料才會被考慮參賽,並被放入 COCO 排行榜中。

    其次,今年的每個挑戰賽都將設立兩個不同的獎項:最佳結果獎和最具創新獎。最具創新獎根據根據參賽作品的創新而非最佳成績來評定,最終由 COCO 獎項委員會決定,獲獎團隊將受邀參加 Workshop。

    最後,今年的大會針對所有挑戰提供最具創新性和成功解決方案的最佳論文獎。獲獎者將由研討會組委會確定。

      物體檢測任務是讓算法輸出邊界框輸出或實例分割,自動駕駛、醫療影像識別中都會用到。另外在 2019 年的挑戰賽中,只有具有目標分割輸出的檢測任務會被重點介紹。

      COCO 全景分割任務目的是生成豐富而完整的連貫場景分割,這是自動駕駛或增強現實等實際應用的中一項重要技術。

      人體關鍵點檢測是在不提供人位置的情況下,定位並返回人體各部位關鍵點坐標位置。關鍵點定位了頭、肩、肘、手、臀、膝、腳等部位,可以用於人的行為識別,對於安防技術有重大意義。

      三連冠偉業

      今年的 MS COCO 總共 7 項比賽,除了曠視的 3 項冠軍,香港中文大學-商湯科技聯合實驗室和南洋理工大學團隊也在 Object Detection 比賽中拿到了不含額外數據集的第一名。

      可以說中國軍團延續傳統,繼續在全球 AI 競技中展現實力。

      而且 COCO 中最被看重的“物體檢測”比賽,孫劍和其帶隊的中國軍團,更是實現了垄斷級的統治力。

      物體檢測項目,從 2015 年第一屆就存在,此後一直延續了下來。

      在第一屆比賽中,孫劍帶隊的 MSRA 團隊斬獲冠軍,成員包括何愷明(現 FAIR)、任少卿(現 Momenta)、代季峰(現商湯)和張祥雨(現曠視),所用的算法,是何愷明和 RBG 大神第一次合作的 Faster R-CNN。

      不過 2016 年,冠軍被谷歌研究院的G-RMI 隊拿下,只是所用的算法依然是 Faster R-CNN。

      2015 年第一屆 MS COCO 大賽中除了物體檢測,還有個生成圖片說明(Captioning Challenge)項目,當時奪冠的谷歌團隊,與人類 baseline 相比依然差了一大截,這個比賽項目也沒能繼續下去。

      在 2016 年,物體檢測之外的比賽項目變成了人體關鍵點檢測,當時奪冠的團隊來自 CMU。

      而從 2017 年開始,COCO 的各項比賽,就真正進入了中國時間——甚至可以更具體說“曠視時間”。

      這家中國 AI 獨角獸在孫劍加盟擔當研究院院長后,如虎添翼,在 COCO 競賽中展現出的實力,就像中國乒乓球、女排在奧運會展現的一樣。

      2017 年,MS COCO 的 6 個比賽項目中,曠視拿下了邊界檢測(Detection: Bounding Box)、人體關鍵點檢測(Keypoints)和地點實例分割(Places Instance Segmentation)3 個項目的冠軍,以及檢測分割(Detection: Segmentation)的亞軍。

      而在 2018 年的 6 個項目中,曠視拿下了物體檢測(Detection)、全景分割(Panoptic)、人體關鍵點檢測(Keypoints)和 Mapillary Panoptic4 個項目的冠軍。

      另外的兩個項目 DensePose 和 Mapillary 街景檢測則分別由北京郵電大學自動化學院模式識別與測控技術實驗室(BUTP-PRIV)和滴滴獲得——這一整屆比賽的冠軍都被中國團隊包了。

      所以算下來,曠視已經在三年 MS COCO 的比賽上拿到了累計 10 個冠軍。

      最重頭的“物體檢測”,更是完成三連冠偉業,前無古人。

      更加值得一提的是,之前我們也揭秘過,曠視在 COCO 上的統治力,去往年開始就啟用大牛老將帶實習生參賽的機制,於是諸多名不見經傳的本科實習生,早早就成為了 AI 世界冠軍。

      而且刷榜奪冠,不僅是鍛煉隊伍,而且對曠視自研的 Brain++,也是一次次最佳說明。

      在今年 ICCV 奪冠后,曠視研究院院長孫劍再次感謝曠視算法工具平台 Brain++,稱一連串成績的取得,離不開背後強大的 Brain++。

      曠視介紹,一方面 Brain++ 具備多機訓練方案,支持完備的底層算法,確保算法的高效實現與快速驗證。

      比如,在 COCO Detection 任務中,曠視重新設計了 RPN 匹配策略和 Proposal 採樣策略,使用兩階段檢測器即可直接獲得很好的高 IoU 檢測結果,甚至超過了使用更多階段的 Cascade R-CNN,最終大幅領先,取得 test-challenge 52.5 的冠軍成績。

      另一方面 Brain++ 針對計算機視覺定製優化,適合工業界的產品開發,為競賽技術的應用轉化鋪平道路。

      還集成了新一代 AutoML 技術,降低算法試錯成本,實現技術創新和產品落地齊頭並進。Brain++從算法設計、算法框架和算法平台三個方面為 AI 競賽保駕護航。

      在剛剛舉行的烏鎮世界互聯網大會上,Brain++還為曠視斬獲了“世界互聯網領先科技成果”。

      於是也有更多注意力開始關注起這個基礎算法研發平台,曠視聯合創始人及 CTO 唐文斌還比喻說,如果說曠視各種各樣的算法是“雞蛋”,那 Brain++ 就是出產“所有雞蛋”的“母雞”。

      總之,Brain++可以視為曠視面向 AI 時代的生產工具,而再配以優秀的人才,連續在全球 AI 競技中奪魁,自然也不是意料之外。

      One more thing

      最後,新冠軍、新紀錄和三連冠偉業之外,今年 COCO 的冠軍對曠視而言還有更多意義。

      一方面,這家 AI 獨角獸已經向港交所提交了招股書,IPO 上市只是時間問題,也將成為 AI 創業上市第一股。

      另一方面,就在不久前,曠視也突發遭遇偷襲,被美國列入了“實體名單”,成為“川普優選”的又一家公司。

      因為衝刺上市當前,還引發了更多關注。

      但 Brain++ 獲國家認證,COCO 比賽三連冠,毫無疑問就是最好回應。

      還是那句話,如果美國拉黑了你,不要悲傷,不要氣餒。

      猝不及防的日子,最好的回擊就是業績和人心。

      並且 ICCV 2019 這才剛剛開幕,聽說曠視的三連冠,還不是中國 AI 新榮譽的全部。

      讓我們保持關注,繼續期待~

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

  • 小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門

    小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門

    人生苦短,我用 Python

    前文傳送門:

    Docker 基礎

    首先說一件事情,就在本文寫作前一天,Mirantis 這家公司宣布收購了 Docker 的企業業務和團隊。並且在官網上也掛出了相關的文字。

    沒別的意思,相關的新聞通告一下。

    Docker 官網地址:

    什麼是 Docker ?

    emmmmm,說實話,Docker 是什麼並不好說,下面通過四點大致解釋下 Docker 到底是個什麼東西。

    1. Docker 是全球領先的軟件容器平台。
    2. Docker使用Google公司推出的Go語言進行開發實現,基於Linux內核的cgroup,namespace,以及AUFS類的UnionFS等技術,對進程進行封裝隔離,屬於操作系統層面的虛擬化技術。
    3. 由於隔離的進程獨立於宿主和其它的隔離的進程,因此也稱其為容器。Docke最初實現是基於LXC。
    4. 用戶可以方便地創建和使用容器,把自己的應用放入容器。

    Docker 容器的特點:

    1. 輕量化:在一台機器上運行的多個Docker容器可以共享這台機器的操作系統內核;它們能夠迅速啟動,只需佔用很少的計算和內存資源。鏡像是通過文件系統層進行構造的,並共享一些公共文件。這樣就能盡量降低磁盤用量,並能更快地下載鏡像。
    2. 標準化:Docker容器基於開放式標準,能夠在所有主流Linux版本、Microsoft Windows以及包括VM、裸機服務器和雲在內的任何基礎設施上運行。
    3. 安全:Docker賦予應用的隔離性不僅限於彼此隔離,還獨立於底層的基礎設施。Docker默認提供最強的隔離,因此應用出現問題,也只是單個容器的問題,而不會波及到整台機器。

    為什麼要用Docker:

    • Docker的鏡像提供了除內核外完整的運行時環境,確保了應用運行環境一致性,從而不會再出現“這段代碼在我機器上沒問題啊”這類問題;——一致的運行環境
    • 可以做到秒級、甚至毫秒級的啟動時間。大大的節約了開發、測試、部署的時間。——更快速的啟動時間
    • 避免公用的服務器,資源會容易受到其他用戶的影響。——隔離性
    • 善於處理集中爆發的服務器使用壓力;——彈性伸縮,快速擴展
    • 可以很輕易的將在一個平台上運行的應用,遷移到另一個平台上,而不用擔心運行環境的變化導致應用無法正常運行的情況。——遷移方便
    • 使用Docker可以通過定製應用鏡像來實現持續集成、持續交付、部署。——持續交付和部署

    說起容器,與虛擬機的比較是一個永恆的話題,因為它做的事情和虛擬機做的事情非常的接近。

    傳統虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;而容器內的應用進程直接運行於宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更為輕便。

    Docker 安裝

    Win10 下的安裝

    首先介紹一下 win 環境下 Docker 的安裝,打開官網,下載最新版的 Docker Desktop 。

    Docker 官方下載地址:

    下載前可能需要先註冊下 Docker Hub ,註冊完成後會直接跳轉下載頁面。

    下載完成后默認配置 next 就好了。

    驗證:

    在 CMD 命令行中執行:

    docker info

    請確保 Docker 正常啟動狀態,否則會報錯的。

    小編本地電腦執行后显示如下:

    Client:
     Debug Mode: false
    
    Server:
     Containers: 26
      Running: 0
      Paused: 0
      Stopped: 26
     Images: 28
     Server Version: 19.03.1
     ...

    內容有些多,我就不全貼出來了,主要會显示一些當前 Docker 相關的信息。

    CentOS 下的安裝

    懶人神器,使用 CentOS 下的包管理工具 yum 進行安裝,直接輸入:

    yum install docker

    然後靜靜等待進度條走完,驗證命令和上面一致,同樣需確保 Docker 服務正常啟動。

    CentOS 中 Docker 基本操作命令:

    # docker 啟動
    systemctl start docker
    # 重啟 docker服務
    systemctl restart docker
    # 關閉 docker 服務
    systemctl stop docker

    驗證結果:

    Docker 基礎

    首先了解兩個概念:

    鏡像:Docker 鏡像是用於創建 Docker 容器的模板。

    容器:容器是獨立運行的一個或一組應用。

    講人話就是鏡像可以是我們自己的程序,也可以是第三方廠商提供的組件,比如數據庫,緩存服務等等,而這個鏡像想要運行的話,就要放在容器裏面運行,它自己是不能單獨運行的,就好比炒菜,光有菜不行,還要有鍋,菜是在鍋里炒出來的。

    因為 Docker 默認的鏡像源是在遙遠的太平洋彼岸,訪問速度會有些慢,建議各位同學配置一個國內的鏡像源。

    國內的鏡像源有很多的,百度一下可以找到很多,小編這裏使用的阿里雲提供的容器鏡像加速服務,大家可以登錄自己的淘寶賬號,在阿里雲上找到容器鏡像服務:

    具體的配置方案阿里雲已經提供出來了,小編這裏不再贅述,大家自己登錄阿里雲查看吧。

    上面這些都配置完成后,我們來講幾個最基礎的 Docker 命令:

    獲取鏡像

    語法:docker pull NAME[:TAG]
    其中,NAME是鏡像倉庫的名稱(用來區分鏡像),TAG是鏡像的標籤(用來表示版本信息)

    查看鏡像

    語法:docker images

    可以看到,小編的機器上目前有一個 mysql5.7 鏡像。

    搜索鏡像

    語法:docker search [image-name]
    從docker倉庫搜索docker鏡像

    刪除鏡像

    語法:docker rmi NAME
    用來刪除指定鏡像,其中後面的參數可以是tag,如果是tag時,實際上是刪除該tag,只要該鏡像還有其他tag,就不會刪除該鏡像。當後面的參數為鏡像ID時,則會徹底刪除整個鏡像,連通所有標籤一同刪除

    實戰 hello-world

    首先輸入 docker pull hello-world 來拉取 hello-world 鏡像:

    拉取成功后,我們使用 docker images 來查看下這個 hello-world 鏡像 :

    好了,我們已經看到這個 hello-world 鏡像了,現在來嘗試一下啟動,使用命令 docker run hello-world

    若是出現了上圖的內容則說明hello-world運行成功,如果沒出現的話,emmmmmmmmmm,你們可能就要想想自己之前的操作了。

    本篇文章到這裏就結束了,希望各位同學能自己動手實踐一下,畢竟實踐出真知嘛。

    參考

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

  • 嚇人!在浴池洗浴竟會感染梅毒?很多人都不知情…

    嚇人!在浴池洗浴竟會感染梅毒?很多人都不知情…

      本文專家:田靖博士,南部戰區疾病預防控制中心,主治醫師

      我們都知道艾滋病很可怕,得了基本上就需要終生抗爭。

      最近,僅次於艾滋病的第二大性接觸疾病——梅毒,突然成了微博上最熱門的話題。

      某知名企業創始人稱自己“在浴池洗浴感染梅毒,打了 6 天針后治癒”。


    微博截圖

      先是洗浴感染梅毒驚呆眾網友,只要在公共中心泡過澡、游過泳的都表示瑟瑟發抖。

      還有對 6 天治癒梅毒表示疑問,畢竟我們所知的梅毒是比較可怕的。

      那泡澡到底會不會感染梅毒?梅毒究竟該如何治癒?我們就網友關心的這些問題科普一下。

      洗浴、游泳真會感染梅毒嗎?

      梅毒螺旋體(Treponema pallidum,TP)又稱為蒼白螺旋體,是造成感染梅毒的“罪魁禍首”。

      目前全球每年約有 1200 萬新發梅毒病例,我國梅毒發病率呈上升趨勢。

      梅毒的感染途徑有——

      1、血液傳播和性接觸傳播

      梅毒螺旋體僅可以感染人類,血液傳播和性接觸傳播是主要途徑。95% 以上的感染者通過危險的無保護的性行為感染,而男同性戀人群中的梅毒感染率近年來急劇上升。

      2、母嬰傳播。梅毒可以通過垂直傳播途徑,由感染梅毒的母親傳染給新生兒。

      梅毒螺旋體病毒感染人類需要具備一定的病毒載量,在某些特殊條件下才能發生,如通過性接觸直接接觸梅毒感染者的創面或者血液傳播,同時也取決於被感染者的身體狀況等。

      因此,常規使用公共設施和出入公共場所,如游泳池游泳、接觸馬桶墊、共用餐具、衣物接觸等情況都不會感染梅毒。

      並且游泳池中的水通常含有漂白粉等消毒劑,不適合淋球菌、梅毒螺旋體等性病病原體存活。所以,去正規的游泳館不存在感染梅毒的可能性。

      梅毒有什麼危害?

      按照《梅毒診斷標準》(WS273-2018),根據梅毒感染的不同階段以及出現癥狀的差異可以將梅毒分為I期、II 期、III 期、胎傳和隱形梅毒。

      I 期~III 期梅毒對於患者的損害是不同的,能造成——

    1. 硬下疳、腹股溝或患部近位淋巴結腫大;
    2. 多個部位的瀰漫性皮損,最終造成頭面部以及四肢產生結節性梅毒疹;
    3. 關節出現結節;
    4. 皮膚、口腔、舌咽出現樹膠腫;
    5. 產生骨梅毒、眼梅毒、心血管梅毒、神經梅毒和其他內臟梅毒等。

      胎傳:所有未經有效治療的梅毒母親所生的嬰兒可能感染胎傳梅毒,根據發病時間分為早期胎傳梅毒、晚期胎傳梅毒和隱性胎傳梅毒。

      隱形梅毒:無臨床癥狀與體征的隱性梅毒患者,仍然具有傳染性,部分病人可以發生晚期損害。

      晚期梅毒可導致不可逆的心血管損傷和中樞系統損害,嚴重者可導致死亡。

      中樞神經系統的梅毒感染可以發生在疾病的任何時期,病程越長、精神癥狀越嚴重。

      此外,梅毒與艾滋病常常是一對“好兄弟”。在感染艾滋病的患者中,大約有 42.8% 的患者都曾感染梅毒。

      梅毒感染會造成皮膚破損,增加體液中 CD4+ 細胞的數量,為 HIV 的感染提供更多的靶細胞,促進 HIV 的傳播,因此從這個意義上來說,感染梅毒是艾滋病的“幫凶”。

      梅毒真能 6 天治癒嗎?

      不一定!

      因為涉及個人體質、治療抗生素的使用方案及青霉素是否過敏等問題,治療周期和結果都會因人而已,最重要是嚴格遵循醫囑和臨床檢查結果。

      因此,治癒的時間根據選擇藥物和患者的病情來確定,不能簡單用時間判斷!

      感染梅毒該如何治療?

      青霉素是治療梅毒的首選藥物之一,對病原菌的細胞壁生成進行抑制 , 從而降低抗原反應素,可短期改善認知功能。青霉素過敏者可採用紅黴素治療。

      多西環素是非青霉素的一種,及早治療血清轉陰率可達 83%-100%,成為當前治療早期梅毒(梅毒螺旋體感染<2 年,II 期早期梅毒)的主要手段。

      頭孢曲松鈉及苄星青霉素聯合治療梅毒比單一用藥效果好。

      不過,抗生素治療僅對免疫系統正常的患者有效。當患者產生梅毒血清抵抗時,單獨使用青霉素,無論增加劑量還是延長治療時間,都對患者無效。

      梅毒治療后,15%~41% 的患者可能形成梅毒血清固定,使用免疫調節劑再治療梅毒血清固定患者有一定的效果,但存在爭議。

      所以,治療梅毒需要嚴格遵循醫囑,才能達到有效治癒。

      此外,還要保持健康良好的生活方式,防止不安全的性行為。

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益