自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Keras正式從TensorFlow分離:結(jié)束API混亂與耗時編譯

新聞 前端
以后在本地運行 Keras Bazel 測試將不再花費幾小時,只需要幾分鐘。

 [[405983]]

對于深度學(xué)習(xí)領(lǐng)域的從業(yè)者而言,Keras 肯定不陌生,它是深度學(xué)習(xí)的主流框架之一。2015 年 3 月 27 日,谷歌軟件工程師、Keras 之父 Francois Chollet 在其 GitHub 上提交并公布了 Keras 的首個版本。作為使用純 Python 編寫的深度學(xué)習(xí)框架,Keras 的代碼更加簡單方便,適用于初學(xué)者。此外,Keras 具有很強的易擴展性,能夠直觀地定義神經(jīng)網(wǎng)絡(luò),函數(shù)式 API 的使用令用戶可以將層定義為函數(shù)。

[[405984]]

Keras 官網(wǎng)地址:https://keras.io/

為了訓(xùn)練自定義神經(jīng)網(wǎng)絡(luò),Keras 需要一個后端,在 v1.1.0 版本之前,Keras 的默認(rèn)后端都是 Theano。2015 年 11 月 9 日,谷歌發(fā)布了 TensorFlow。Keras 開始支持 TensorFlow 作為后端。漸漸地,TensorFlow 成為最受歡迎的后端,并從 Keras v1.1.0 發(fā)行版開始成為它的默認(rèn)后端。tf.keras 正是在 TensorFlow v1.10.0 中引入的,這是將 Keras 直接集成到 TensorFlow 包中的第一步。

當(dāng)谷歌在 2019 年 6 月發(fā)布 TensorFlow 2.0 時,他們宣布 Keras 成為 TensorFlow 的官方高級 API。并且,在 Keras 2.3.0 版本發(fā)布時,F(xiàn)rancois 表示這是 Keras 首個與 tf.keras 同步的版本,也是 Keras 支持 Theano 等多個后端的最終版本。所有深度學(xué)習(xí)從業(yè)者都應(yīng)將其代碼轉(zhuǎn)換成 TensorFlow 2.0 和 tf.keras 軟件包。這意味著二者的合并,但看似雙贏的決定,很多開發(fā)者卻不買賬。API 的混亂與割裂不僅令開發(fā)者不知所措,也加大了開發(fā)者尋找教程的難度。

是時候做出改變了!近日,Keras 之父 Francois Chollet 在其推特宣布一項重要決定:他們已經(jīng)將 Keras 的代碼從 TensorFlow 代碼庫中分離出來,移回到了自己的 repo。

Keras正式從TensorFlow分離:結(jié)束API混亂與耗時編譯

對于 Keras 從 TensorFlow 分離后有哪些好處?Francois 表示:「這將提升開源貢獻者的開發(fā)體驗。對于用戶而言,這將使他們可以在本地運行測試,不再需要編譯 TF 來測試 Keras 了,并且還將改善 CI 時間?!?/p>

Keras 正式從 TensorFlow 代碼庫中分離

此次 Keras 分離過程的負(fù)責(zé)人是谷歌高級軟件工程師 Scott Zhu,他代表 Keras 團隊向所有 Keras 用戶發(fā)表了公開聲明,解釋了 Keras 從 TensorFlow 代碼庫中分離出來的緣由以及分離后為用戶帶來的諸多便利之處。

開發(fā)團隊花費了很多精力使 TensorFlow 更加模塊化,并優(yōu)化了 Keras 和 TensorFlow 之間的依賴關(guān)系。最終 Keras 從 TensorFlow 代碼庫中分離出來,并擁有了自己獨立的代碼庫。這使 Keras 能夠使用 Tensorflow Python API 作為 PIP 包依賴項,且無需在構(gòu)建和測試時編譯 TensorFlow。因此現(xiàn)在在本地運行 Keras Bazel 測試只需要幾分鐘,而不是幾小時。

