在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

到底該選擇TensorFlow還是Keras深度學習框架選型指南

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-03-26 11:11 ? 次閱讀

到底該選擇TensorFlow還是Keras,是深度學習初學者經常糾結的一個問題。數據科學家Aakash Nain比較了TensorFlow和Keras,希望有助于選擇合適的框架。

深度學習庫/框架流行度(來源:Google)

深度學習無處不在,大量的深度學習庫讓初學者無所適從。這篇文章重點關注TensorlFlow和Keras兩者之間的選擇。TensorFlow是最著名的用于深度學習生產環境的框架。它有一個非常大非常棒的社區。然而,TensorFlow的使用不那么簡單。另一方面,Keras是在TensorFlow基礎上構建的高層API,比TF(TensorFlow的縮寫)要易用很多。

既然Keras基于TensorFlow,那么兩者有何區別?既然Keras對用戶更友好,為什么我還需要使用TF來構建深度學習模型呢?下面一些內容將幫助你做出選擇。

快速開發原型

如果你想快速創建、測試一個神經網絡,寫盡可能少的代碼,那么選擇Keras。花不了多少分鐘,你就能用Keras創建簡單或很復雜的神經網絡。Model和SequentialAPI如此強大,基本上能做到你可能想要做的任何事情。讓我們看一個例子吧:

model = Sequential()

model.add(Dense(32, activation='relu', input_dim=100))

model.add(Dense(1, activation='sigmoid'))

model.compile(optimizer='rmsprop',

loss='binary_crossentropy',

metrics=['accuracy'])

# 生成虛假數據

import numpy as np

data = np.random.random((1000, 100))

labels = np.random.randint(2, size=(1000, 1))

# 訓練模型,迭代數據(每個batch包含32個樣本)

model.fit(data, labels, epochs=10, batch_size=32)

收工!!就是這么容易!

沒有人不喜歡Pythonic??!

Keras的開發設計注重用戶友好,因而某種意義上它更加pythonic。模塊化是Keras的另一個優雅的設計指導原則。Keras中的任何東西都可以表示為模塊,用戶可以根據需要將其進一步組合。

彈性

有時候你不想用現成的東西,想要自己定義一些東西(比如,損失函數、測度、網絡層,等等)。

盡管Keras 2的設計讓你可以實現幾乎所有你想要的東西,但是我們都知道底層的庫提供了更多彈性。TF同樣如此。相比Keras,TF允許你進行更多調整。

功能性

盡管Keras提供了創建深度學習模型一般所需的所有功能性,它還是不如TF提供得多。相比Keras,TensorFlow提供更多高級操作。當你從事研究或開發特殊種類的深度學習模型時,這一點是十分便利的。下面是一些例子:

線程和隊列

隊列是一個強大的機制,可以異步地計算圖中的張量。類似地,你可以使用多個線程執行同一會話,通過并行運算加速操作。下面是一個在TensorFlow中使用隊列和線程的簡單例子:

# 創建圖,等等。

init_op = tf.global_variables_initializer()

# 創建會話,以運行圖中的操作。

sess = tf.Session()

# 初始化變量(比如epoch計數器)

sess.run(init_op)

# 開始輸入入隊線程。

coord = tf.train.Coordinator()

threads = tf.train.start_queue_runners(sess=sess, coord=coord)

try:

whilenot coord.should_stop():

# 運行訓練步驟,等等

sess.run(train_op)

except tf.errors.OutOfRangeError:

print('訓練完畢——達到epoch限制')

finally:

# 結束時,請求停止線程

coord.request_stop()

# 等待線程終止。

coord.join(threads)

sess.close()

調試器

TensorFlow有一個專門的調試器,為內部結構和正在運行的TensorFlow圖的狀態提供了可見性。從調試器獲得的洞見可以加速調試訓練和推斷階段的多種bug。

TensorFlow調試器截屏(來源:TensorFlow文檔)

控制

就我的經驗而言,你對神經網絡的控制越多,你對神經網絡在做什么的理解就更深。TF讓你可以更多地控制神經網絡。在TF中對權重和梯度進行操作有如神助。

例如,假設你的模型有三個變量,比如w、b、step,你可以選擇變量step是否可以訓練。你只需寫一行代碼就可以辦到:

step = tf.Variable(1, trainable=False, dtype=tf.int32)

在訓練階段,梯度可以提供大量信息。你想控制梯度?當然可以,看下面的例子:

# 創建優化器

optimizer = GradientDescentOptimizer(learning_rate=0.1)

# 為一組變量計算梯度

grads_and_vars = opt.compute_gradients(loss, )

# grads_and_vars是一個元組的列表(梯度, 變量)。

# 你可以隨意對梯度部分進行操作,比如,每項減1.

subtracted_grads_and_vars = [(gv[0] - 1.0, gv[1]) for gv in grads_and_vars]

# 請求優化器應用減一后的梯度。

optimizer.apply_gradients(subtracted_grads_and_vars)

(以上代碼樣例取自 CS 20SI: TensorFlow for Deep Learning Research)

結論(TL;DR)

