分類
發燒車訊

從民眾走向大公司  德國能源轉型面臨十字路口

環境資訊中心記者 陳文姿報導

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

分類
發燒車訊

澳洲政壇川普化 總理因支持減碳下台

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

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

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

分類
發燒車訊

加州議會通過法案 2045年前100%清潔能源

摘錄自2018年8月30日世界日報報導

加州州議會29日準備將一項畫時代的法案送交州長簽署,這項法案規定,加州在2045年前將電力供應全面變為清潔能源,不再使用煤和石油發電,100%改用太陽能、風力和其他再生能源。

由州參議會議長德利昂提出的SB100號法案,先獲州參議會通過,29日再獲州眾議會以43票對32票通過;州眾議會進行了修改,所以須再送回州參議會通過,就可以送交州長簽署。州議會今年的會期,將於本周結束,所以SB100估計可於周末前送交州長。

加州的公用事業公司包括太平洋瓦電和聖地牙哥瓦電,都反對SB100。美西各州石油協會和其他組織也反對。

布朗州長對SB100保持沉默,沒有說是否簽署,雖然他是加州反暖運動的先鋒。明年可能接替布朗做州長的紐森,曾說要以100%清潔能源作為加州的目標,但是他也沒有對SB100表態。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

FB行銷專家,教你從零開始的技巧

分類
發燒車訊

【譯】Announcing Entity Framework Core 5.0 Preview 5

  今天我們宣布EF Core 5.0發布第五個預覽版。

1 先決條件

  EF Core 5.0 的預覽版要求  .NET Standard 2.1。這意味着:

      • EF Core 5.0 在 .NET Core 3.1 上運行,不需要 .NET 5。根據 .NET 5 計劃的改變,這可能會在未來發生變化。

      • EF Core 5.0 運行在其他支持 .NET Standard 2.1 的平台上。

      • EF Core 5.0 將不會在 .NET Standard 2.0 平台上運行,包括 .NET Framework。

2 如何獲取EF Core 5.0預覽版

  使用NuGet添加,例如添加SQL Server的提供程序:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 5.0.0-preview.5.20278.2

  目前發布的 EF Core包包括:

      • Microsoft.EntityFrameworkCore – 主程序

      • Microsoft.EntityFrameworkCore.SqlServer – SQL Server與SQL Azure提供者

      • Microsoft.EntityFrameworkCore.Sqlite – SQLite提供者

      • Microsoft.EntityFrameworkCore.Cosmos – Azure Cosmos DB提供者

      • Microsoft.EntityFrameworkCore.InMemory – 內存數據庫提供者

      • Microsoft.EntityFrameworkCore.Tools –Visual Studio Package Manager Console的 EF Core PowerShell命令

      • Microsoft.EntityFrameworkCore.Design – EF Core的設計時組件

      • Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite – SQL Server 空間類型支持

      • Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite – SQLite空間類型支持

      • Microsoft.EntityFrameworkCore.Proxies –延遲加載與變化跟蹤代理

      • Microsoft.EntityFrameworkCore.Abstractions – 分離的EF Core抽象

      • Microsoft.EntityFrameworkCore.Relational – 關係數據庫提供程序的共享EF Core組件

      • Microsoft.EntityFrameworkCore.Analyzers – EF Core的C#分析器

      • Microsoft.EntityFrameworkCore.Sqlite.Core – SQLite提供者(沒有打包的本機二進制文件)

  我們還發布了Microsoft.Data.Sqlite.Core ADO.NET provider的預覽版。

3 安裝dotnet ef

  與EF Core 3.0和3.1一樣,dotnet EF命令行工具不再包含在.NET Core SDK中。在執行EF Core的migration或scaffolding命令之前,必須將此包作為全局或本地工具安裝。

  若要全局安裝預覽版工具,需要先使用以下命令卸載現有的版本:

dotnet tool uninstall --global dotnet-ef

  然後,進行安裝:

