成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用TensorFlow訓練圖像分類模型的指南

譯文 精選
人工智能
本文將和您共同探討計算機視覺(Computer Vision)的一種應用——圖像分類,并逐步展示如何使用TensorFlow,在小型圖像數(shù)據(jù)集上進行模型的訓練。

譯者 | 陳峻

審校 | 孫淑娟

眾所周知,人類在很小的時候就學會了識別和標記自己所看到的事物。如今,隨著機器學習和深度學習算法的不斷迭代,計算機已經(jīng)能夠以非常高的精度,對捕獲到的圖像進行大規(guī)模的分類了。目前,此類先進算法的應用場景已經(jīng)涵括到了包括:解讀肺部掃描影像是否健康,通過移動設(shè)備進行面部識別,以及為零售商區(qū)分不同的消費對象類型等領(lǐng)域。

下面,我將和您共同探討計算機視覺(Computer Vision)的一種應用——圖像分類,并逐步展示如何使用TensorFlow,在小型圖像數(shù)據(jù)集上進行模型的訓練。

1、數(shù)據(jù)集和目標

在本示例中,我們將使用MNIST數(shù)據(jù)集的從0到9的數(shù)字圖像。其形態(tài)如下圖所示:

圖片

我們訓練該模型的目的是為了將圖像分類到其各自的標簽下,即:它們在上圖中各自對應的數(shù)字處。通常,深度神經(jīng)網(wǎng)絡(luò)架構(gòu)會提供一個輸入、一個輸出、兩個隱藏層(Hidden Layers)和一個用于訓練模型的Dropout層。而CNN或卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)是識別較大圖像的首選,它能夠在減少輸入量的同時,捕獲到相關(guān)的信息。

2、準備工作

首先,讓我們通過TensorFlow、to_categorical(用于將數(shù)字類的值轉(zhuǎn)換為其他類別)、Sequential、Flatten、Dense、以及用于構(gòu)建神經(jīng)網(wǎng)絡(luò)架構(gòu)的 Dropout,來導入所有相關(guān)的代碼庫。您可能會對此處提及的部分代碼庫略感陌生。我會在下文中對它們進行詳細的解釋。

3、超參數(shù)

  • 我將通過如下方面,來選擇正確的超參數(shù)集:

  • 首先,讓我們定義一些超參數(shù)作為起點。后續(xù),您可以針對不同的需求,對其進行調(diào)整。在此,我選擇了128作為較小的批量尺寸(batch size)。其實,批量尺寸可以取任何值,但是2的冪次方大小往往能夠提高內(nèi)存的效率,因此應作為首選。值得注意的是,在決定合適的批量尺寸時,其背后的主要參考依據(jù)是:過小的批量尺寸會使收斂過于繁瑣,而過大的批量尺寸則可能并不適合您的計算機內(nèi)存。
  • 讓我們將epoch(訓練集中每一個樣本都參與一次訓練)的數(shù)量保持為50 ,以實現(xiàn)對模型的快速訓練。epoch數(shù)值越低,越適合小而簡單的數(shù)據(jù)集。
  • 接著,您需要添加隱藏層。在此,我為每個隱藏層都保留了128個神經(jīng)元。當然,你也可以用64和32個神經(jīng)元進行測試。就本例而言,像MINST這樣的簡單數(shù)據(jù)集,我并不建議使用較高的數(shù)值。
  • 您可以嘗試不同的學習率(learning rate),例如0.01、0.05和0.1。在本例中,我將其保持為0.01。
  • 對于其他超參數(shù),我將衰減步驟(decay steps)和衰減率(decay rate)分別選擇為2000和0.9。而隨著訓練的進行,它們可以被用來降低學習率。
  • 在此,我選擇Adamax作為優(yōu)化器。當然,您也可以選擇諸如Adam、RMSProp、SGD等其他優(yōu)化器。
