Keras和TensorFlow究竟哪個會更好?

2020-12-11 電子發燒友

深度學習發展勢頭迅猛,但近兩年湧現的諸多深度學習框架讓初學者無所適從。如 Google 的 TensorFlow、亞馬遜的 MXNet、Facebook 支持的 PyTorch、Theano、Caffe、CNTK、Chainer、百度的 PaddlePaddle、DSSTNE、DyNet、BigDL、Neon 等等。

在這其中,TensorFlow 作為最為著名的用於深度學習生產環境的框架,它有一個非常強大的生態體系支持,然而,相比其他框架,TensorFlow 也有其劣勢,如速度較慢、使用上手難。而基於 TensorFlow 基礎上構建的 Keras 提供了簡單易用的 API 接口,非常適合初學者使用。

2017 年 1 月,隨著 Keras 的作者、谷歌 AI 研究員 Francois Chollet 的一條消息的宣布,Keras 成為第一個被添加到 TensorFlow 核心的高級別框架,Keras 從此成為 Tensorflow 的默認 API。

「那麼,我應該在項目中使用 Keras 還是 TensorFlow?Keras 和 TensorFlow 究竟哪個會更好?我應該把時間花在研究 TensorFlow 還是 Keras 上?」

在與深度學習的研究人員、從業者包括工程師在內的交談中,「Deep Learning for Computer Vision with Python 」一書作者 Adrian Rosebrock 聽到了他們的困惑。

就 Keras 和 TensorFlow 而言,Rosebrock 認為開發者更應該關注的是當 Keras 實際上已被完全採用並整合到 TensorFlow 後,自己可以:

使用 Keras 易於使用的界面定義模型。

如果需要 TensorFlow 的特定功能,或需要實現 Keras 不支持但 TensorFlow 支持的自定義功能,則調入 TensorFlow。

他給出的建議是先使用 Keras ,然後下載 TensorFlow 以獲取可能需要的任何特定功能。文本中,Rosebrock 展示了如何訓練使用 Keras 的神經網絡和使用直接構建在 TensorFlow 庫中的 Keras+TensorFlow 集成(具有自定義功能)的模型。

下面開始正文:

▌對比 Keras 和 TensorFlow 沒什麼意義

前些年,深度學習領域的研究人員、開發人員和工程師必須經常做出一些選擇:

我應該選擇易於使用但自定義困難的 Keras 庫?

還是應該使用難度更大的 TensorFlow API,編寫大量代碼?(更不用說一個不那麼容易使用的 API 了。)

如果你陷於「我應該使用 Keras 還是 TensorFlow」這樣的問題,你可以退一步再看,其實這是一個錯誤的問題,因為你可以選擇同時使用兩個。

我會使用基於 TensorFlow 的標準 keras 模塊和 tf.keras 模塊,來實現一個卷積神經網絡(CNN)。然後,基於一個示例數據集,來訓練這些 CNN,然後檢查所得結果,你會發現,Keras 和 TensorFlow 是可以和諧共處的。

雖然自一年多之前,TensorFlow 就宣稱 Keras 將被併入 TensorFlow 的官方發布版本中,但令我詫異的是,仍有很多深度學習開發者沒有意識到,他們可以通過 tf.keras 子模塊來調用 Keras。更重要的是,Keras 與 TensorFlow 是無縫銜接的,使得我們將 TensorFlow 的原始碼直接寫入 Keras 模型中。

在 TensorFlow 中結合 Keras 使用,會有雙贏效果:

你可以使用 Keras 提供的簡單、原生 API 來創建自己的模型。

Keras 的 API 類似於 scikit-learn 的,都可稱為機器學習的優質 API。

Keras 的 API 是模塊化的、基於 Python ,並且極其易於使用。

當你需要實現一個自定義的層或更複雜的損失函數時,你可以深入使用 TensorFlow,將代碼自動地與 Keras 模型相結合。

▌Keras 通過 tf.keras 模塊構建到 TensorFlow 中

可以看到,我們通過引入 TensorFlow (tf) 並調用 tf.keras,在 Python shell 中展示了 Keras 實際上是 TensorFlow 的一部分。