dotnet tool install --global dotnet-ef --version 5.0.0-preview.5.20278.2

  可以將此新版本的dotnet ef與使用較舊版本的EF Core運行時的項目一起使用。

4 EF Core 5.0預覽版的一些新功能

4.1 數據庫排序規則

  現在可以在 EF Model中指定數據庫的默認排序規則。

modelBuilder.UseCollation("German_PhoneBook_CI_AS");

  然後,Migrations將生成以下內容以在 SQL Server 上創建數據庫:

CREATE DATABASE [Test]
COLLATE German_PhoneBook_CI_AS;

  也可以指定用於特定數據庫列的排序規則。

  例如:

modelBuilder
     .Entity<User>()
     .Property(e => e.Name)
     .UseCollation("German_PhoneBook_CI_AS");

  為了那些不使用migration的人,現在,在 DbContext scaffolding時,將從數據庫進行反向工程。最後,EF.Functions.Collate() 允許使用不同的排序規則進行臨時查詢。

  例如:

context.Users.Single(e => EF.Functions.Collate(e.Name, "French_CI_AS") == "Jean-Michel Jarre");

  這將生成 SQL Server 的以下查詢:

SELECT TOP(2) [u].[Id], [u].[Name]
FROM [Users] AS [u]
WHERE [u].[Name] COLLATE French_CI_AS = N'Jean-Michel Jarre'

  請注意,臨時排序規則應謹慎使用,因為它們會對數據庫性能產生負面影響。

4.2 傳遞參數給IDesignTimeDbContextFactory

  參數現在從命令行傳入IDesignTimeDbContextFactory 的 CreateDbContext 方法。

  例如,為了指示這是開發構建,可以在命令行上傳遞自定義參數(例如 dev):

dotnet ef migrations add two --verbose --dev

  然後,此參數將傳遞到工廠:

public class MyDbContextFactory : IDesignTimeDbContextFactory<SomeDbContext>
{
    public SomeDbContext CreateDbContext(string[] args)
        => new SomeDbContext(args.Contains("--dev"));
}

4.3 具有標識解析的無跟蹤查詢

  現在,可以將無跟蹤查詢配置為執行標識解析。

  例如,以下查詢將為每個Post創建新的Blog實例,即使每個Blog具有相同的主鍵也是如此。

context.Posts.AsNoTracking().Include(e => e.Blog).ToList();

  但是,可以更改此查詢以確保只創建單個 Blog 實例,但代價通常是稍微慢一點,並且使用更多內存:

context.Posts.AsNoTracking().PerformIdentityResolution().Include(e => e.Blog).ToList();

  請注意,這僅適用於無跟蹤查詢,因為所有跟蹤查詢都已表現出此行為。

4.4 持久化計算列

  大多數數據庫允許在計算后存儲計算列的值。

  雖然這佔用磁盤空間,但計算列在更新時只計算一次,而不是在每次檢索其值時計算。

  這還允許對某些數據庫的列設置索引。

  EF Core 5.0 允許將計算列配置為存儲列。

  例如:

modelBuilder
    .Entity<User>()
    .Property(e => e.SomethingComputed)
    .HasComputedColumnSql("my sql", stored: true);

4.5 SQLite計算列

  EF Core 現在支持 SQLite 數據庫的計算列。

5 有用的短鏈接

  提供了以下短鏈接,便於參考和訪問。

      • 主要文檔:https://aka.ms/efdocs
      • EF Core 的問題和功能請求:https://aka.ms/efcorefeedback
      • EF路線圖:https://aka.ms/efroadmap
      • EF Core 5.x 中的新增功能是什麼:https://aka.ms/efcore5

原文鏈接

  https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-5-0-preview-5/?utm_source=vs_developer_news&utm_medium=referral

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

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

聚甘新

分類
發燒車訊

