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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

快速入门 TensorFlow2 模型部署

發布時間:2024/4/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速入门 TensorFlow2 模型部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習問題不僅是一個科學問題,更是一個工程問題。

大多數年輕的數據科學家都希望將大部分時間花在構建完美的機器學習模型上,但是企業不僅需要訓練一個完美的模型,同時也需要將其部署,向用戶提供便捷的服務。

如下圖所示,機器學習系統由機器學習代只包含一小部分,而在中間的小黑匣子周圍,所需要的基礎設施龐大而復雜。

因此,在實際應用中,一個優秀的程序員不僅要學會構建完美的機器學習模型上,同時還需要將其部署向用戶提供便捷的服務。

在本教程中,筆者將重點放到了機器學習模型部署上面,并使用最為熱門的 TensorFlow 2 框架完成實踐。

此教程內容節選自實驗樓近期好課《TensorFlow 2 模型部署方法實踐》,教程采用的實驗環境均為實驗樓提供的在線web環境。

強烈建議想跟著教程學習的小伙伴可以登陸實驗樓官網,直接上手敲代碼會更好。


預訓練模型使用方法

首先,我們聊聊預訓練模型使用方法

1.介紹

本節實驗將介紹 MobileNet 系列中的 MobileNetV2 模型,MobileNet 是為移動端和嵌入式端深度學習應用所設計的網絡,使得在 CPU 上訓練也能達到理想的速度要求。

后續的實驗中,我們將使用此模型進行部署演示。

2.知識點

  • Keras 導入預訓練模型
  • 預訓練模型的使用方法
  • 保存模型為 HDF5 格式
  • 保存模型為 SavedModel 格式

3.環境配置

目前,TensorFlow 2 已正式發布,你需要通過 pip install -U tensorflow 進行升級安裝。線上環境中,我們需要先卸載老版本,然后再安裝 TensorFlow 2。

# 解決線上環境的一些依賴問題,本地無需這些操作 !pip install --upgrade pip msgpack setuptools h5py !pip uninstall tensorflow -y !pip install -U --ignore-installed wrapt # 安裝 TensorFlow 2.0

4.選擇圖片

在本實驗中,我們使用 skimage 庫中的自帶圖片進行圖像識別。skimage 中自帶一張貓的圖片,稍后我們用這張圖片進行識別任務。

from skimage import data import matplotlib.pyplot as plt %matplotlib inline# skimage 中自帶一張貓的圖片 image = data.chelsea() plt.imshow(image)

(注:如果你對課程所使用的實驗樓 Notebook 在線環境不熟悉,可以先學習課程《實驗樓 Notebook 在線環境使用指南》。)

5.導入預訓練模型

接下來從 Keras-applications 中導入預訓練模型 MobileNetV2。由于原模型托管在海外服務器,在實驗樓環境中,需要將預訓練模型從實驗樓鏡像服務器下載到 ~/.keras/models 目錄下,方便后續載入模型。

# 下載預訓練模型到線上環境指定目錄 !wget -nc "https://labfile.oss.aliyuncs.com/courses/1435/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_1.0_224.h5" -P "/root/.keras/models" !wget -nc "https://labfile.oss.aliyuncs.com/courses/1435/imagenet_class_index.json" -P "/root/.keras/models"

通過指定權重 weights=‘imagenet’ 來載入 ImageNet 預訓練模型。

from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2# 載入 ImageNet 預訓練模型 model = MobileNetV2(weights='imagenet') model.summary()

6.數據處理

接下來,我們嘗試對上面的示例圖片進行識別,首先需要將圖片處理成預訓練模型可以輸入的形狀。我們將圖像放縮到 224*224 的大小,并在圖像矩陣前面增加一維,即將 (224,224,3) 的圖像矩陣變成 (1,224,224,3)。

然后,可以調用 preprocess_input 方法將向量處理成 MobileNetV2 最終支持的輸入類型。

!pip install opencv-python==4.1.2.30 # 安裝所需 OpenCV from tensorflow.keras.applications.mobilenet_v2 import preprocess_input import numpy as np import cv2# 將圖像放縮到 224*224 的大小 image = cv2.resize(image, (224, 224)) # 將圖像矩陣前面增加一維,即將 (224,224,3) 的圖像矩陣變成 (1,224,224,3) x = np.expand_dims(image, 0) # 預處理圖像,在 Keras 中,在傳入圖片數組值 (0-255) 的基礎之上, # 進行先除以 127.5,然后減 1,最后將值的范圍為放縮到 (-1,1) 上 x = preprocess_input(x) x.shape

7.模型預測

接下來,使用 model 中的 predict 對輸入數據進行預測,模型輸出為一個 (1,1000) 的向量,向量中每個元素表示對應標簽的預測值。

output = model.predict(x) output.shape

這里使用 decode_predictions 對模型輸出的向量進行解碼,解碼的結果就是預測的結果,這里 top=5 表示輸出前五個最有可能的類別。

from tensorflow.keras.applications.mobilenet_v2 import decode_predictions preds = decode_predictions(output, top=5) preds

通過輸出結果可以看到,模型預測圖片最可能的類別是 Egyptian cat。

8.保存模型

我們可以在訓練期間和訓練完成后,對模型進行保存,而模型部署就是使用保存后的模型進行實際應用。在訓練過程中, TensorFlow 2 提供了兩種方式來保存模型。

