91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用TensorFlow決策森林創(chuàng)建提升樹模型

谷歌開發(fā)者 ? 來源:TensorFlow ? 作者:TensorFlow ? 2022-04-19 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

發(fā)布人:TensorFlow 團(tuán)隊的 Mathieu Guillame-Bert 和 Josh Gordon

隨機森林和梯度提升樹這類的決策森林模型通常是處理表格數(shù)據(jù)最有效的可用工具。與神經(jīng)網(wǎng)絡(luò)相比,決策森林具有更多優(yōu)勢,如配置過程更輕松、訓(xùn)練速度更快等。使用樹可大幅減少準(zhǔn)備數(shù)據(jù)集所需的代碼量,因為這些樹本身就可以處理數(shù)字、分類和缺失的特征。此外,這些樹通常還可提供開箱即用的良好結(jié)果,并具有可解釋的屬性。

盡管我們通常將 TensorFlow 視為訓(xùn)練神經(jīng)網(wǎng)絡(luò)的內(nèi)容庫,但 Google 的一個常見用例是使用 TensorFlow 創(chuàng)建決策森林。

08660ec6-bf00-11ec-9e50-dac502259ad0.gif

對數(shù)據(jù)開展分類的決策樹動畫

如果您曾使用 2019 年推出tf.estimator.BoostedTrees 創(chuàng)建基于樹的模型,您可參考本文所提供的指南進(jìn)行遷移。雖然 Estimator API 基本可以應(yīng)對在生產(chǎn)環(huán)境中使用模型的復(fù)雜性,包括分布式訓(xùn)練和序列化,但是我們不建議您將其用于新代碼。

如果您要開始一個新項目,我們建議您使用 TensorFlow 決策森林 (TF-DF)。該內(nèi)容庫可為訓(xùn)練、服務(wù)和解讀決策森林模型提供最先進(jìn)的算法,相較于先前的方法更具優(yōu)勢,特別是在質(zhì)量、速度和易用性方面表現(xiàn)尤為出色。

首先,讓我們來比較一下使用 Estimator API 和 TF-DF 創(chuàng)建提升樹模型的等效示例。

以下是使用 tf.estimator.BoostedTrees 訓(xùn)練梯度提升樹模型的舊方法(不再推薦使用)

import tensorflow as tf

# Dataset generators
def make_dataset_fn(dataset_path):
    def make_dataset():
        data = ... # read dataset
        return tf.data.Dataset.from_tensor_slices(...data...).repeat(10).batch(64)
    return make_dataset

# List the possible values for the feature "f_2".
f_2_dictionary = ["NA", "red", "blue", "green"]

# The feature columns define the input features of the model.
feature_columns = [
    tf.feature_column.numeric_column("f_1"),
    tf.feature_column.indicator_column(
       tf.feature_column.categorical_column_with_vocabulary_list("f_2",
         f_2_dictionary,
         # A special value "missing" is used to represent missing values.
         default_value=0)
       ),
    ]

# Configure the estimator
estimator = boosted_trees.BoostedTreesClassifier(
          n_trees=1000,
          feature_columns=feature_columns,
          n_classes=3,
          # Rule of thumb proposed in the BoostedTreesClassifier documentation.
          n_batches_per_layer=max(2, int(len(train_df) / 2 / FLAGS.batch_size)),
      )

# Stop the training is the validation loss stop decreasing.
early_stopping_hook = early_stopping.stop_if_no_decrease_hook(
      estimator,
      metric_name="loss",
      max_steps_without_decrease=100,
      min_steps=50)

tf.estimator.train_and_evaluate(
      estimator,
      train_spec=tf.estimator.TrainSpec(
          make_dataset_fn(train_path),
          hooks=[
              # Early stopping needs a CheckpointSaverHook.
              tf.train.CheckpointSaverHook(
                  checkpoint_dir=input_config.raw.temp_dir, save_steps=500),
              early_stopping_hook,
          ]),
      eval_spec=tf.estimator.EvalSpec(make_dataset_fn(valid_path)))

使用 TensorFlow 決策森林訓(xùn)練相同的模型

import tensorflow_decision_forests as tfdf

# Load the datasets
# This code is similar to the estimator.
def make_dataset(dataset_path):
    data = ... # read dataset
    return tf.data.Dataset.from_tensor_slices(...data...).batch(64)

train_dataset = make_dataset(train_path)
valid_dataset = make_dataset(valid_path)