能源發展仍需時間,統振前3季營運近損平

 

 

    統振前三季數據服務、流通事業與數位娛樂獲利持穩成長,惟能源部門則仍處於投入階段,前3季營運維持在損平邊緣,與去年表現相當;看好電動車長期發展趨勢,統振持續耕耘電動自行車、電動機車等市場,目前在兩岸也有開發案進行中,惟因相關開發案都需要一段時間醞釀,對整體營運貢獻仍需持續觀察。   統振母公司目前從事行動電話預付卡銷售、網路遊戲儲值卡買賣,動能主要來自外勞預付卡市佔率成長,而統振旗下轉投資數位電通則主要經營電商通路,去年起新增美妝產品,至於數位點子多媒體則以數位內容業務為主,包括連續劇版權買賣及演唱會業務;另外,統振旗下還有兩家從事電池模組相關業務的子公司達振與統達,達振在中國擁有工廠,目前主要生產3C相關電池模組,未來將逐步轉型至電動車電池模組,而統達則負責開發相關電動自行車、電動機車電池模組與交換系統。   統振前3季數據服務部門(母公司部份)約占合併營收61%,能源部門(統達與達振)佔29%,流通事業(數位電通)佔7%,數位娛樂(數位點子多媒體)3%,而前3季除了能源部門持續虧損,其他部門獲利則都穩定增長,但因能源部門前3季虧損約9,000多萬元,而其他部分獲利合計則約7,000多萬元,前3季營運仍在損平邊緣,統振前3季EPS為 -0.06元,Q3底每股淨值為12.63元。   看好電動車長期發展趨勢,統振持續投入高功率電池模組開發,而有鑑於台廠較難直接切入電動汽車供應鏈,統振也先從電動腳踏車、電動機車切入,而目前中國電動兩輪車仍以鉛酸蓄電池為主流,惟考量環保、輕量化等趨勢,加以政策驅動,且近年鋰電池成本也持續改善,將有助於提升鋰電池轉換需求,統振目前也持續與相關廠商合作,等待市場規模逐步放大。   統振今年前3季合併營收為22.34億元,年減9.7%;前3季EPS為 -0.06元,與去年同期的 -0.02元差異不大。統振近幾年本業大多呈現小幅虧損,主要係因能源部份仍在支出階段,但其他部門獲利則相對穩定。   (本文內容由授權使用,首圖為統振旗下達陣能源鋰電池模組,來源:)  

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

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

聚甘新

分類
發燒車訊

看好電動車需求,嘉能可加大投入銅鈷鎳的生產

  路透社12月5日報導,全球五大礦商之一的嘉能可(Glencore plc)加大投入電動車電池所需金屬的生產,因看好電動車市場的成長。路透社委託S&P Global Market Intelligence所做的研究顯示,嘉能可過去五年的銅與鈷產量都已經倍增,鎳產量更是四倍增長。其中,該公司銅產量從2011年的70萬噸增加至2016年的140萬噸,鈷產量從2011年的12,880公噸增加至2016年的28,300公噸,鎳產量從2011年的28,500公噸增加至2016年的115,100公噸。   報告顯示,銅鈷鎳等電動車相關金屬佔嘉能可核心獲利的五成比重,相比競爭對手包括力拓(Rio Tinto)、必和必拓(BHP Billiton)以及英美資源(Anglo American)等高出一倍。另一方面,嘉能可的股價自2015年以來已經上漲400%,2017年至今的漲幅也超過20%,表現也同樣優於其他三家競爭對手。 2017年1~9月,嘉能可銅產量較去年同期的106萬噸減少11%至94.65萬噸,主要由於尚比亞銅礦遭遇供電問題的影響。嘉能可也將今年全年的銅產量目標下調2%至131萬噸,較該公司去年的銅產量將減少8%。今年第三季,該公司的銅產量年減15%至30.36萬噸。   2017年1~9月,嘉能可的鋅產量年增4.8%至82.74萬噸,但是第三季的產量年減9%至25.66萬噸,較前季也減少12%。該公司也將全年的鋅產量目標下調2%至113萬噸。1~9月,該公司鎳產量年減2%至80,700公噸,全年產量則預估較去年持平為115,000公噸。   必和必拓商務長巴爾惠森(Arnoud Balhuizen)稱銅是「未來的金屬」,因2017年電動車迎來革命性的一年,市場大大低估了銅的需求潛力。國際銅業協會(International Copper Association)報告表示,電動汽車的產業增長,可望令未來十年該產業的銅需求量大幅增長,預估將從2017年的18.5萬噸增長至2027年的174萬噸,主要因為電動汽車較傳統汽車使用更多銅的影響。   加拿大蒙特利爾銀行資本市場(BMO Capital Markets)12月4日報告表示,受惠電動車電池需求的增長,鈷的價格在未來兩年預期將會大幅攀升。報告預估,鈷的價格將從當前的每磅30美元,上漲至2019年的每磅40.50美元(每噸89,290美元),並且不排除有倍增的可能。鈷價2017年至今已經上漲一倍,年初的價格約為每磅14.75美元。電動車電池的正極材料包括鋰、鈷與鎳,負極材料包括石墨與銅箔。   (本文內容由授權使用。首圖來源:public domain CC0)  

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