1)HDF5 文件

在實驗的一開始,我們下載下來的預訓練模型mobilenet_v2_weights_tf_dim_ordering_tf_kernels_1.0_224.h5 是 HDF5 格式的文件,可以將保存的模型視為單個二進制 blob,里面同時保存了模型權重、模型結構和優化器配置。

2)SavedModel

在 TensorFlow 2 中,還提供了 SavedModel 方式來保存模型,SavedModel 的優點是與語言無關,如可以在 Python 中訓練模型,然后在 Java 中加載。另外使用 TensorFlow Serving 來部署模型時必須使用 SavedModel 格式,SavedModel 轉換方法具體實現如下。

import tensorflow as tf import timesaved_model_path = './saved_models/{}'.format(int(time.time())) # 創建一個 SavedModel,并將其放在帶有 tf.keras.experimental.export_saved_model 的帶時間戳的目錄中 tf.keras.models.save_model(model, saved_model_path)

在 saved_model_path 目錄下,

. ├── assets ├── saved_model.pb └── variables ├── variables.data-00000-of-00001 └── variables.index

saved_model.pb 為數據流圖文件,它包含圖形結構, variables 文件夾中保存的是 ckpt 文件集合,variables.data-xxx 保存了參數的值,variables.index 保存了對應的各個參數。

9.實驗總結

在本節實驗中,我們學習了 Keras-applications 預訓練模型的使用方法,并將預訓練模型從 h5 格式轉換為 SavedModel 格式。在之后的實驗,我們都將使用本實驗中的模型、處理方法以及生成結果。下一節實驗中,我們將使用 TensorFlow Serving 讀取 SavedModel 進行部署。


《TensorFlow 2 模型部署方法實踐》的第一節實驗就結束了。想訪問后續教程的朋友,可以點擊《TensorFlow 2 模型部署方法實踐》,之后的實驗還有:

近期該課程正在特惠,當前還有試學機會可以體驗哦。

補充閱讀:

新人可先選擇實驗樓的入門課程學習:

《TensorFlow 2.0 新特性快速入門》

《實驗樓 Notebook 在線環境使用指南》

《JavaScript 基礎課程》

《Python Flask Web 框架》

總結

以上是生活随笔為你收集整理的快速入门 TensorFlow2 模型部署的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美啪视频 | 久久精品人妻av一区二区三区 | 九九热精品在线 | 日本少妇吞精囗交视频 | 国产日韩精品中文字无码 | 久久99精品久久久水蜜桃 | 97免费视频观看 | 亚洲综合成人av | 国产福利在线导航 | 久久久久久18| 日本网站免费 | 杨幂国产精品一区二区 | 法国空姐在线观看完整版 | 欧美aⅴ视频 | 国产一区不卡 | 国产在成人精品线拍偷自揄拍 | 久综合| ktv做爰视频一区二区 | 人妻少妇精品久久 | 亚洲男性天堂 | 中文字幕欧美色图 | 成人中文视频 | 伊人影院在线观看视频 | 五月天激情视频 | 亚洲免费中文 | 一级女人毛片 | 5个黑人躁我一个视频 | 99一区二区 | 3d动漫精品啪啪一区二区免费 | 一本色道久久88加勒比—综合 | 少妇野外性xx老女人野外性xx | 日本在线观看a | 五月婷婷在线播放 | 超碰按摩 | 少妇太紧太爽又黄又硬又爽 | 网址在线观看你懂的 | 亚洲图片欧美色图 | 免费在线h| 97精品人妻一区二区三区香蕉 | 给我免费观看片在线电影的 | 素人一区 | 免费av影视 | 亚洲一区小说 | 国产自精品 | 成年人黄色在线观看 | 国产二区自拍 | www.九九热.com | 91免费福利视频 | 韩国伦理在线 | 91丝袜呻吟高潮美腿白嫩在线观看 | 99情趣网| 国产午夜免费福利 | 日韩精品一二三四区 | 久久成人国产精品入口 | 黄色大片视频 | 欧美一级做性受免费大片免费 | 国产嫩草影院久久久 | 国产又粗又猛又爽又黄视频 | 有码在线播放 | a人片| 超碰1997| 日韩精品美女 | 黄色污污视频软件 | 午夜av免费在线观看 | 黑人与亚洲人色ⅹvideos | 午夜精品久久久久久99热 | 91国产一区二区 | 欧美日韩国产中文 | 欧美成欧美va | 蜜桃av影院| 能直接看的av网站 | 户外露出一区二区三区 | 不卡的毛片 | 精品一二三四区 | 91插插插影库永久免费 | 成年人看的网站 | 天天伊人网 | 疯狂做爰高潮videossex | av少妇 | 精品日韩在线观看 | 日本少妇在线 | 黄页在线观看 | 韩国中文字幕在线观看 | 男女涩涩网站 | 日本囗交做爰视频 | 狠狠爱免费视频 | 青青草视频在线免费观看 | 在线观看国产欧美 | 四虎视频在线观看 | 99久| 九九天堂网 | 91精品国产91久久久久久 | 天堂免费在线视频 | 久久入 | 91精品综合久久久久久五月天 | 久久午夜激情 | 欧美一区二区在线播放 | 在线观看天堂av | 国产一区二区视频在线 |