變更之后,當(dāng)前 TensorFlow 代碼庫中的 Keras 部分將很快被刪除。這意味著:

1. Keras 開源代碼庫的訪問地址將發(fā)生變更;

原地址:
https://github.com/tensorflow/tensorflow

新地址:
https://github.com/keras-team/keras

Keras正式從TensorFlow分離:結(jié)束API混亂與耗時編譯

2. 用于代碼庫管理的 git 工具。

3. 任何在先前代碼庫中未解決的 Keras 相關(guān)活躍問題將在現(xiàn)有的 ticket 線程中處理,并將通過提交到新代碼庫進行修復(fù);

4. 與原代碼庫相關(guān)的陳舊問題將被關(guān)閉。如果你認(rèn)為仍然是有價值的問題,請隨時在新代碼庫中重新打開該問題;

5. 新 Keras 代碼庫在此次變更前未完成的任何 PR/issue 都被認(rèn)為是陳舊的,將被關(guān)閉。

用戶想要提交貢獻,如何做?

用戶在提交自己的代碼以供審查并獲得批準(zhǔn)時,必須簽署谷歌個人貢獻者許可協(xié)議(CLA),這樣才可以將代碼放入 Keras 代碼庫中。此外,在提交更多的貢獻時,用戶也應(yīng)首先通過問題跟蹤器(issue tracker)與 Keras 聯(lián)系溝通。

包括項目成員在內(nèi)所有用戶的提交都必須接受審查。為此,Keras 使用 GitHub 拉取請求(pull request, PR),并建議用戶在創(chuàng)建 PR 之前閱讀相關(guān)指南。

完成本地更改并通過測試驗證后,用戶可以在 keras-team/keras 項目中打開并發(fā)送 PR,之后會經(jīng)過一系列的測試來驗證它的正確性。一旦 PR 被審查者測試和批準(zhǔn),PR 將被鏡像到谷歌內(nèi)部存儲庫。一旦合并到 Google 內(nèi)部存儲庫成功完成,PR 還將被標(biāo)記為已合并(merged)。這與 Tensorflow OSS 的貢獻流程相同,相關(guān)示例如下圖所示:

Keras正式從TensorFlow分離:結(jié)束API混亂與耗時編譯

在做任何更改之前,Keras 團隊建議用于打開 issue,并在上面討論。Keras 也會給予反饋并對用戶提出的更改進行驗證。如果更改很小,如文檔修復(fù)中簡單的 bug 修復(fù),則只需打開 PR 無需討論。

與個人用戶不同,企業(yè)用戶提交的貢獻需要遵守《谷歌軟件授權(quán)與企業(yè)貢獻者許可協(xié)議》。

開發(fā)所需的工具

使用 Keras 開發(fā)所需要的工具主要包括如下:

用于創(chuàng)建和測試 Keras 項目的 Bazel 工具和 Python;

用于代碼庫管理的 git 工具。

設(shè)置和檢查本地工作區(qū)

以蘋果 Mac 電腦(Linux 系統(tǒng)的配置非常相似)為例,使用如下命令設(shè)置并檢查本地工作區(qū)的配置:

Keras正式從TensorFlow分離:結(jié)束API混亂與耗時編譯

下載 Keras 代碼和設(shè)置虛擬環(huán)境

Python 虛擬環(huán)境是創(chuàng)建獨立環(huán)境的強大工具,可以將任何系統(tǒng)級配置的更改隔離開來。因此,Keras 強烈建議避免出現(xiàn)任何意外的依賴或版本問題。

本地運行測試