【其他文章推薦】

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

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

FB行銷專家,教你從零開始的技巧

聚甘新

分類
發燒車訊

受惠於電動車發展,2020年電池產能可達268GW

  目前各個國家逐漸以禁售汽柴油車為目標,此舉不僅讓眾多廠商著手研發電動車,電池市場也隨之受惠,能源顧問公司Wood Mackenzie近日報告指出,到了2020年,電動車電池的產能可達到268GW,而2028年之後,電動車產量越來越高,電池的需求量將逐漸超越產量。   該報告預估,2035年世界上會有超過1.25億輛電動車,電池的需求量將增長三倍,達135 TWh,等同於美國德州的耗電量。   在去年全球8,600萬輛的新車中,電動車比例不到1%,而隨著國家政策轉變,市場趨勢逐漸轉移。以各國政策為例,印度預計2030年全面將汽車汰換成電動車,英國與法國則是預設2040年禁止販售傳統汽車,中國、歐洲與美國也皆強力推動電動車發展。   面對不斷增漲的電動車市場,電池製造廠商也摩拳擦掌,研發各種適用於電動車的電池,包括鋰離子電池、固態電池與燃料電池,不斷推出高續航力、高性能的電池。隨著電動車與電池的技術日益提高與成本逐年下降,產業市場未來備受看好。  
石油市場受影響   根據石油輸出國組織(OPEC)的預估,2020年石油市場中,全球用於運輸的油佔60%以上,其中柴油與航空煤油的佔比最大,達到37.3%,其次則是汽油,使用佔比為26.6%。如汽車或運輸產業的燃油逐漸被電池取代,將對原油業產生巨大的衝擊。   報告指出,在未來20年內,電動車將占汽車市場的20%,全球石油需求量將下滑7%,預估每日減少500萬桶石油。   再加上各國為了達成「巴黎協定」,也逐漸減少對石油與天然氣的使用量,日前世界銀行更宣布,為了與各國一同響應排碳目標,2019年之後將不再資助石油與天然氣的探勘與開採。   (首圖來源:)

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

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

聚甘新

分類
發燒車訊

BMW攜手Solid Power押寶全固態電池

  德國豪華車廠BMW與美國全固態電池領航企業Solid Power周一(12/18)宣布結盟,將合作開發下一世代電動車電池技術。   Solid Power在聲明稿上表示,BMW將在先進技術方面給予協助指導,務求全固態電池效能跨越高性能電動車的要求門檻。   全固態電池具高能量密度,且安全性高,有望取代傳統的液態鋰電池,成為新世代電動車的動力來源。值得一提的是,全固態電池的續航力也是高人一等。   研發低成本、高效能電池,是目前各大電動車廠的當務之急。Solid Power說其可回充式固態電池可免除加諸在鋰電池的安全設施,達成降低成本的目的,BMW顯然也看到潛力可期。   (本文內容由授權使用。首圖為電動車用鋰電池示意圖,來源:Kokam)

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

