日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【TensorFlow2.0】以后我们再也离不开Keras了?

發布時間:2025/3/20 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【TensorFlow2.0】以后我们再也离不开Keras了? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TensorFlow2.0 Alpha版已經發布,在2.0中最重要的API或者說到處都出現的API是誰,那無疑是Keras。因此用過2.0的人都會吐槽全世界都是Keras。今天我們就來說說Keras這個高級API。

?作者 |?湯興旺

?編輯 |?湯興旺

1 Keras概述

在TensorFlow2.0中,Keras是一個用于構建和訓練深度學習模型的高階 API。因此如果你正在使用TensorFow2.0,那么使用Keras構建深度學習模型是您的不二選擇。在Keras API中總共有如下三大塊:

在Modules中有構建訓練模型各種必備的組件,如激活函數activations、損失函數losses、優化器optimizers等;在Class中有Sequential和Model兩個類,它們用來堆疊模型;在Functions中有Input()函數,它用來實例化張量。

因此若您使用的深度學習框架是TensorFlow,而且是2.0版本,那么你就不可能不使用tensorflow.keras。這也就是使用過TensorFlow2.0版本的都在吐槽全世界都是Keras的原因。

2 Modules

通過上面的介紹,我們知道在Modules中有activations、losses、optimizers等構建訓練模型時各種必備的組件。下圖就是Modules中有所的模塊。

下面我們詳細說說里面最常見的幾個模塊應該如何使用。

1. 常用的數據集(datasets)


在TensorFlow2.0中,常用的數據集需要使用tf.keras.datasets來加載,在datasets中有如下數據集。

對于上圖中的數據集我們可以像下面這樣加載

(train_images,train_labels),(test_images,test_labels)= keras.datasets.fashion_mnist.load_data()

當然我們平時使用的數據集肯定不在于此,這些數據集都是些最基礎的數據集。對于自己的數據如何讀取,請期待我們下次的分享。

2. 神經網絡層(Layers)


在構建深度學習網絡模型時,我們需要定制各種各樣的層結構。這時候就要用到layers了,下圖是TensorFlow2.0中部分層,它們都是Layer的子類。

那么我們如何使用layer來構建模型呢?方法如下:

from tensorflow.keras import layers

layers.Conv2D()

layers.MaxPool2D()

layers.Flatten()

layers.Dense()

3. 激活函數(Optimizers)


在構建深度學習網絡時,我們經常需要選擇激活函數來使網絡的表達能力更強。下面將介紹TensorFlow2.0中的激活函數及它們應該在TensorFlow2.0中該如何使用。下圖是TensorFlow2.0中部分激活函數:

from tensorflow.keras import layers

layers.Conv2D(...,activation='relu')

layers.Dense(...,activation='softmax')

4. 優化器(activations)


通常當我們準備好數據,設計好模型后,我們就需要選擇一個合適的優化器(Optimizers)對模型進行優化。下面將介紹TensorFlow2.0中的優化器及他們應該在TensorFlow2.0中該如何使用。下圖是TensorFlow2.0中所有的優化器,它們都是Optimizer的子類。

對于優化器的使用你可以像下面這樣使用:

optimizers = tf.keras.optimizers.Adam()

optimizers = tf.keras.optimizers.SGD()

...


5. 損失函數(Losses)


我們知道當我們設計好模型時我們需要優化模型,所謂的優化就是優化網絡權值使損失函數值變小,但是損失函數變小是否能代表精度越高呢?那么多的損失函數,我們又該如何選擇呢?接下來我們了解下在TensorFlow2.0中如何使用損失函數。下圖是TensorFlow2.0中所有的損失函數,它們都是Loss的子類。

對于損失函數的使用你可以像下面這樣使用:

loss = tf.keras.losses.SparseCategoricalCrossentropy()

loss = tf.keras.losses.mean_squared_error()

...

3 Class

在Class中有Sequential和Model兩個類,它們分別是用來堆疊網絡層和把堆疊好的層實例化可以訓練的模型。


1. Model


對于實例化Model有下面兩種方法

(1).使用keras.Model API

import tensorflow as tftf.keras.Model(inputs=inputs, outputs=outputs)

(2).繼承Model類

import tensorflow as tfclass MyModel(tf.keras.Model):


2. Sequential


在TensorFlow2.0中,我們可以使用Sequential模型。具體方式如下:

model = keras.Sequential()