tf.keras 中的 Keras 允許我們使用標準的 Keras 包獲取下面這樣簡單的前饋神經網絡:

接下來基於 TensorFlow 的一部分 —— tf.keras 子模塊,來實現同樣的網絡:

然而這是否意味著你必須使用 tf.keras?從而現在放棄使用標準 Keras 包了嗎?當然不是!

Keras 依然作為一個庫,與 TensorFlow 分開,進行獨立操作,所以仍存在未來兩者會分開的可能性;然而,我們知道 Google 官方同時支持 Keras 和 TensorFlow,分開似乎又是極不可能發生的。

但重點在於:

如果你更喜歡只基於 Keras 來編程,那就這麼做吧,以後可以一直如此。但如果你是 TensorFlow 用戶,你應該開始考慮 Keras API 了,因為:

它是基於 TensorFlow 創建的

它更易於使用

當你需要用純 TensorFlow 實現特定性能或功能時,它可以直接用於你的 Keras。

▌示例數據集

CIFAR-10 數據集有10個類,我們用該數據集來展示本文的觀點

為了簡單起見,我們就在 CIFAR-10 數據集上訓練兩個單獨的卷積神經網絡 (CNN),方案如下:

方法 1 :以 TensorFlow 作為後端的 Keras 模型

方法 2 :使用 tf.keras 中 Keras 子模塊

在介紹的過程中我還會展示如何把自定義的 TensorFlow 代碼寫入你的 Keras 模型中。

CIFAR-10 數據集包括10個單獨的類,50,000 張訓練圖片和 10,000 張測試圖片。

▌項目結構

我們可以在終端使用 tree 指令來查看該項目的結構:

pyimagesearch 模塊被包括在與網絡條目相關的下載中。它不能通過 pip 來安裝,但包含在 "Downloads"後的結果中。我們先回顧一下該模塊中兩個重要的 Python 文件:

minivggnetkeras.py:此文件是基於 Keras 實現的 MiniVGGNet 網絡,一個基於 VGGNet 的深度學習模型。

minivggnettf.py:此文件是基於 TensorFlow + Keras (如 tf.keras)實現的 MiniVGGNet 網絡。

該項目的根目錄包含兩個 Python 文件:

train_network_keras.py:用 Keras 實現的訓練腳本;

train_network_tf.py: TensorFlow + Keras 實現需要的訓練腳本,與前者基本相同;但我們仍會進行說明,並標出不同之處。

每個腳本都會生成各自訓練的 accuracy 和 loss 曲線:

plot_keras.png

plot_tf.png

接下來就會向大家介紹基於 Keras 和 TensorFlow + Keras (tf.keras) 實現的 MiniVGGNet 網絡和他們的訓練過程。

▌用 Keras 訓練一個神經網絡

用 Keras 實現的一個 miniVGGNet 卷積神經網絡結構

訓練我們網絡的第一步是在 Keras 中構建網絡的架構。

如果你已經熟悉 Keras 訓練神經網絡的基礎知識,那麼我們就開始吧 (如果你對此並不了解的話,請參考相關的介紹性文章)。

相關連結:https://www.pyimagesearch.com/2018/09/10/keras-tutorial-how-to-get-started-with-keras-deep-learning-and-python/

首先,打開 minivggnetkeras.py 文件並插入以下代碼:

從導入一系列所需的 Keras 庫開始構建模型。

然後,定義一個的 MiniVGGNetKeras 類:

我們在第 12 行定義了 build 方法,並定義 inputShape 和 input 參數。 我們假定以 channel last 的規則排序,所以 inputShape 參數中最後一個值應該對應的是 depth 值。

下面開始定義卷積神經網絡的主體結構:

從上面這段代碼你可以觀察到我們在每次應用池化 (pooling) 之前都堆疊了一系列卷積 (conv2D),ReLU 激活函數和批規範化層 (batch normalization),以降低卷積操作後的空間維度。此外,我們還使用 Dropout 技術來防止模型的過擬合現象。

對於圖層類型和有關術語的知識,可以參考以前的 Keras 教程