【其他文章推薦】

※教你寫出一流的銷售文案?

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

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

聚甘新

分類
發燒車訊

拚空污防制,政院:目標2040年汽車全面電動化

  為整合部會推動空氣品質改善工作,行政院長賴清德12月21日在行政院會聽取環保署「空氣污染防制行動方案」報告,並於會後親自召開記者會。賴清德表示,國人對空氣品質的要求日益提升,政府展現決心,針對不同汙染源也提出「空氣污染防制行動方案:紅害減半大作戰」,除加強執行已律定的政策外,也提出新的管制與防制措施。相關指標性政策目標,包括2019年空污紅害日減半、2035年機車全面電動化、2040年汽車全面電動化等目標。   賴揆指出,今年4月林全前院長核定「空氣污染防制策略」,經相關部會與地方縣市政府努力,空污減量已獲初步成果。近期民眾、專家學者及社會團體輿論,要求政府進一步對空氣汙染問題提出更有效的方法,因此上週行政院會通過「空氣汙染防製法」修正草案,並在與立法委員溝通,聽取地方政府意見後,於院會提出「空氣污染防制行動方案」。會請各部會與環保署共同推動、逐項落實,未來政院也會加強與地方政府合作,希望化危機為轉機。   賴揆表示,地方政府實際執行空氣汙染防制的相關工作,尤其桃園、台中、雲林及高雄等設有火力發電廠的縣市,直接承受來自民眾的壓力;而台中市整合雲林縣、嘉義縣、嘉義市、苗栗縣、彰化縣及南投縣6縣市的建議,包括加速綠能發電;訂定全國鍋爐加嚴排放標準並全面補助;增加空污基金地方分配比例;捷運延伸中台灣以及公車營運補助全面加碼等4項要求,與政院的目標不謀而合。   環保署則明確表示,「空氣污染防制行動方案」訂定數項指標性政策目標,包括2019年空污紅害日減半、2030年公務車輛全面電動化、2035年機車全面電動化、2040年汽車全面電動化等目標;針對細懸浮微粒排放量較大者,提出具體管制與防制措施,包括要求國營事業達超低排放的世界最嚴標準、全面禁止烏賊車上路、加強餐飲業油煙、道路、營建工程及河川揚塵的管理等。   環保署並指出,除修法加嚴標準或加重罰則、擴大處分對象等行政手段外,也將提供優惠貸款以鼓勵業者汰換高污染的老舊大客貨車,目標自2018年起,將8萬輛一、二期老舊柴油大貨車汰換為符合最新的環保排放標準,1萬輛公車全面更換為電動車。   賴揆也進一步強調,空污問題並非是環保署或地方政府可以獨立面對,是需要跨部會共同合作。同時也希望地方政府與中央攜手執行,研議訂定紅害減半目標,並請上述7縣市針對固定與移動汙染源等屬於地方政府負責事項,擬訂具體策略。   (本文內容由授權使用。首圖來源:public domain CC0)  

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

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

FB行銷專家,教你從零開始的技巧

聚甘新

分類
發燒車訊

Spark如何與深度學習框架協作,處理非結構化數據

隨着大數據和AI業務的不斷融合,大數據分析和處理過程中,通過深度學習技術對非結構化數據(如圖片、音頻、文本)進行大數據處理的業務場景越來越多。本文會介紹Spark如何與深度學習框架進行協同工作,在大數據的處理過程利用深度學習框架對非結構化數據進行處理。

Spark介紹

