深度學習部署-tensorflow 部署方法
TensorFlow 是目前最為流行的機器學習框架之一,通過它我們可以便捷地構建機器學習模型。使用 TensorFlow 模型對外提供服務有若干種方式,本文將介紹如何使用 SavedModel 機制來編寫模型預測介面。
鳶尾花深層神經網路分類器
首先讓我們使用 TensorFlow 的深層神經網路模型來構建一個鳶尾花的分類器。完整的教程可以在 TensorFlow 的官方文件中檢視(Premade Estimators),我也提供了一份示例程式碼,託管在 GitHub 上( iris_dnn.py
),讀者可以克隆到本地進行測試。以下是部分程式碼摘要:
feature_columns =[tf.feature_column
for key in train_x.keys()]
classifier = tf.estimator.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[10, 10],
n_classes=3)
classifier.train(
input_fn=lambda: train_input_fn(train_x, train_y, batch_size=BATCH_SIZE),
steps=STEPS)
predictions = classifier.predict
input_fn=lambda: eval_input_fn(predict_x, labels=None, batch_size=BATCH_SIZE))
將模型匯出為 SavedModel 格式
TensorFlow 提供了 SavedModel 機制,用以將訓練好的模型匯出為外部檔案,供後續使用或對外提供服務。 Estimator
類的 export_savedmodel
方法接收兩個引數:匯出目錄和資料接收函式。該函式定義了匯出的模型將會對何種格式的引數予以響應。通常,我們會使用 TensorFlow 的 Example
型別來表示樣本和特徵。例如,鳶尾花樣本可以用如下形式表示:
Example
features=Features(
feature={
'SepalLength': Feature(float_list=FloatList(value=[5.1])),
'SepalWidth': Feature(float_list=FloatList(value=[3.3])),
'PetalLength': Feature(float_list=FloatList(value=[1.7])),
'PetalWidth': Feature(float_list=FloatList(value=[0.5])),
}
)
)
接收函式會收到序列化後的 Example
物件,將其轉化成一組 Tensor 供模型消費。TensorFlow 提供了一些工具函式幫助我們完成這些轉換。首先,我們將 feature_columns
陣列轉化成 Feature
字典,作為反序列化的規格標準,再用它生成接收函式:
# [
# _NumericColumn(key='SepalLength', shape=(1,), dtype=tf.float32),
# ...
# ]
feature_columns = [tf.feature_column.numeric_column(key=key)
for key in train_x.keys()]
# {
# 'SepalLength': FixedLenFeature(shape=(1,), dtype=tf.float32),
# ...
# }
feature_spec = tf.feature_column.make_parse_example_spec(feature_columns)
# 構建接收函式,並匯出模型。
serving_input_receiver_fn =tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
export_dir = classifier.export_savedmodel('export', serving_input_receiver_fn)
使用命令列工具檢測 SavedModel
每次匯出模型都會生成一個帶有時間戳的目錄,裡面包含了該模型的引數資訊:
export/1524907728/saved_model.pb
export/1524907728/variables
export/1524907728/variables/variables.data-00000-of-00001
export/1524907728/variables/variables.index
TensorFlow 提供的命令列工具可用於檢視匯出模型的內容,甚至可以直接呼叫預測函式:
$ saved_model_cli show --dir export/1524906774 \
--tag_set serve --signature_def serving_default
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
dtype: DT_STRING
shape: (-1)
The given SavedModel SignatureDef contains the following output(s):
outputs['classes'] tensor_info:
dtype: DT_STRING
shape: (-1, 3)
outputs['scores'] tensor_info:
dtype:
相關推薦
深度學習部署-tensorflow 部署方法
TensorFlow 是目前最為流行的機器學習框架之一,通過它我們可以便捷地構建機器學習模型。使用 TensorFlow 模型對外提供服務有若干種方式,本文將介紹如何使用 SavedModel 機制來編寫模型預測介面。鳶尾花深層神經網路分類器首先讓我們使用 TensorFlo
深度學習模型的量化方法(論文學習 & tensorflow lite量化方法)
curl -L "https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz" | tar -C tensorflow/examples/label_imag
深度學習--解決梯度爆炸方法(含TensorFlow程式碼)
在深層的神經網路中,經常碰到梯度消失或者梯度爆炸問題。我先講一下原理,在求導的時候因為是鏈式法則,哪怕所有層的導數都很接近1,比如0.9,那麼在20層之後0.9的20次方也只剩0.1左右。這就意味著越深層的誤差難以影響到淺層的權重。若是導數再小一點這個梯度就直接消失了接近0。
深度學習最全優化方法總結比較及在tensorflow實現
梯度下降演算法針對凸優化問題原則上是可以收斂到全域性最優的,因為此時只有唯一的區域性最優點。而實際上深度學習模型是一個複雜的非線性結構,一般屬於非凸問題,這意味著存在很多區域性最優點(鞍點),採用梯度下降演算法可能會陷入區域性最優,這應該是最頭疼的問題。這點和進化演算法如遺傳
深度學習最全優化方法---來源於知乎
ati 默認 tle 設置 約束 apt 接下來 nali ini 寫在前面:本寶寶好想只了解sgd,monument,adagrad,adam深度學習最全優化方法總結比較(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
深度學習(TensorFlow)環境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3
缺失 應該 否則 wid -c 方式 *** 也不能 collected 緊接著上一篇的文章《深度學習(TensorFlow)環境搭建:(二)Ubuntu16.04+1080Ti顯卡驅動》,這篇文章,主要講解如何安裝CUDA+CUDNN,不過前提是我們是已經把NVID
深度學習之tensorflow (一)
spa 計算 put range mst reduce logs 分析 pen 一、TensorFlow簡介 1.TensorFlow定義: tensor :張量,N維數組 Flow : 流,基於數據流圖的計算 TensorFlow : 張量從圖像
Vue深度學習(4)-方法與事件處理器
() 一個 span 修飾 語句 特殊變量 方法 left stop 方法處理器 可以用 v-on 指令監聽 DOM 事件: <div id="app"> <button v-on:click = "greet">Greet<
深度學習篇——Tensorflow配置(傻瓜安裝模式)
error parse left 圖片 das adding list nac html5 前言 如果你是一個完美主義者,那麽請繞過此文,請參考《深度學習篇——Tensorflow配置(完美主義模式)》 安裝 pip install tensorflow ok,只要不報錯
深度學習之 TensorFlow(四):卷積神經網絡
padding valid 叠代 val 分析 此外 nbsp drop BE 基礎概念: 卷積神經網絡(CNN):屬於人工神經網絡的一種,它的權值共享的網絡結構顯著降低了模型的復雜度,減少了權值的數量。卷積神經網絡不像傳統的識別算法一樣,需要對數據進行特征提取和數據重
快速上手深度學習 掌握TensorFlow模型構建與開發
第5章 第6章 優勢 損失函數 學習過程 htm 項目 機器 過程 第1章 課程介紹介紹機器學習的背景,介紹tensorflow的背景,介紹課程python,numpy,virtualenv等前置學習內容,安裝tensorflow1-1 導學1-2 課程安排1-3 深度學習
《白話深度學習與TensorFlow》中文版PDF
tps aid fff watermark href 復制 ESS 中文版 images 下載:https://pan.baidu.com/s/15dpKftB5VKqRvRyqWg94wA 《白話深度學習與TensorFlow》中文版PDF 經典學習資料,帶目錄和書簽,可
深度學習框架Tensorflow學習與應用(5到8)
五. 03-1 迴歸 # coding: utf-8 # In[2]: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # In[3]: #使用numpy生成200個隨機點 x_
【深度學習】Tensorflow函式詳解
目錄 tf.truncated_normal tf.random_normal tf.nn.conv2d tf.nn.max_pool tf.reshape tf.nn.softmax tf.reduce_sum tf.reduce_max,tf.r
【深度學習】Tensorflow——CNN 卷積神經網路 2
轉自https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/5-05-CNN3/ 目錄 圖片處理 建立卷積層 建立全連線層 選優化方法 完整程式碼
【深度學習】Tensorflow——CNN 卷積神經網路 1
轉自https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/5-04-CNN2/ 這一次我們會說道 CNN 程式碼中怎麼定義 Convolutional 的層和怎樣進行 pooling. 基於上一次卷積神經網路的介
分享《深度學習之TensorFlow:入門、原理與進階實戰》PDF+源代碼
image pro 源代碼 代碼 復制 進階 com nag 分享圖片 下載:https://pan.baidu.com/s/1zI-pblJ5dEwjGVe-QQP9hQ 更多資料:http://blog.51cto.com/3215120 《深度學習之TensorFlo
深度學習情感分類常用方法(綜述)
論文原文:Deep Learning for Sentiment Analysis: A Survey 原文地址:https://arxiv.org/ftp/arxiv/papers/1801/1801.07883.pdf (1)文件級情感分類: 主要方法如下圖所示: (2)語句級情感分類
人工智慧熱門圖書(深度學習、TensorFlow)免費送!
歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 這個雙十一,人工智慧市場火爆,從智慧音箱到智慧分揀機器人,人工智慧已逐漸滲透到我們的生活的方方面面。網易雲社群聯合博文視點為大家帶來人工智慧熱門圖書專場,這些書籍將引領我們一起去解密人工智慧,瞭解這位即將走進我們生活的“朋友”。
21 個專案玩轉深度學習——基於TensorFlow 的實踐詳解
“對於我們這些想要了解深度學習的同學們來說,有時候會感覺到無從下手,刷了好幾遍的西瓜書還有一大堆資料還是感覺沒學到什麼,目前來說資料還是相對比較多的,這裡推薦一本適合新手入門的書籍。” 《21 個專案玩轉深度學習——基於TensorFlow 的實踐詳解》以實踐為導向,深入介紹了深度學習技術和