https://www.pyimagesearch.com/2018/09/10/keras-tutorial-how-to-get-started-with-keras-deep-learning-and-python/

如果想深入研究的話,推薦書「Deep Learning for Computer Vision with Python 」

https://www.pyimagesearch.com/deep-learning-computer-vision-python-book/

然後,將全連接層 (FC) 添加到網絡結構中,代碼如下:

我們將 FC 層和 Softmax 分類器添加到網絡中。隨後我們定義神經網絡模型並將其返回給回調函數 (calling function)。

現在我們已經在 Keras 中實現了 CNN 模型的定義。下面,我們創建用於訓練該模型的程序腳本。

打開 train_network_keras.py 文件並插入以下代碼:

我們首先在代碼的第 2-13 行導入我們模型訓練所需的包。

需要注意的是:

在第 3 行,將 Matplotlib 的後端設置為 Agg,以便我們可以能將訓練圖保存為圖像文件。

在第 6 行,我們導入 MiniVGGNetKeras 類。

我們使用 scikit-learn 庫中的 LabelBinarizer 方法進行獨熱編碼 (one-hot encoding),並使用其 classification_report 方法列印出分類精度統計結果 (分別對應第 7 行和第 8 行)。

我們在第 10 行導入訓練所需的資料庫。

如何使用自定義的數據集,可參考

https://www.pyimagesearch.com/2018/09/10/keras-tutorial-how-to-get-started-with-keras-deep-learning-and-python/

https://www.pyimagesearch.com/2018/04/16/keras-and-convolutional-neural-networks-cnns/

此外,我們還在第 16-19 行解析了一個命令行參數 (輸出 --plot path)。

下面我們就加載 CIFAR-10 數據集,並對標籤進行編碼操作,代碼如下:       

在第 24 行和第 25 行中,我們分別加載並提取訓練和測試所需的數據,同時在第 26 和 27 行將數據進行 floating point + scale 轉化。

第 30-36 行我們對標籤進行編碼並初始化真實的 labelNames。

模型定義和數據集導入的工作都已經完成。現在可以開始訓練我們的模型,代碼如下:

在第 40-46 行,我們設置訓練過程所需的一些參數和模型優化方法。

然後在第 47-50 行,我們使用 MiniVGGNetKeras.build 方法初始化我們的模型並進行編譯。

最後,在第 54 和 55 行啟動模型的訓練程序。

下面,我們將對網絡模型進行評估並生成一個結果圖:

在這裡,我們利用測試數據來評估我們的模型,並生成 classification_report。最後,我們將評估結果集成並導出結果圖。

需要注意的是,通常在這裡我們會將模型序列化並導出我們的模型,以便可以在圖像或視頻處理腳本中使用它,但在這篇教程中我們不介紹這部分的內容。

如果你想要運行以上的腳本,請確認下載本文的原始碼。

然後,打開一個終端並執行以下命令就可以用 Keras 實現一個神經網絡:

在我的電腦 cpu 上運行每個訓練 epoch 只需要 5 多分鐘。訓練結果圖如下:

用 Keras 實現的神經網絡模型,以 Matplotlib 畫出訓練過程的 accuracy/loss 曲線

正如我們從上面終端的輸出看到那樣,我們的模型取得75%的準確度。雖然這不是最先進的模型,但它能比隨機猜測 (1/10) 要好得多。

相比起小型的神經網絡,我們模型的結果實際上是非常好的!

此外,正如我們在輸出圖6中所示,我們模型並不會發生過擬合現象。

▌用 Tensorflow 和  tf.keras 訓練一個神經網絡模型

使用 tf.keras (內置於 TensorFlow 中的模塊) 構建的 MiniVGGNet CNN 架構與我們直接使用 Keras 構建的模型是相同的。在此,出於演示的目的,我改變了其中的激活函數,其他的結構都是相同的。

上面我們已經能夠使用 Keras 庫實現並訓練了一個簡單的 CNN 模型。接下來,我們要做的是:

1.學習如何使用 TensorFlow 中的 tf.keras 模塊實現相同的網絡架構