# List the input features of the model.
features = [
  tfdf.keras.FeatureUsage("f_1", keras.FeatureSemantic.NUMERICAL),
  tfdf.keras.FeatureUsage("f_2", keras.FeatureSemantic.CATEGORICAL),
]

model = tfdf.keras.GradientBoostedTreesModel(
  task = tfdf.keras.Task.CLASSIFICATION,
  num_trees=1000,
  features=features,
  exclude_non_specified_features=True)

model.fit(train_dataset, valid_dataset)

# Export the model to a SavedModel.
model.save("project/model")

附注

  • 雖然在此示例中沒有明確說明,但 TensorFlow 決策森林可自動啟用和配置早停。

  • 可自動構(gòu)建和優(yōu)化“f_2”特征字典(例如,將稀有值合并到一個未登錄詞項目中)。

  • 可從數(shù)據(jù)集中自動確定類別數(shù)(本例中為 3 個)。

  • 批次大?。ū纠袨?64)對模型訓(xùn)練沒有影響。以較大值為宜,因為這可以增加讀取數(shù)據(jù)集的效率。

TF-DF 的亮點就在于簡單易用,我們還可進(jìn)一步簡化和完善上述示例,如下所示。

如何訓(xùn)練 TensorFlow 決策森林(推薦解決方案)

import tensorflow_decision_forests as tfdf
import pandas as pd

# Pandas dataset can be used easily with pd_dataframe_to_tf_dataset.
train_df = pd.read_csv("project/train.csv")

# Convert the Pandas dataframe into a TensorFlow dataset.
train_ds = tfdf.keras.pd_dataframe_to_tf_dataset(train_df, label="my_label")

model = tfdf.keras.GradientBoostedTreeModel(num_trees=1000)
model.fit(train_dataset)

附注

  • 我們未指定特征的語義(例如數(shù)字或分類)。在這種情況下,系統(tǒng)將自動推斷語義。

  • 我們也沒有列出要使用的輸入特征。在這種情況下,系統(tǒng)將使用所有列(標(biāo)簽除外)??稍谟?xùn)練日志中查看輸入特征的列表和語義,或通過模型檢查器 API 查看。

  • 我們沒有指定任何驗證數(shù)據(jù)集。每個算法都可以從訓(xùn)練樣本中提取一個驗證數(shù)據(jù)集作為算法的最佳選擇。例如,默認(rèn)情況下,如果未提供驗證數(shù)據(jù)集,則 GradientBoostedTreeModel 將使用 10% 的訓(xùn)練數(shù)據(jù)進(jìn)行驗證。

下面我們將介紹 Estimator API 和 TF-DF 的一些區(qū)別。

Estimator API 和 TF-DF 的區(qū)別

算法類型

TF-DF 是決策森林算法的集合,包括(但不限于)Estimator API 提供的梯度提升樹。請注意,TF-DF 還支持隨機森林(非常適用于干擾數(shù)據(jù)集)和 CART 實現(xiàn)(非常適用于解讀模型)。

此外,對于每個算法,TF-DF 都包含許多在文獻(xiàn)資料中發(fā)現(xiàn)并經(jīng)過實驗驗證的變體 [1, 2, 3]。

精確與近似分塊的對比

TF1 GBT Estimator 是一種近似的樹學(xué)習(xí)算法。非正式情況下,Estimator 通過僅考慮樣本的隨機子集和每個步驟條件的隨機子集來構(gòu)建。

默認(rèn)情況下,TF-DF 是一種精確的樹訓(xùn)練算法。非正式情況下,TF-DF 會考慮所有訓(xùn)練樣本和每個步驟的所有可能分塊。這是一種更常見且通常表現(xiàn)更佳的解決方案。

雖然對于較大的數(shù)據(jù)集(具有百億數(shù)量級以上的“樣本和特征”數(shù)組)而言,有時 Estimator 的速度更快,但其近似值通常不太準(zhǔn)確(因為需要種植更多樹才能達(dá)到相同的質(zhì)量)。而對于小型數(shù)據(jù)集(所含的“樣本和特征”數(shù)組數(shù)目不足一億)而言,使用 Estimator 實現(xiàn)近似訓(xùn)練形式的速度甚至可能比精確訓(xùn)練更慢。

TF-DF 還支持不同類型的“近似”樹訓(xùn)練。我們建議您使用精確訓(xùn)練法,并選擇使用大型數(shù)據(jù)集測試近似訓(xùn)練。

推理

Estimator 使用自上而下的樹路由算法運行模型推理。TF-DF 使用 QuickScorer 算法的擴展程序。