Spark是大規模數據處理的事實標準,包括機器學習的操作,希望把大數據處理和機器學習管道整合。

Spark使用函數式編程範式擴展了MapReduce模型以支持更多計算類型,可以涵蓋廣泛的工作流。Spark使用內存緩存來提升性能,因此進行交互式分析也足夠快速(如同使用Python解釋器,與集群進行交互一樣)。緩存同時提升了迭代算法的性能,這使得Spark非常適合機器學習。

由於Spark庫提供了Python、Scale、Java編寫的API,以及內建的機器學習、流數據、圖算法、類SQL查詢等模塊;Spark迅速成為當今最重要的分佈式計算框架之一。與YARN結合,Spark提供了增量,而不是替代已存在的Hadoop集群。在最近的Spark版本中,Spark加入了對於K8s的支持,為Spark與AI能力的融合提供了更好的支持。

 

深度學習框架介紹

TensorFlow

TensorFlow最初是由Google機器智能研究部門的Google Brain團隊開發,基於Google 2011年開發的深度學習基礎架構DistBelief構建起來的。由於Google在深度學習領域的巨大影響力和強大的推廣能力,TensorFlow一經推出就獲得了極大的關注,並迅速成為如今用戶最多的深度學習框架。

TensorFlow是一個非常基礎的系統,因此也可以應用於眾多領域。但由於過於複雜的系統設計,對讀者來說,學習TensorFlow底層運行機制更是一個極其痛苦的過程。TensorFlow的接口一直處於快速迭代之中,並且沒有很好地考慮向後兼容性,這導致現在許多開源代碼已經無法在新版的TensorFlow上運行,同時也間接導致了許多基於TensorFlow的第三方框架出現BUG。

Keras

Keras 於2015年3月首次發布,擁有“為人類而不是機器設計的API”,得到Google的支持。它是一個用於快速構建深度學習原型的高層神經網絡庫,由純Python編寫而成,以TensorFlow、CNTK、Theano和MXNet為底層引擎,提供簡單易用的API接口,能夠極大地減少一般應用下用戶的工作量。

嚴格意義上講,Keras並不能稱為一個深度學習框架,它更像一個深度學習接口,它構建於第三方框架之上。Keras的缺點很明顯:過度封裝導致喪失靈活性。Keras最初作為Theano的高級API而誕生,後來增加了TensorFlow和CNTK作為後端。學習Keras十分容易,但是很快就會遇到瓶頸,因為它缺少靈活性。另外,在使用Keras的大多數時間里,用戶主要是在調用接口,很難真正學習到深度學習的內容。

PyTorch

PyTorch於2016年10月發布,是一款專註於直接處理數組表達式的低級API。 前身是Torch(一個基於Lua語言的深度學習庫)。Facebook人工智能研究院對PyTorch提供了強力支持。PyTorch支持動態計算圖,為更具數學傾向的用戶提供了更低層次的方法和更多的靈活性,目前許多新發表的論文都採用PyTorch作為論文實現的工具,成為學術研究的首選解決方案。

Caffe/Caffe2.0

Caffe的全稱是Convolutional Architecture for Fast Feature Embedding,它是一個清晰、高效的深度學習框架,於2013年底由加州大學伯克利分校開發,核心語言是C++。它支持命令行、Python和MATLAB接口。Caffe的一個重要特色是可以在不編寫代碼的情況下訓練和部署模型。如果您是C++熟練使用者,並對CUDA計算游刃有餘,你可以考慮選擇Caffe。

在Spark大數據處理中使用深度學習框架

在Spark程序中使用一個預訓練過的模型,將其并行應用於大型數據集的數據處理。比如,給定一個可以識別圖片的分類模型,其通過一個標準數據集(如ImageNet)訓練過。可以在一個Spark程序中調用一個框架(如TensorFlow或Keras)進行分佈式預測。通過在大數據處理過程中調用預訓練模型可以直接對非結構化數據進行直接處理。