import tensorflow as tf
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense, Dropout
params = {
'dropout': 0.25,
'batch-size': 128,
'epochs': 50,
'layer-1-size': 128,
'layer-2-size': 128,
'initial-lr': 0.01,
'decay-steps': 2000,
'decay-rate': 0.9,
'optimizer': 'adamax'
}
mnist = tf.keras.datasets.mnist
num_class = 10
# split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# reshape and normalize the data
x_train = x_train.reshape(60000, 784).astype("float32")/255
x_test = x_test.reshape(10000, 784).astype("float32")/255
# convert class vectors to binary class matrices
y_train = to_categorical(y_train, num_class)
y_test = to_categorical(y_test, num_class)

4、創(chuàng)建訓練和測試集

由于TensorFlow庫也包括了MNIST數(shù)據(jù)集,因此您可以通過調(diào)用對象上的 datasets.mnist ,再調(diào)用load_data() 的方法,來分別獲取訓練(60,000個樣本)和測試(10,000個樣本)的數(shù)據(jù)集。

接著,您需要對訓練和測試的圖像進行整形和歸一化。其中,歸一化會將圖像的像素強度限制在0和1之間。

最后,我們使用之前已導入的to_categorical 方法,將訓練和測試標簽轉(zhuǎn)換為已分類標簽。這對于向TensorFlow框架傳達輸出的標簽(即:0到9)為類(class),而不是數(shù)字類型,是非常重要的。

5、設(shè)計神經(jīng)網(wǎng)絡(luò)架構(gòu)

下面,讓我們來了解如何在細節(jié)上設(shè)計神經(jīng)網(wǎng)絡(luò)架構(gòu)。

我們通過添加Flatten ,將2D圖像矩陣轉(zhuǎn)換為向量,以定義DNN(深度神經(jīng)網(wǎng)絡(luò))的結(jié)構(gòu)。輸入的神經(jīng)元在此處對應向量中的數(shù)字。

接著,我使用Dense() 方法,添加兩個隱藏的密集層,并從之前已定義的“params”字典中提取各項超參數(shù)。我們可以將“relu”(Rectified Linear Unit)作為這些層的激活函數(shù)。它是神經(jīng)網(wǎng)絡(luò)隱藏層中最常用的激活函數(shù)之一。

然后,我們使用Dropout方法添加Dropout層。它將被用于在訓練神經(jīng)網(wǎng)絡(luò)時,避免出現(xiàn)過擬合(overfitting)。畢竟,過度擬合模型傾向于準確地記住訓練集,并且無法泛化那些不可見(unseen)的數(shù)據(jù)集。

輸出層是我們網(wǎng)絡(luò)中的最后一層,它是使用Dense() 方法來定義的。需要注意的是,輸出層有10個神經(jīng)元,這對應于類(數(shù)字)的數(shù)量。

# Model Definition
# Get parameters from logged hyperparameters
model = Sequential([
Flatten(input_shape=(784, )),
Dense(params('layer-1-size'), activatinotallow='relu'),
Dense(params('layer-2-size'), activatinotallow='relu'),
Dropout(params('dropout')),
Dense(10)
])
lr_schedule =
tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=experiment.get_parameter('initial-lr'),
decay_steps=experiment.get_parameter('decay-steps'),
decay_rate=experiment.get_parameter('decay-rate')
)
loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adamax',
loss=loss_fn,
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=experiment.get_parameter('batch-size'),
epochs=experiment.get_parameter('epochs'),
validation_data=(x_test, y_test),)
score = model.evaluate(x_test, y_test)
# Log Model
model.save('tf-mnist-comet.h5')

6、訓練

至此,我們已經(jīng)定義好了架構(gòu)。下面讓我們用給定的訓練數(shù)據(jù),來編譯和訓練神經(jīng)網(wǎng)絡(luò)。

首先,我們以初始學習率、衰減步驟和衰減率作為參數(shù),使用ExponentialDecay(指數(shù)衰減學習率)來定義學習率計劃。