雖然兩種算法返回的結(jié)果完全相同,但自上而下的算法效率較低,因為這種算法的計算量會超出分支預(yù)測并導(dǎo)致緩存未命中。對于同一模型,TF-DF 的推理速度通常可提升 10 倍。

TF-DF 可為延遲關(guān)鍵應(yīng)用程序提供 C++ API。其推理時間約為每核心每樣本 1 微秒。與 TF SavedModel 推理相比,這通常可將速度提升 50 至 1000 倍(對小型批次的效果更佳)。

多頭模型

Estimator 支持多頭模型(即輸出多種預(yù)測的模型)。目前,TF-DF 無法直接支持多頭模型,但是借助 Keras Functional API,TF-DF 可以將多個并行訓(xùn)練的 TF-DF 模型組成一個多頭模型。

了解詳情

您可以訪問此網(wǎng)址,詳細(xì)了解 TensorFlow 決策森林。

如果您是首次接觸該內(nèi)容庫,我們建議您從初學(xué)者示例開始。經(jīng)驗豐富的 TensorFlow 用戶可以訪問此指南,詳細(xì)了解有關(guān)在 TensorFlow 中使用決策森林和神經(jīng)網(wǎng)絡(luò)的區(qū)別要點,包括如何配置訓(xùn)練流水線和關(guān)于數(shù)據(jù)集 I/O 的提示。

您還可以仔細(xì)閱讀Estimator 遷移到 Keras API,了解如何從 Estimator 遷移到 Keras。

原文標(biāo)題:如何從提升樹 Estimator 遷移到 TensorFlow 決策森林

文章出處:【微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1807

    瀏覽量

    60514
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3751

    瀏覽量

    52099
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    334

    瀏覽量

    62174