除非你正從事研究性質的工作或開發某種特殊種類的神經網絡,選擇Keras(相信我,我是一個Keras黨!?。┦褂肒eras快速構建非常復雜的模型仍然超容易。

如果你想要更精細地控制你的網絡,或者想要仔細查看你的網絡發生了什么,那么TF是正確的選擇(不過有時TF的語法會讓你做噩夢的)。不過,現在TF已經集成了Keras,所以更明智的做法是使用tf.contrib.Keras創建你的網絡,然后根據需要在你的網絡中插入純TensorFlow。簡而言之,

tf.contrib.keras+tf=你所需要的一切

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4779

    瀏覽量

    101082
  • 深度學習
    +關注

    關注

    73

    文章

    5512

    瀏覽量

    121445
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60600

原文標題:TensorFlow還是Keras?深度學習框架選型指南

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Nanopi深度學習之路(1)深度學習框架分析

    最耳熟能詳的就是TensorFlow,但再稍有了解的,會知道TensorFlow太過于底層,實現深度學習的過程復雜,但其框架是相當好的,
    發表于 06-04 22:32

    Nanopi深度學習之路(4)深度學習框架安裝前的依賴項安裝

    “Using TensorFlow backend”說明使用的是TensorFlow后端,使用keras必須安裝TensorFlow,Theano,或者 CNTK之一,后端的意思是使用
    發表于 06-08 19:54

    【NanoPi K1 Plus試用體驗】搭建深度學習框架

    近幾年各種深度學習框架涌現,大家可能很難從眾多的深度學習框架
    發表于 07-17 11:40

    深度學習框架TensorFlow&TensorFlow-GPU詳解

    TensorFlow&TensorFlow-GPU:深度學習框架TensorFlow&
    發表于 12-25 17:21

    迅為RK3399開發板人工智能深度學習框架

    `迅為率先在RK3399 開發板上支持了Docker、TensorFlow目標檢測API、OpenCV、Keras、scikit-learn、pytorch和Python等,組成了人工智能深度
    發表于 05-21 17:28

    TensorFlow實戰之深度學習框架的對比

    的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、L
    發表于 11-16 11:52 ?4604次閱讀
    <b class='flag-5'>TensorFlow</b>實戰之<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>框架</b>的對比

    深度學習框架Keras代碼解析

    總體來講keras這個深度學習框架真的很“簡易”,它體現在可參考的文檔寫的比較詳細,不像caffe,裝完以后都得靠技術博客,keras有它自
    發表于 12-15 08:22 ?4519次閱讀

    PyTorch1.8和Tensorflow2.5如何選擇?

    ,許多研究者面對大量的學習框架不知如何選擇? Tensorflow / Keras 和 PyT
    的頭像 發表于 07-09 10:33 ?1557次閱讀

    八種主流深度學習框架的介紹

    導讀:近幾年隨著深度學習算法的發展,出現了許多深度學習框架。這些框架各有所長,各具特色。常用的開
    的頭像 發表于 04-26 18:45 ?8784次閱讀

    深度學習框架PyTorch和TensorFlow如何選擇

    在 AI 技術興起后,深度學習框架 PyTorch 和 TensorFlow 兩大陣營似乎也爆發了類似的「戰爭」。這兩個陣營背后都有大量的支持者,并且他們都有充足的理由來說明為什么他們
    發表于 02-02 10:28 ?1061次閱讀

    深度學習框架tensorflow介紹

    深度學習框架tensorflow介紹 深度學習框架
    的頭像 發表于 08-17 16:11 ?2585次閱讀

    深度學習算法的選擇建議

    常重要的。本文將提供一些選擇建議,以及如何決定使用哪種框架和算法。 首先,選擇框架。目前,深度學習
    的頭像 發表于 08-17 16:11 ?738次閱讀

    TensorFlow與PyTorch深度學習框架的比較與選擇

    學習框架,它們各自擁有獨特的特點和優勢。本文將從背景介紹、核心特性、操作步驟、性能對比以及選擇指南等方面對TensorFlow和PyTorc
    的頭像 發表于 07-02 14:04 ?1047次閱讀

    keras的模塊結構介紹

    支持多種深度學習框架,如TensorFlow、Theano和CNTK。 安裝 要使用Keras,首先需要安裝它。
    的頭像 發表于 07-05 09:35 ?414次閱讀

    keras模型轉tensorflow session

    和訓練深度學習模型。Keras是基于TensorFlow、Theano或CNTK等底層計算框架構建的。T
    的頭像 發表于 07-05 09:36 ?588次閱讀
    主站蜘蛛池模板: 夜天干天干啦天干天天爽 | 在线观看免费视频资源 | 久久刺激| 亚洲欧洲一区二区三区在线 | 美女黄网站人色视频免费国产 | 天堂在线网 | 日本一区免费在线观看 | 中国特黄毛片 | 伊人毛片 | 亚洲成网站 | 在线观看一区二区三区四区 | 免费看 s色| 中日韩一级片 | 中文字幕在线观看一区二区 | 亚洲 另类色区 欧美日韩 | 精品视频卡1卡2卡3 精品视频免费看 | 美女扒开尿口给男人桶 | 亚洲一级特黄特黄的大片 | 国产亚洲精品自在久久77 | 222在线视频免费观看 | 开心激情播播网 | a级黑粗大硬长爽猛视频毛片 | 午夜欧美精品久久久久久久久 | 亚洲高清免费观看 | 日韩黄色网 | 永久网站色视频在线观看免费 | 人人干在线观看 | 啪啪日韩 | www.福利| 亚洲入口 | 美女屁屁免费视频网站 | 69japanese日本100 69ww免费视频播放器 | 最刺激黄a大片免费观看下截 | 久久大综合 | 久久综合九色综合欧美播 | 男女一进一出抽搐免费视频 | 中文字幕亚洲综合久久2 | 精品成人在线 | 天天射网站 | 久久精品综合网 | 婷婷99精品国产97久久综合 |