在本地運行一個測試的代碼如下:

  1. (venv_dir) scottzhu-macbookpro2:keras scottzhu$ bazel test -c opt keras:backend_test 
  2. WARNING: The following configs were expanded more than once: [v2]. For repeatable flags, repeats are counted twice and may lead to unexpected behavior. 
  3. INFO: Options provided by the client: 
  4.   Inherited 'common' options: --isatty=1 --terminal_columns=147 
  5. INFO: Reading rc options for 'test' from /Users/scottzhu/workspace/keras/.bazelrc: 
  6.   Inherited 'build' options: --apple_platform_type=macos --define open_source_build=true --define=use_fast_cpp_protos=false --define=tensorflow_enable_mlir_generated_gpu_kernels=0 --define=allow_oversize_protos=true --spawn_strategy=standalone -c opt --announce_rc --define=grpc_no_ares=true --config=short_logs --config=v2 
  7. INFO: Reading rc options for 'test' from /Users/scottzhu/workspace/keras/.bazelrc: 
  8.   'test' options: --define open_source_build=true --define=use_fast_cpp_protos=false --config=v2 
  9. INFO: Found applicable config definition build:short_logs in file /Users/scottzhu/workspace/keras/.bazelrc: --output_filter=DONT_MATCH_ANYTHING 
  10. INFO: Found applicable config definition build:v2 in file /Users/scottzhu/workspace/keras/.bazelrc: --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1 
  11. INFO: Found applicable config definition build:v2 in file /Users/scottzhu/workspace/keras/.bazelrc: --define=tf_api_version=2 --action_env=TF2_BEHAVIOR=1 
  12. INFO: Analyzed target //keras:backend_test (0 packages loaded, 0 targets configured). 
  13. INFO: Found 1 test target... 
  14. Target //keras:backend_test up-to-date: 
  15.   bazel-bin/keras/backend_test 
  16. INFO: Elapsed time: 45.535s, Critical Path: 45.26s 
  17. INFO: 19 processes: 19 local. 
  18. INFO: Build completed successfully, 20 total actions 
  19. //keras:backend_test                                                     PASSED in 45.2s 
  20.   Stats over 4 runs: max = 45.2s, min = 40.0s, avg = 41.5s, dev = 2.1s 
  21.  
  22.  
  23. INFO: Build completed successfully, 20 total actions 

最后為大家推薦一篇 Keras 的中文教程,它由 Keras 團隊軟件工程師金海峰翻譯自官網(wǎng)教程,詳細(xì)介紹了 Keras 和 TensorFlow 的基本用法和核心概念,并通過變分自編碼器(Variational Autoencoder)和超網(wǎng)絡(luò)(Hypernetwork)這兩個完整的例子展示了如何在實踐中使用 Keras。

教程知乎鏈接:
https://zhuanlan.zhihu.com/p/380472423

 

責(zé)任編輯:張燕妮 來源: 機器之心Pro
相關(guān)推薦

2017-08-25 10:26:04

業(yè)務(wù)邏輯程序員

2011-10-28 10:04:18

API

2017-06-06 10:14:55

KerasTensorFlow深度學(xué)習(xí)

2012-09-18 09:50:39

PC時代

2020-10-23 07:39:39

深度學(xué)習(xí)PyTorch代碼

2022-06-29 09:00:00

前端圖像分類模型SQL

2022-08-24 09:00:00

深度可分離卷積運算模型

2012-07-09 08:57:10

云安全身份訪問和控制

2021-02-03 13:56:09

KerasAPI深度學(xué)習(xí)

2017-10-11 06:04:04

2017-10-30 13:34:22

深度學(xué)習(xí)KerasAPI

2021-11-05 15:28:55

TensorFlow數(shù)據(jù)機器學(xué)習(xí)

2023-05-14 22:35:24

TensorFlowKeras深度學(xué)習(xí)

2018-05-15 08:44:44

TensorFlowKeras內(nèi)存

2022-10-20 11:30:38

VMware

2018-10-15 10:08:53

程序員技能深度學(xué)習(xí)

2017-07-24 13:37:42

深度學(xué)習(xí)KerasTensorFlow

2019-08-06 08:20:07

編譯器工具開發(fā)者

2020-07-15 14:52:12

TensorFlow數(shù)據(jù)機器學(xué)習(xí)
點贊
收藏

51CTO技術(shù)棧公眾號