我們重點介紹在Spark程序中使用Keras+TensorFlow來進行模型推理。

使用深度學習處理圖片的第一步,就是載入圖片。Spark 2.3中新增的ImageSchema包含了載入數百萬張圖像到Spark DataFrame的實用函數,並且以分佈式方式自動解碼,容許可擴展地操作。

使用Spark’s ImageSchema:

from pyspark.ml.image import ImageSchema
image_df = ImageSchema.readImages("/data/myimages")
image_df.show()

也可以利用Keras的圖片處理庫:

from keras.preprocessing import image
img = image.load_img("/data/myimages/daisy.jpg", target_size=(299, 299))

可以通過圖片路徑來構造Spark DataFrame:

def get_image_paths_df(sqlContext, dirpath, colName):
    files = [os.path.abspath(os.path.join(dirpath, f)) for f in os.listdir(dirpath) if f.endswith('.jpg')]
    return sqlContext.createDataFrame(files, StringType()).toDF(colName)

使用Keras接口加載預訓練模型:

from keras.applications import InceptionV3
model = InceptionV3(weights="imagenet")
model.save('/tmp/model-full.h5')
model = load_model('/tmp/model-full.h5')

定義圖片識別推理方法:

def iv3_predict(fpath):
            model = load_model('/tmp/model-full.h5')
            img = image.load_img(fpath, target_size=(299, 299))
            x = image.img_to_array(img)
            x = np.expand_dims(x, axis=0)
            x = preprocess_input(x)
 
            preds = model.predict(x)
            preds_decode_list = decode_predictions(preds, top=3)
            tmp = preds_decode_list[0]
            res_list = []
            for x in tmp:
                res = [x[0], x[1], float(x[2])]
                res_list.append(res)
            return res_list

定義推理輸入結果Schema:

def get_labels_type():    
    ele_type = StructType()    
    ele_type.add("class", data_type=StringType())    
    ele_type.add("description", data_type=StringType())    
    ele_type.add("probability", data_type=FloatType())    
    return ArrayType(ele_type)

將推理方法定義成Spark UDF:

spark.udf.register("iv3_predict", iv3_predict, returnType=get_labels_type())

載入圖片定義為數據表:

df = get_image_paths_df(self.sql)
df.createOrReplaceTempView("_test_image_paths_df")

使用SQL語句對接圖片進行處理:

df_images = spark.sql("select fpath, iv3_predict(fpath) as predicted_labels from _test_image_paths_df")
df_images.printSchema()
df_images.show(truncate=False)

結語

在大數據Spark引擎中使用深度學習框架加載預處理模型,來進行非結構數據處理有非常多的應用場景。但是由於深度學習框架目前比較多,模型與框架本身是深度耦合,在大數據環境中安裝和部署深度學習框架軟件及其依賴軟件會非常複雜,同時不利於大數據集群的管理和維護,增加人力成本。

華為雲DLI服務,採用大數據Serverless架構,用戶不需要感知實際物理集群,同時DLI服務已經在大數據集群中內置了AI計算框架和底層依賴庫(Keras/tensorflow/scikit-learn/pandas/numpy等)。DLI最新版本中已經支持k8s+Docker生態,並開放用戶自定義Docker鏡像能力,提供給用戶來擴展自己的AI框架、模型、算法包。在Serverless基礎上,為用戶提供更加開放的自定義擴展能力。

DLI支持多模引擎,企業僅需使用SQL或程序就可輕鬆完成異構數據源的批處理、流處理等,挖掘和探索數據信息,揭示其中的規律並發現數據潛在價值,華為雲618年中鉅惠,大數據+AI專場,歷史低價,助力企業“智能化”,業務“數據化”。

 

點擊關注,第一時間了解華為雲新鮮技術~

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

FB行銷專家,教你從零開始的技巧

聚甘新