其次,將損失函數(shù)定義為CategoricalCrossentropy(用于多類式分類)。

接著,通過將優(yōu)化器 (即:adamax)、損失函數(shù)、以及各項指標(由于所有類都同等重要、且均勻分布,因此我選擇了準確性)作為參數(shù),來編譯模型。

然后,我們通過使用x_train、y_train、batch_size、epochs和validation_data去調(diào)用一個擬合方法,并擬合出模型。

同時,我們調(diào)用模型對象的評估方法,以獲得模型在不可見數(shù)據(jù)集上的表現(xiàn)分數(shù)。

最后,您可以使用在模型對象上調(diào)用的save方法,保存要在生產(chǎn)環(huán)境中部署的模型對象。

7、小結(jié)

綜上所述,我們討論了為圖像分類任務,訓練深度神經(jīng)網(wǎng)絡(luò)的一些入門級的知識。您可以將其作為熟悉使用神經(jīng)網(wǎng)絡(luò),進行圖像分類的一個起點。據(jù)此,您可了解到該如何選擇正確的參數(shù)集、以及架構(gòu)背后的思考邏輯。

原文鏈接:https://www.kdnuggets.com/2022/12/guide-train-image-classification-model-tensorflow.html

責任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2020-10-27 09:37:43

PyTorchTensorFlow機器學習

2022-06-29 09:00:00

前端圖像分類模型SQL

2017-08-28 21:31:37

TensorFlow深度學習神經(jīng)網(wǎng)絡(luò)

2023-01-06 19:02:23

應用技術(shù)

2017-11-01 15:13:49

TensorFlow神經(jīng)網(wǎng)絡(luò)深度學習

2024-01-29 00:24:07

圖像模型預訓練

2018-04-09 10:20:32

深度學習

2022-09-20 23:42:15

機器學習Python數(shù)據(jù)集

2022-10-30 15:00:40

小樣本學習數(shù)據(jù)集機器學習

2018-08-30 09:36:10

編程語言Python機器學習

2021-11-02 09:40:50

TensorFlow機器學習人工智能

2024-05-23 12:57:59

2024-05-28 08:11:44

SpringTensorFlow訓練

2020-01-02 14:13:01

機器學習模型部署預測

2023-11-17 08:46:26

2024-12-23 06:30:00

目標檢測圖像分類YOLO

2024-07-22 11:14:36

2023-11-10 09:41:44

Python代碼

2018-03-26 20:49:08

圖像分類

2023-12-05 15:44:46

計算機視覺FastAPI
點贊
收藏

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

主站蜘蛛池模板: 6996成人影院网在线播放 | 国产一区二区免费在线 | 性高湖久久久久久久久aaaaa | 国产日韩欧美在线观看 | 在线免费av观看 | 在线成人免费观看 | 国产农村妇女毛片精品久久麻豆 | 久草福利 | 请别相信他免费喜剧电影在线观看 | 求个av网址 | 日本在线免费看最新的电影 | 久久爱综合 | 欧美日韩中文字幕在线播放 | 久久i | av中文字幕网 | 成人午夜精品 | 午夜精品久久久久久不卡欧美一级 | 一级在线毛片 | 欧美亚洲激情 | 色婷婷精品久久二区二区蜜臂av | 久久精品成人 | 天堂一区在线观看 | 在线免费观看黄色网址 | 久久99精品视频 | 亚洲视频免费在线播放 | 天天色天天色 | 日韩精品在线视频免费观看 | 免费看国产片在线观看 | www.日本国产 | 精品国产乱码久久久久久中文 | 国产高清视频在线 | 99re视频在线免费观看 | 国内精品视频免费观看 | av在线免费观看网站 | 国产精品久久久久永久免费观看 | h视频在线免费 | 一区二区三区四区不卡视频 | 免费一级黄色电影 | 国产精品成人69xxx免费视频 | 国产精品久久久久影院色老大 | 久久九|