色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

使用TensorFlow決策森林創建提升樹模型

谷歌開發者 ? 來源:TensorFlow ? 作者:TensorFlow ? 2022-04-19 10:46 ? 次閱讀

發布人:TensorFlow 團隊的 Mathieu Guillame-Bert 和 Josh Gordon

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

盡管我們通常將 TensorFlow 視為訓練神經網絡的內容庫,但 Google 的一個常見用例是使用 TensorFlow 創建決策森林。

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

對數據開展分類的決策樹動畫

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

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

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

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

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 決策森林訓練相同的模型

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 決策森林可自動啟用和配置早停

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

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

  • 批次大小(本例中為 64)對模型訓練沒有影響。以較大值為宜,因為這可以增加讀取數據集的效率。

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

如何訓練 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)

附注

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

  • 我們也沒有列出要使用的輸入特征。在這種情況下,系統將使用所有列(標簽除外)。可在訓練日志中查看輸入特征的列表和語義,或通過模型檢查器 API 查看。

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

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

Estimator API 和 TF-DF 的區別

算法類型

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

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

精確與近似分塊的對比

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

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

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

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

推理

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

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

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

多頭模型

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

了解詳情

您可以訪問此網址,詳細了解 TensorFlow 決策森林。

如果您是首次接觸該內容庫,我們建議您從初學者示例開始。經驗豐富的 TensorFlow 用戶可以訪問此指南,詳細了解有關在 TensorFlow 中使用決策森林和神經網絡的區別要點,包括如何配置訓練流水線和關于數據集 I/O 的提示。

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

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

文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

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

    關注

    5

    文章

    1762

    瀏覽量

    57506
  • 模型
    +關注

    關注

    1

    文章

    3226

    瀏覽量

    48809
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60528

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

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    電子發燒友網站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費下載
    發表于 09-27 11:41 ?0次下載
    快速部署<b class='flag-5'>Tensorflow</b>和TFLITE<b class='flag-5'>模型</b>在Jacinto7 Soc

    stm32mp135d的板子可不可以跑tensorflow模型啊?

    請問是stm32mp135d的板子可不可以跑tensorflow模型啊?
    發表于 07-18 06:49

    利用TensorFlow實現基于深度神經網絡的文本分類模型

    要利用TensorFlow實現一個基于深度神經網絡(DNN)的文本分類模型,我們首先需要明確幾個關鍵步驟:數據預處理、模型構建、模型訓練、模型
    的頭像 發表于 07-12 16:39 ?831次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的一個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器學習模型TensorFlow憑借其高效的計算性能、靈活的架構以及豐富的工具和庫,在學
    的頭像 發表于 07-12 16:38 ?659次閱讀

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是一個涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-tuning)或重新訓練。下面我將詳細闡述這
    的頭像 發表于 07-12 11:51 ?397次閱讀

    請問ESP32如何運行TensorFlow模型

    請問ESP32如何運行TensorFlow模型
    發表于 07-09 07:30

    tensorflow簡單的模型訓練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發表于 07-05 09:38 ?633次閱讀

    keras模型tensorflow session

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

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存模型以便將來使用或部署是一項常見的需求。同樣,加載已保存的
    的頭像 發表于 07-04 13:07 ?1481次閱讀

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

    TensorFlow中構建并訓練一個卷積神經網絡(CNN)模型是一個涉及多個步驟的過程,包括數據預處理、模型設計、編譯、訓練以及評估。下面,我將詳細闡述這些步驟,并附上一個完整的代碼示例。
    的頭像 發表于 07-04 11:47 ?895次閱讀

    TensorFlow的定義和使用方法

    數據流圖,從而簡化機器學習模型的構建、訓練和部署。自2015年11月開源以來,TensorFlow迅速成為數據科學家、軟件開發者以及教育工作者廣泛使用的工具,廣泛應用于圖像識別、自然語言處理、推薦系統等多個領域。本文將深入解讀Tenso
    的頭像 發表于 07-02 14:14 ?754次閱讀

    使用電腦上tensorflow創建模型,轉換為tflite格式了,導入后進度條反復出現0-100%變化,為什么?

    使用電腦上tensorflow創建模型,轉換為tflite格式了,導入后,進度條反復出現0-100%變化,卡了一個晚上了還沒分析好?
    發表于 03-19 06:20

    什么是隨機森林?隨機森林的工作原理

    隨機森林使用名為“bagging”的技術,通過數據集和特征的隨機自助抽樣樣本并行構建完整的決策樹。雖然決策樹基于一組固定的特征,而且經常過擬合,但隨機性對森林的成功至關重要。
    發表于 03-18 14:27 ?3558次閱讀
    什么是隨機<b class='flag-5'>森林</b>?隨機<b class='flag-5'>森林</b>的工作原理

    基于TensorFlow和Keras的圖像識別

    ,讓我們先花點時間來了解一些術語。TensorFlow/KerasTensorFlow是GoogleBrain團隊創建的一個Python開源庫,它包含許多算法和模型
    的頭像 發表于 01-13 08:27 ?810次閱讀
    基于<b class='flag-5'>TensorFlow</b>和Keras的圖像識別

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

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創建一個簡單的機器學習模型
    的頭像 發表于 01-08 09:25 ?968次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構建機器學習<b class='flag-5'>模型</b>
    主站蜘蛛池模板: 黑人巨大交牲老太| 美女脱了内裤张开腿让男人桶到爽 | 国产中文字幕乱码一区| 日本性xxx| BL全肉多攻NP高H| 芒果视频看片在线观看| 亚洲精品不卡在线| 国产精品久久人妻拍拍水牛影视| 日韩欧美 亚洲视频| xxx日本黄色| 欧美黑人巨大性极品hd欧| 91原创在线| 免费99精品国产人妻自在线| 在线观看亚洲免费视频| 久久re热线视频精品99| 亚洲精品无夜久久久久久久久| 国产精品亚洲污污网站入口| 少妇无码吹潮久久精品AV网站| 成人在线免费| 日韩成人黄色| 丰满老熟女白浆直流| 日本乱hd高清videos| 超碰在线公开视频| 日本特殊精油按摩| 爱穿丝袜的麻麻3d漫画acg| 欧美亚洲国产免费高清视频| bbbbbxxxxx肥胖| 欧美另类jizzhd| 啊轻点啊再深点视频免费| 日本久久和电影| 俄罗斯孩交精品| 甜性涩爱dvd| 国产日韩成人内射视频| 亚洲AV久久无码精品九九软件| 国产婷婷色综合AV蜜臀AV| 亚洲国产成人久久一区www妖精| 国内精品久久久久久西瓜色吧| 亚洲色欲国产免费视频| 久久9精品区-无套内射无码| 在线视频一区二区三区在线播放| 美女18黄|