2.在我們的 Keras 模型中包含一個 TensorFlow 激活函數,而該函數未在Keras中實現。

下面,讓我們開始吧。

首先,打開 minivggnettf.py 文件,我們將實現 TensorFlow 版的 MiniVGGNet 模型,代碼如下:

在這個 .py 文件中,請注意第 2 行我們需要導入所需的 tensorflow 依賴庫,而 tensorflow  中自帶 tf.keras 子模塊,該子模塊包含我們可以直接調用的所有 Keras 功能。

在模型定義中,我使用 Lambda 層,如代碼中的黃色突出顯示,它可以用於插入自定義激活函數 CRELU (Concatenated ReLUs),

激活函數 CRELU 是由 Shang 等人在論文「Understanding and Improving Convolutional Neural Network」中所提出。

CRELU 激活函數在 Keras 中沒有相應的實現,但是在 TensorFlow 中可以。你可以在 TensorFlow 中的 tf.keras 模塊,使用一行代碼來將 CRELU 函數添加到我們的 Keras 模型中。

還需要注意的是:CRELU 函數有兩個輸出,一個 positive ReLU 和一個 negative ReLU,二者連接在一起。對於正值 x,CRELU 函數的返回值是 [x,0];而對於負值 x,CRELU 函數的返回值是 [0,x]。有關該函數的詳細介紹可以參考 Shang 等人的論文。

接下來,我們將用 TensorFlow + Keras 來定義用於訓練 MiniVGGNetTF 模型的程序。打開 train_network_tf.py 並插入如下代碼:

在 2-12 行,我們導入訓練過程所需的依賴庫。與我們之前的 Keras 版的訓練腳本相比,唯一的變化在於我們導入了 MiniVGGNetTF 類及 tensorflow as tf 而不是使用 Keras。而在第 15-18 行是我們的命令行參數解析部分。

和之前一樣,我們在第 23 行加載模型訓練所需的數據。腳本剩餘的部分和之前 Keras  版的訓練過程是一樣的,即提取並分離訓練和測試集數據並編碼我們的標籤。

下面,讓我們開始訓練我們的模型,代碼如下:

在第 39-54 行,是與 Keras 版訓練過程不同的地方,我們用黃色突出顯示,其餘部分都是相同的。

在第 58-73 行,我們用測試數據評估我們的模型並繪製最終的結果。

正如你所看到的,我們只是更換了所使用的方法 (使用 tf.keras),實現了幾乎一樣的訓練流程。

然後,打開一個終端並執行以下命令就可以使用 tensorflow + tf.keras 訓練一個神經網絡模型:

訓練完成後,你可以得到如上類似的訓練結果圖:

用 Tensorflow + tf.keras 實現的神經網絡模型,以 Matplotlib 畫出訓練過程的 accuracy/loss 曲線

可以看到,我們用 CRELU 代替原有的 RELU 激活函數,獲得 76% 的準確率; 然而,1% 的準確性提升增加可能是由於網絡中權重的隨機初始化導致的,這還需進行交叉驗證實驗來進一步證明 CRELU 激活函數是否確實能夠提升模型的準確性。當然,原始精度並不是本節所重點關注的內容。

相反,更需要我們注意的是,如何在 Keras 模型內部,用 TensorFlow 的激活函數替換標準 Keras 激活函數!

此外,你也可以使用自定義的激活函數、損失/成本函數或圖層來執行以上相同的操作。

▌總結

在今天的文章中,關於 Keras 和 TensorFlow 我們主要討論了以下幾個問題:

我是否應該在我的項目中使用 Keras 或 TensorFlow?

TensorFlow 比 Keras 要好嗎?

我是否要花時間學習 TensorFlow 或者 Keras?

最終,我們發現,試圖在 Keras 和 TensorFlow 之間作出抉擇變成一個越來越無關緊要的問題。Keras 庫已經通過 tf.keras 模塊直接集成到 TensorFlow 中了。

本質上來說,你可以通過易於使用的 Keras API 來編碼模型和訓練過程,然後用純  TensorFlow 進行自定義實現。

