在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Estimator如何使您能夠輕松地在TensorFlow中構建線性模型

Tensorflowers ? 來源:李倩 ? 2018-11-29 17:32 ? 次閱讀

Estimator提供了大量用于在 TensorFlow 中處理線性模型的工具(以及其他工具)。本文簡要介紹了這些工具,并闡述了以下內容:

什么是線性模型

為何要使用線性模型

Estimator 如何使您能夠輕松地在 TensorFlow 中構建線性模型

如何使用 Estimator 將線性模型與深度學習相結合,從而汲取二者的優(yōu)勢

您可以閱讀這篇概述文章,判斷 Estimator 的線性模型工具是否對您有用。然后,閱讀Estimator 寬度學習和深度學習教程(https://github.com/tensorflow/models/tree/master/official/wide_deep),并放手一試。這篇概述文章使用了此教程中的代碼示例,但此教程更詳細地介紹了代碼。

對基本的機器學習概念以及Estimator有一定了解將有助于理解這篇概述文章。

什么是線性模型?

線性模型使用特征的單個加權和進行預測。舉例來說,如果您有關于人口年齡、受教育年數和每周工作時長的數據,那么模型可以學習每個數值的權重,并通過加權和估算某個人的薪水。您還可以使用線性模型進行分類。

一些線性模型會將加權和轉換為一種更便利的形式。例如,邏輯回歸將加權和代入邏輯函數,以將輸出轉換為介于 0 和 1 之間的值。不過,每個輸入特征仍然只有一個權重。

為何要使用線性模型?

近期研究已證實具有多層的更復雜神經網絡具有強大的功能,為何還要使用如此簡單的模型?

線性模型:

與深度神經網絡相比,訓練速度快

可以在非常大的特征集上取得很好的效果

可以使用無需反復調整學習速率等因素的算法進行訓練

可以比神經網絡更輕松地進行解讀和調試。您可以檢查分配給每個特征的權重,確定哪些特征對預測結果的影響最大

為理解機器學習提供了一個很好的起點

有廣泛的行業(yè)應用

Estimator 如何幫助您構建線性模型?

您可以在 TensorFlow 中從頭開始構建線性模型,而無需借助于特殊的 API。不過,Estimator 提供了一些工具,使您可以更輕松地構建有效的大型線性模型。

特征列和轉換

設計線性模型的主要操作包括將原始數據轉換為合適的輸入特征。TensorFlow 使用FeatureColumn抽象類來實現此類轉換。

FeatureColumn表示數據中的單個特征。FeatureColumn可能表示 “height” 等數量,也可能表示 “eye_color” 等類別(值來自一組離散概率,如 {'blue','brown','green'})。

對于 “height” 等連續(xù)特征和 “eye_color” 等類別特征,數據中的單個值可能先轉換為數字序列,然后再輸入到模型中。盡管如此,您還是可以通過FeatureColumn抽象類將該特征視為單個語義單元進行操作。您可以指定轉換并選擇要包括的特征,而無需處理饋送到模型的張量中的特定索引。

稀疏列

線性模型中的類別特征通常被轉換為稀疏向量,其中每個可能的值都具有對應的索引或 ID。例如,如果只有 3 種可能的眼睛顏色,您可以將 “eye_color” 表示為長度為 3 的向量:“brown” 為 [1, 0, 0],“blue” 為 [0, 1, 0],而 “green” 為 [0, 0, 1]。這些向量稱為 “稀疏” 向量,因為當可能值的集合非常大(例如包含所有英文單詞的集合)時,它們可能很長,且包含很多零。

雖然您不需要通過類別列來使用 Estimator 提供的線性模型工具,但是線性模型的優(yōu)勢之一是它們能夠處理大型稀疏向量。稀疏特征是 Estimator 提供的線性模型工具的主要用例。

編碼稀疏列:FeatureColumn自動將類別值轉換為向量,具體代碼如下所示:

eye_color = tf.feature_column.categorical_column_with_vocabulary_list( "eye_color", vocabulary_list=["blue", "brown", "green"])

其中eye_color是源數據中的一列的名稱。

您還可以為類別特征(您不知道此類特征的所有可能值)生成FeatureColumn。對于這種情況,您將使用categorical_column_with_hash_bucket(),它使用哈希函數為特征值分配索引。

education = tf.feature_column.categorical_column_with_hash_bucket( "education", hash_bucket_size=1000)

特征組合:由于線性模型為不同的特征分配獨立權重,因此它們無法了解特定特征值組合的相對重要性。如果您有 “favorite_sport” 和 “home_city” 這兩個特征,并且您嘗試預測某人是否喜歡穿紅色,此時線性模型將無法判斷來自圣路易斯的棒球迷是否特別喜歡穿紅色。

您可以通過創(chuàng)建新特征 “favorite_sport_x_home_city” 突破這個限制。對于給定用戶,此特征的值只是兩個源特征的值相連:例如 “baseball_x_stlouis”。這種組合特征稱為特征組合。

使用crossed_column()方法可輕松設置特征組合:

sport_x_city = tf.feature_column.crossed_column( ["sport", "city"], hash_bucket_size=int(1e4))

連續(xù)列

您可以如下所示地指定連續(xù)特征:

age = tf.feature_column.numeric_column("age")

雖然作為單個實數的連續(xù)特征通常可以直接輸入到模型中,但是 TensorFlow 也為此類列提供了有用的轉換。

分桶:分桶可將連續(xù)列轉換為類別列。此轉換使您能夠在特征組合中使用連續(xù)特征,或學習特定值范圍特別重要的情況。

分桶將可能的值范圍劃分為子范圍(稱為分桶):

age_buckets = tf.feature_column.bucketized_column( age, boundaries=[18, 25, 30, 35, 40, 45, 50, 55, 60, 65])

值所在的分桶便是該值的類別標簽。

輸入函數

FeatureColumn為模型提供輸入數據規(guī)范,指示如何表示和轉換數據。但它們本身不提供數據。您需要通過輸入函數提供數據。

輸入函數必須返回一個張量字典。每個鍵對應一個FeatureColumn的名稱。每個鍵的值都是一個張量,其中包含該特征針對所有數據實例的值。請參閱預創(chuàng)建的 Estimator,詳細了解輸入函數;另請參閱寬度學習和深度學習教程中的input_fn,查看輸入函數的示例實現。

輸入函數會傳遞給train()和evaluate()調用(用于啟動訓練和測試操作),如下一部分中所述。

線性 Estimator

TensorFlow Estimator 類為回歸模型和分類模型提供統(tǒng)一的訓練和評估工具。它們負責訓練和評估循環(huán)的細節(jié)部分,使用戶可以專注于模型輸入和架構。

要構建線性 Estimator,您可以使用tf.estimator.LinearClassifierEstimator 或tf.estimator.LinearRegressorEstimator

(分別用于分類和回歸)。

與所有 TensorFlow Estimator 一樣,要運行 Estimator,只需執(zhí)行以下操作即可:

實例化 Estimator 類。對于兩個線性 Estimator 類,將FeatureColumn列表傳遞給構造函數

調用 Estimator 的train()方法以對其進行訓練

調用 Estimator 的evaluate()方法以查看其效果

例如:

e = tf.estimator.LinearClassifier( feature_columns=[ native_country, education, occupation, workclass, marital_status, race, age_buckets, education_x_occupation, age_buckets_x_race_x_occupation], model_dir=YOUR_MODEL_DIRECTORY)e.train(input_fn=input_fn_train, steps=200)# Evaluate for one step (one pass through the test data).results = e.evaluate(input_fn=input_fn_test)# Print the stats for the evaluation.for key in sorted(results): print("%s: %s" % (key, results[key]))

寬度學習和深度學習

tf.estimator模塊還提供一個 Estimator 類,使您能夠一同訓練線性模型和深度神經網絡。這種新方法結合了線性模型 “記憶” 關鍵特征的能力以及神經網絡的泛化能力。請使用tf.estimator.DNNLinearCombinedClassifier創(chuàng)建這種 “寬度學習和深度學習” 模型:

e = tf.estimator.DNNLinearCombinedClassifier( model_dir=YOUR_MODEL_DIR, linear_feature_columns=wide_columns, dnn_feature_columns=deep_columns, dnn_hidden_units=[100, 50])

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 線性模型
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7839
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60563

原文標題:帶你輕松使用 TensorFlow 創(chuàng)建大型線性模型

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用TensorFlow構建機器學習模型

    在這篇文章,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學習模型。
    的頭像 發(fā)表于 01-08 09:25 ?1022次閱讀
    如何使用<b class='flag-5'>TensorFlow</b><b class='flag-5'>構建</b>機器學習<b class='flag-5'>模型</b>

    TensorFlow是什么

    TensorFlow 深度學習模型的應用,使讀者可以輕松地將
    發(fā)表于 07-22 10:14

    TensorFlow XLA加速線性代數編譯器

    版本。用時需要從源代碼構建它。從源代碼構建 TensorFlow,需要 TensorFlow 版的 LLVM 和 Bazel。
    發(fā)表于 07-28 14:31

    淺談深度學習之TensorFlow

    模型取得讓人滿意的精度,就可以部署在生產環(huán)境中了。拓展閱讀在 TensorFlow 1.3 ,增加了一個名為 TensorFlow Estimat
    發(fā)表于 07-28 14:34

    TensorFlow實現簡單線性回歸

    本小節(jié)直接從 TensorFlow contrib 數據集加載數據。使用隨機梯度下降優(yōu)化器優(yōu)化單個訓練樣本的系數。實現簡單線性回歸的具體做法導入需要的所有軟件包: 神經網絡,所有的
    發(fā)表于 08-11 19:34

    TensorFlow實現多元線性回歸(超詳細)

    TensorFlow 實現簡單線性回歸的基礎上,可通過權重和占位符的聲明稍作修改來對相同的數據進行多元
    發(fā)表于 08-11 19:35

    高階API構建模型和數據集使用

    能擬合或逼近現實世界事物或現象的數學模型,故樣本數據大,可以覆蓋事物或現象所有特征時,可以越準確的識別事物,這也是大數據時代,數據是燃料的觀點。TensorFlow是一個神經網絡軟件框架,通過
    發(fā)表于 11-04 07:49

    如何使用pycoral、tensorflow-lite和edgetpu構建核心最小圖像?

    如果您能告訴我們如何使用 pycoral、tensorflow-lite 和 edgetpu 構建核心最小圖像,我們將不勝感激。
    發(fā)表于 06-05 10:53

    TensorFlow模型詳解與應用

    通用的模型訓練以及評測的函數接口 (train_model, evaluate_model, infer_model),Estimator 類中用一個統(tǒng)一函數 call_model_fn 來實現
    發(fā)表于 09-28 14:28 ?0次下載
    <b class='flag-5'>TensorFlow</b><b class='flag-5'>模型</b>詳解與應用

    序列 SAR ADC 使您能夠 PSoC 4 上配置和使用不同操作模式的 SAR ADC

    序列 SAR ADC 使您能夠 PSoC 4 上配置和使用不同操作模式的 SAR ADC
    發(fā)表于 10-10 08:30 ?17次下載
    序列 SAR ADC <b class='flag-5'>使</b><b class='flag-5'>您能夠</b><b class='flag-5'>在</b> PSoC 4 上配置和使用不同操作模式的 SAR ADC

    利用TensorFlow.js,D3.js 和 Web 的力量使訓練模型的過程可視化

    TensorFlow.js 將機器學習引入 JavaScript 和 Web。 我們將利用這個很棒的框架來構建一個深度神經網絡模型。這個模型能夠
    的頭像 發(fā)表于 08-08 14:24 ?7016次閱讀

    如何使用顯式核方法改進線性模型

    本文使用 tf.contrib.learn(TensorFlow 的高階機器學習 API)Estimator 構建我們的機器學習模型。如果您不熟悉此 API,不妨通過
    的頭像 發(fā)表于 12-02 11:11 ?2063次閱讀
    如何使用顯式核方法改進<b class='flag-5'>線性</b><b class='flag-5'>模型</b>

    如何在TensorFlow構建并訓練CNN模型

    TensorFlow構建并訓練一個卷積神經網絡(CNN)模型是一個涉及多個步驟的過程,包括數據預處理、
    的頭像 發(fā)表于 07-04 11:47 ?1014次閱讀

    keras模型tensorflow session

    在這篇文章,我們將討論如何將Keras模型轉換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經網絡API,它提供了一種簡單、快
    的頭像 發(fā)表于 07-05 09:36 ?570次閱讀

    tensorflow簡單的模型訓練

    本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?734次閱讀
    主站蜘蛛池模板: 性欧美videofree丝袜| 男女午夜免费视频| 国产午夜免费一区二区三区| 黄色大片三级| 日本三级成人午夜视频网| www色综合| 国产亚洲精品久久yy5099| 欧美簧片| 天天综合网天天综合色不卡| 狠狠色丁香婷婷综合| 国模绪| 久久永久视频| 日本精品一卡二卡≡卡四卡| 欧美三级大片在线观看| 色偷偷偷偷| 性欧美视频videos6一9| 天堂资源在线观看| 在线播放亚洲视频| 人人澡人人人人夜夜爽| 免费观看视频高清www| 国产香蕉在线精彩视频| 日本人69xxxxxxx69| www.av毛片| 黄a大片| 看片在线观看免费| 欧美女同网站| 日本啪啪小视频| 男男污肉高h坐便器调教| 亚洲一区二区三区网站| 男人操女人视频网站| 美女露出扒开尿口让男人桶| 午夜色在线| 四虎影院的网址| 四虎国产视频| 久久婷婷国产综合精品| 久久99精品久久久久久久野外| 你懂的视频在线看| 女人张开腿双腿让男人桶 | 欧美一级特黄aaaaaa在线看片 | 夜夜摸天天操| 五月天婷婷网亚洲综合在线|