原文標(biāo)題:如何從提升樹 Estimator 遷移到 TensorFlow 決策森林

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    使用NORDIC AI的好處

    提升能效,適合音頻、圖像和高采樣率傳感器等更重的 AI 負(fù)載。[Axon NPU 技術(shù)頁] 模型更小、更快、更省電 Neuton 模型相較 TensorFlow Lite:* 內(nèi)存
    發(fā)表于 01-31 23:16

    五大衛(wèi)星運管中心大模型智能決策分系統(tǒng)軟件的應(yīng)用與未來發(fā)展

    ? ? 五大機構(gòu)/企業(yè)衛(wèi)星運管中心大模型智能決策分系統(tǒng)實踐綜述 ? ?當(dāng)前,隨著大規(guī)模星座部署與智能化作戰(zhàn)需求激增,以大模型驅(qū)動的衛(wèi)星智能決策系統(tǒng)成為全球航天強國和頭部企業(yè)的戰(zhàn)略焦點。
    的頭像 發(fā)表于 12-18 14:58 ?345次閱讀

    永銘超級電容SLM系列賦能森林防火監(jiān)控系統(tǒng),凸顯關(guān)鍵電容優(yōu)勢

    DESIGNER'SDREAM森林防火監(jiān)控系統(tǒng)的市場前景01隨著氣候變化導(dǎo)致全球范圍內(nèi)極端天氣增多,各國政府和相關(guān)部門對森林防火工作的重視程度不斷提升,對高效、智能化的森林
    的頭像 發(fā)表于 09-01 10:08 ?589次閱讀
    永銘超級電容SLM系列賦能<b class='flag-5'>森林</b>防火監(jiān)控系統(tǒng),凸顯關(guān)鍵電容優(yōu)勢

    從火場到指揮部:云翎智能如何用無線自組網(wǎng)縮短森林救援響應(yīng)時間

    森林火災(zāi)救援中,通信中斷與延遲常導(dǎo)致決策滯后。云翎智能通過無線自組網(wǎng)(MESH)技術(shù),構(gòu)建無中心動態(tài)網(wǎng)絡(luò),支持多跳中繼與自愈合,在復(fù)雜地形中實現(xiàn)火場與指揮部的實時通信。該技術(shù)具備抗干擾、穿透力強
    的頭像 發(fā)表于 07-17 20:55 ?588次閱讀
    從火場到指揮部:云翎智能如何用無線自組網(wǎng)縮短<b class='flag-5'>森林</b>救援響應(yīng)時間

    構(gòu)建生命線:云翎智能應(yīng)急通信自組網(wǎng)如何為森林防火贏得黃金救援時間

    森林火災(zāi)的黃金救援時間以分鐘計,傳統(tǒng)通信常因地形復(fù)雜、公網(wǎng)薄弱導(dǎo)致失聯(lián)。云翎智能應(yīng)急通信自組網(wǎng)以無中心自組網(wǎng)技術(shù)實現(xiàn)3分鐘快速建網(wǎng),通過寬窄帶融合傳輸火場動態(tài),結(jié)合北斗短報文補盲,讓指揮中心秒級決策
    的頭像 發(fā)表于 07-14 22:04 ?560次閱讀
    構(gòu)建生命線:云翎智能應(yīng)急通信自組網(wǎng)如何為<b class='flag-5'>森林</b>防火贏得黃金救援時間

    無法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?

    Tensorflow Lite 模型轉(zhuǎn)換為 OpenVINO? 格式。 遇到的錯誤: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    發(fā)表于 06-25 08:27

    地物光譜儀+林地調(diào)查,精準(zhǔn)掌握森林生長與病變數(shù)據(jù)

    高光譜遙感的核心地面工具,正在與林地調(diào)查深度融合,為森林監(jiān)測提供第一手的高精度數(shù)據(jù)支持。 一、森林調(diào)查為何需要地物光譜儀 傳統(tǒng)森林調(diào)查方法依賴于人工測量,如高、胸徑、物種識別和樣方調(diào)
    的頭像 發(fā)表于 05-23 15:00 ?888次閱讀
    地物光譜儀+林地調(diào)查,精準(zhǔn)掌握<b class='flag-5'>森林</b>生長與病變數(shù)據(jù)

    用樹莓派搞深度學(xué)習(xí)?TensorFlow啟動!

    RaspberryPi4上運行TensorFlow,但不要期望有奇跡般的表現(xiàn)。如果模型不太復(fù)雜,它可以運行您的模型,但無法訓(xùn)練新模型,也無法執(zhí)行所謂的遷移學(xué)習(xí)。除了運行您預(yù)
    的頭像 發(fā)表于 03-25 09:33 ?1205次閱讀
    用樹莓派搞深度學(xué)習(xí)?<b class='flag-5'>TensorFlow</b>啟動!

    TensorFlow模型轉(zhuǎn)換為中間表示 (IR) 時遇到不一致的形狀錯誤怎么解決?

    使用命令轉(zhuǎn)換為 Tensorflow* 模型: mo --input_model ../models/middlebury_d400.pb --input_shape [1,352,704,6
    發(fā)表于 03-07 08:20

    使用OpenVINO? 2020.4.582將自定義TensorFlow 2模型轉(zhuǎn)換為中間表示 (IR)收到錯誤怎么解決?

    轉(zhuǎn)換自定義 TensorFlow 2 模型 mask_rcnn_inception_resnet_v2_1024x1024_coco17 要 IR 使用模型優(yōu)化器命令: 注意上面的鏈接可能無法
    發(fā)表于 03-07 07:28

    將YOLOv4模型轉(zhuǎn)換為IR的說明,無法將模型轉(zhuǎn)換為TensorFlow2格式怎么解決?

    遵照 將 YOLOv4 模型轉(zhuǎn)換為 IR 的 說明,但無法將模型轉(zhuǎn)換為 TensorFlow2* 格式。 將 YOLOv4 darknet 轉(zhuǎn)換為 Keras 模型時,收到 Type
    發(fā)表于 03-07 07:14

    如何將Keras H5模型轉(zhuǎn)換為中間表示 (IR) 格式?

    install_prerequisites_tf2.bat 使用 TensorFlow* 2 加載模型,并以 保存的型號格式對其進(jìn)行串行。 import tensorflow as tf model
    發(fā)表于 03-07 06:11

    Tensorflow Efficientdet-d0模型轉(zhuǎn)換為OpenVINO? IR失敗了,怎么解決?

    使用轉(zhuǎn)換命令 mo --saved_model_dir /home/obs-56/effi/saved_model 將 TensorFlow* efficientdet-d0 模型轉(zhuǎn)換為 IR
    發(fā)表于 03-06 08:18

    可以使用OpenVINO?工具包將中間表示 (IR) 模型轉(zhuǎn)換為TensorFlow格式嗎?

    無法將中間表示 (IR) 模型轉(zhuǎn)換為 TensorFlow* 格式
    發(fā)表于 03-06 06:51

    無法轉(zhuǎn)換TF OD API掩碼RPGA模型怎么辦?

    無法轉(zhuǎn)換重新訓(xùn)練的 TF OD API 掩碼 RPGA 模型,該模型使用以下命令在 GPU 上工作: mo > --saved_model_dir
    發(fā)表于 03-06 06:44