所以,如果你正準備開始學習深度學習,或在糾結下一個項目是「用 Keras 還是 TensorFlow ?」或就是在思考他們兩者間「誰更好?」這些問題,現在正是尋找答案和動力的時候了,而我給你的建議非常簡單:

不多說,先開始!

在你的 Python 項目中輸入 import keras 或者 import tensorflow as tf (這樣你就可以訪問 tf.keras 了)然後開始後續的工作。

TensorFlow 可以直接集成到你的模型和訓練過程中,所以不用去比較特性,功能或易用性,你都可以直接在項目中使用 TensorFlow 或 Keras。

▌讀者的疑問

對此,有讀者提出了尖銳的疑問:

根據上述以及我的了解,不少開發者仍糾纏在 Keras 和 TensorFlow 究竟是什麼的問題,可能對此我也不甚了解,但我還是希望提出一些澄清性的問題:

一是在這二者中,將一個視為計算引擎,另一個作為一種工具包是否正確?如果這樣的話,我猜測 TensorFlow 是工具包而 Keras 是計算後端?

二是你也提到 TensorFlow 與 Caffe 的整合,但為了支持 Keras 已經放棄了 Caffe。您能分享您為什麼會這樣的原因嗎?是 Caffe不再可用,還是因為 Keras 有了更多功能?

對此,Adrian Rosebrock 回應道:

是的,Keras 本身依賴於 TensorFlow、Theano、CNTK 等後端來執行實際的計算。

