日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

?作者 |?湯興旺

?編輯 |?湯興旺

1 Keras概述

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

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

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

2 Modules

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

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

1. 常用的數(shù)據(jù)集(datasets)


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

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

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

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

2. 神經(jīng)網(wǎng)絡層(Layers)


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

那么我們?nèi)绾问褂胠ayer來構建模型呢?方法如下:

from tensorflow.keras import layers

layers.Conv2D()

layers.MaxPool2D()

layers.Flatten()

layers.Dense()

3. 激活函數(shù)(Optimizers)


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

from tensorflow.keras import layers

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

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

4. 優(yōu)化器(activations)


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

對于優(yōu)化器的使用你可以像下面這樣使用:

optimizers = tf.keras.optimizers.Adam()

optimizers = tf.keras.optimizers.SGD()

...


5. 損失函數(shù)(Losses)


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

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

loss = tf.keras.losses.SparseCategoricalCrossentropy()

loss = tf.keras.losses.mean_squared_error()

...

3 Class

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


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函數(shù),其用來實例化Keras張量。對于Input函數(shù),它有如下參數(shù)

tf.keras.Input(

具體方法如下:

x = Input(shape=(32,))

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

#1導入相應的API

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers

#2加載數(shù)據(jù)

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

#3構建網(wǎng)絡

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。

下期預告:如何讀取自己的數(shù)據(jù)集及數(shù)據(jù)的使用。

最近直播

今日看圖猜技術

網(wǎng)絡結構

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

轉載文章請后臺聯(lián)系

侵權必究

往期精選

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

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

  • 【AI初識境】從頭理解神經(jīng)網(wǎng)絡-內(nèi)行與外行的分水嶺

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 【完結】優(yōu)秀的深度學習從業(yè)者都有哪些優(yōu)秀的習慣

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

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

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

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

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

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

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

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

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

總結

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。