model =?model.add(layers.Conv2D(input_shape=(x_train.shape[1], x_train.shape[2],x_train.shape[3]),filters=32,kernel_size=(3,3), strides=(1,1), padding='valid',activation='relu'))

model.add(layers.MaxPool2D(pool_size=(2,2)))

model.add(layers.Flatten())model.add(layers.Dense(32,activation='relu'))

model.add(layers.Dense(10, activation='softmax'))

model.compile(optimizer=keras.optimizers.Adam(),loss=keras.losses.SparseCategoricalCrossentropy(),metrics=['accuracy'])

4 Functions

在Functions中,有一個Input函數,其用來實例化Keras張量。對于Input函數,它有如下參數

tf.keras.Input(

具體方法如下:

x = Input(shape=(32,))

5 簡單的圖像分類模型實例

#1導入相應的API

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers

#2加載數據

(train_images,train_labels),(test_images,test_labels)= keras.datasets.fashion_mnist.load_data()

#3構建網絡

model = keras.Sequential()

model =?model.add(layers.Conv2D(input_shape=(x_train.shape[1], x_train.shape[2],x_train.shape[3]),filters=32,kernel_size=(3,3), strides=(1,1), padding='valid',activation='relu'))

model.add(layers.MaxPool2D(pool_size=(2,2)))

model.add(layers.Flatten())model.add(layers.Dense(32,activation='relu'))

model.add(layers.Dense(10, activation='softmax'))

model.compile(optimizer=keras.optimizers.Adam(),loss=keras.losses.SparseCategoricalCrossentropy(),metrics=['accuracy'])

#4模型顯示

model.summary()

#5模型訓練

model_train=model.fit(x_train, y_train, batch_size=64, epochs=5, validation_split=0.1)

總結

在本講中,我們簡單的了解了TensorFlow2.0中高級API Keras是如何使用的,我們可以看到Keras真的是無處不在,如果你想學好TensorFlow2.0,那么你必須掌握好Kears。

下期預告:如何讀取自己的數據集及數據的使用。

最近直播

今日看圖猜技術

網絡結構

更多精彩內容請關注知乎專欄《有三AI學院》

轉載文章請后臺聯系

侵權必究

往期精選

  • 【TensorFlow2.0】TensorFlow2.0專欄上線,你來嗎?

  • 【AI初識境】從3次人工智能潮起潮落說起

  • 【AI初識境】從頭理解神經網絡-內行與外行的分水嶺

  • 【AI初識境】近20年深度學習在圖像領域的重要進展節點

  • 【AI初識境】激活函數:從人工設計到自動搜索

  • 【AI初識境】什么是深度學習成功的開始?參數初始化

  • 【AI初識境】深度學習模型中的Normalization,你懂了多少?

  • 【AI初識境】為了圍剿SGD大家這些年想過的那十幾招

  • 【AI初識境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么?

  • 【AI初識境】如何增加深度學習模型的泛化能力

  • 【AI初識境】深度學習模型評估,從圖像分類到生成模型

  • 【AI初識境】深度學習中常用的損失函數有哪些?

  • 【AI初識境】給深度學習新手做項目的10個建議

  • 【AI不惑境】數據壓榨有多狠,人工智能就有多成功

  • 【AI不惑境】網絡深度對深度學習模型性能有什么影響?

  • 【AI不惑境】網絡的寬度如何影響深度學習模型的性能?

  • 【AI不惑境】學習率和batchsize如何影響模型的性能?

  • 【完結】深度學習CV算法工程師從入門到初級面試有多遠,大概是25篇文章的距離

  • 【完結】優秀的深度學習從業者都有哪些優秀的習慣

  • 【完結】給新手的12大深度學習開源框架快速入門項目

  • 【完結】總結12大CNN主流模型架構設計思想

  • 創業第一天,有三AI扔出了深度學習的150多篇文章和10多個專欄

  • 言有三新書預售,不貴,有料

  • 這個春天,有三最后一月的學習“季劃”招生

  • 有三AI VIP會員發售,你的私人AI顧問已上線

  • 有三AI知識星球官宣,BAT等大咖等你來撩

  • 有三AI小程序上線,把你的代碼show給世界

  • 揭秘7大AI學習板塊,這個星球推薦你擁有

總結

以上是生活随笔為你收集整理的【TensorFlow2.0】以后我们再也离不开Keras了?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。