Caffe 仍存在,只是其他功能已經分解為 Caffe2 。TensorFlow 從未成為 Caffe 的一部分。我們仍使用 Caffe,尤其是研究人員。但從業者尤其是 Python 的從業者更喜歡編程友好的庫如 TensorFlow、Keras、PyTorch 或 mxnet。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    有人說TensorFlow更好,有人說Keras更好。讓我們看看這個問題在圖像分類的實際應用中的答案。在此之前,先介紹Keras和Tensorflow這兩個術語,幫助你在10分鐘內構建強大的圖像分類器。TensorflowTensorflow是開發深度學習模型最常用的庫。它是有史以來最好的庫,在日常實驗中被許多極客選擇。
  • Tensorflow.keras筆記-卷積神經網絡
    Tensorflow.keras筆記-卷積神經網絡cifar10數據集    1.
  • 使用tensorflow和Keras的初級教程
    __version__)import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitimport tensorflow as tffrom sklearn import preprocessingfrom tensorflow.keras.models import Sequentialfrom
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • Python安裝TensorFlow 2、tf.keras和深度學習模型的定義
    此外,獨立的Keras項目現在建議所有將來的Keras開發都使用tf.keras API。目前,我們建議使用TensorFlow後端的多後端Keras的Keras用戶在TensorFlow 2.0中切換到tf.keras。tf.keras得到更好的維護,並與TensorFlow功能具有更好的集成。
  • 基於Tensorflow\keras銀行卡識別
    :機器學習算法與Python精研 ,ID:AITop100】,經微信公眾號授權轉載,如需轉載原文作者聯繫來自:GitHub測試環境Ubuntu 18.04python 3.6.7numpy 1.16.4tensorflow-gpu
  • 基於RTX2060構建TensorFlow-gpu(keras)學習平臺
    開始菜單運行anaconda navigator檢查是否安裝了notebook(默認有安裝)三、安裝tensorflow/keras在激活的環境中安裝:1. 如果機器上有gpu,則安裝gpu版本,沒有GPU就安裝cpu版。
  • TensorFlow 1.9 新增 tf.keras 官方入門教程(Keras與TF的深度集成)
    好消息是Keras的許多核心功能已經融入了原生的TensorFlow(tf.keras),TensorFlow 1.9新增tf.keras官方入門文檔,介紹了tf.keras的使用。這幾天打開TensorFlow的官方教程頁(https://www.tensorflow.org/tutorials/),會發現教程頁中給出的DEMO變成了基於tf.keras的教程。
  • TensorFlow 2.0正式版官宣!深度集成Keras
    TensorFlow 2.0通過在Volta和Turing GPU上使用混合精度和幾行代碼(例如在ResNet-50和BERT中使用的),將訓練性能提高了 3 倍。TensorFlow 2.0與TensorRT緊密集成,並使用改進的API在谷歌雲上的NVIDIA T4 Cloud GPU上進行推理時提供更好的可用性和高性能。
  • 100天搞定機器學習|day39 Tensorflow Keras手寫數字識別
    TensorFlow 最初由Google大腦小組(隸屬於Google機器智能研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。1、安裝庫tensorflow有些教程會推薦安裝nightly,它適用於在一個全新的環境下進行TensorFlow的安裝,默認會把需要依賴的庫也一起裝上。
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • TensorFlow 2.1指南:keras模式、渴望模式和圖形模式(附代碼)
    如果你像我一樣是一個普通人,那麼可能已經體驗到有時會陷入應用程式開發的困境,以至於很難停下來,去思考一下我們是否採取了有效的方式。在AI領域尤其如此。眾所周知,人工智慧是一個快速發展的領域。當天發表了新的研究。正在迅速開發的主要AI框架之間存在著巨大的鬥爭。發布了新的硬體體系結構,晶片和優化,以支持不斷增長的AI應用的部署。
  • TensorFlow 1.9.0-rc0 升級 tf.keras 至 Keras 2.1.6 API
    該版本帶來了不少改進和新特性:Update tf.keras to the Keras 2.1.6 API.tfe.Network is deprecated. Please inherit from tf.keras.Model.
  • 用TensorFlow和Keras構建卷積神經網絡
    在其他邊緣,則會減少強度。 下面是卷積核V和H的示例:垂直和水平邊緣的濾波器 V過濾垂直邊緣(上面的顏色與下面的顏色非常不同),H過濾水平邊緣。注意其中一個是另一個的轉置。筆者已經編寫了一個如何使用TensorFlow的KerasAPI來訓練神經網絡的教程,著重介紹了自動編碼器:http://www.datastuff.tech/machine-learning/autoencoder-deep-learning-tensorflow-eager-api-keras/本文將嘗試三種不同的體系結構
  • 一文上手Tensorflow2.0之tf.keras|三
    【磐創AI導讀】:本系列文章介紹了與tensorflow的相關知識,
  • Keras結合Keras後端搭建個性化神經網絡模型(不用原生Tensorflow)
    此時輸入規模與輸出規模都已知,可以定義訓練參數,比如全連接層的權重w和偏執b。3、call(self, *args, **kwargs):編寫層的功能邏輯。單一輸入當輸入張量只有一個時,下面是實現全連接層的例子:import numpy as npfrom keras import layers,Model,Input,utilsfrom keras import backend as Kimport tensorflow as tfclass
  • TensorFlow(Keras)中的正則化技術及其實現(附代碼)
    L1正則化L2正則化L2正則化也會懲罰權重值。對於較小的權重值和相對較大的權重值,L2正則化將值轉換為接近0但不完全為0的數字。import tensorflow as tffrom tensorflow import keras我們將使用的數據集是瑣碎的fashion-MNIST數據集。
  • 《概率深度學習:使用Python,Keras和TensorFlow概率》附下載
    Probabilistic Deep Learning: With Python, Keras and TensorFlow Probability作者: Oliver Duerr出版日期: 2020ISBN: 9781617296079頁數: 252語言: English格式: PDF大小: 60 Mb概率性深度學習: 使用 python、 keras
  • 【綜述專欄】損失函數理解匯總,結合PyTorch和TensorFlow2
    外鏈地址:[1] https://www.tensorflow.org/api_docs/python/tf/keras/losses/BinaryCrossentropy[2] https://www.tensorflow.org/api_docs/python/tf/keras/losses/binary_crossentropy
  • 損失函數理解匯總,結合PyTorch1.7和TensorFlow2
    [1] https://www.tensorflow.org/api_docs/python/tf/keras/losses/BinaryCrossentropy[2] https://www.tensorflow.org/api_docs/python/tf/keras/losses/binary_crossentropy[3] https://www.tensorflow.org