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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

tensorflow教程 开发者指南——评估器 estimator(tensorflow官方推荐使用的编程API)

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow教程 开发者指南——评估器 estimator(tensorflow官方推荐使用的编程API) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


參考文章:評估器 tf.estimator

文章目錄

    • 評估器
      • 使用評估器的優勢
      • 預定義的評估器
        • 預定義評估器的程序結構
        • 預定義評估器的好處
      • 自定義評估器
      • 推薦的工作流
      • 從 Keras 模塊中創建評估器

評估器

tf.estimator

  • 訓練
  • 評估
  • 預測
  • 作為服務導出

tf.estimator.Estimator

tf.contrib.learn.Estimator

使用評估器的優勢

評估器可以為我們帶來以下幾點好處:

  • 基于評估器的模型可以運行在單機上,也可以運行在分布式的多臺服務器環境上并且不需要做任何修改。更棒的是,你還可以將基于評估器的模型運行在 CPUs,GPUs 或者 TPUs 上。
  • 評估器簡化了模型開發人員內部共享的實現。
  • 你可以用高級的直觀的代碼編寫某種狀態的藝術模型。簡而言之,使用評估器通常會比使用 TensorFlow 的低級 API 更加簡捷。
  • 評估器是建立在 tf.layers 上的,簡化了自定義的內容。
  • 評估器已經為你構建了圖表。換句話說,你不需要構建圖表了。
  • 評估器提供了一個安全的分布式訓練的循環,能夠控制以下操作的運行時間和運行方式:
    1、創建圖表
    2、初始化變量
    3、啟動隊列
    4、處理異常
    5、創建校驗文件和錯誤恢復
    6、儲存給 TensorBoard 展示的數據

當你用評估器寫應用時,你必須將數據輸入管道和模型分開。這種分離簡化了不同數據集的實驗。

預定義的評估器

tf.estimator.DNNClassifier

預定義評估器的程序結構

基于預定義評估器的程序一般包含下面四步:

  • 編寫一個或多個數據集的導入函數。舉個例子,你可能會創建兩個函數,一個用于導入訓練數據,另一個用于導入測試數據。每一個數據集的導入函數都會返回下面兩個對象:
    1)一個字典,它的 key 是特征名,而 values 是對應的張量(或者是稀疏張量),張量里面包含了對應的特征數據。
    2)一個張量,它包含了一個或多個標簽。
    舉個例子,下面的代碼是一個輸入函數的基本框架:
  • def input_fn(dataset):... # 操作數據集,提取特征名稱和標簽return feature_dict, label

    數據導入

  • tf.feature_column
  • # 定義三個數值類型的特征列 population = tf.feature_column.numeric_column('population') crime_rate = tf.feature_column.numeric_column('crime_rate') median_education = tf.feature_column.numeric_column('median_education',normalizer_fn='lambda x: x - global_education_mean')
  • 實例化相關的預定義評估器。舉個例子,下面有一個 LinearClassifier 評估器的實例化的代碼:
  • estimator = tf.estimator.Estimator.LinearClassifier(feature_columns=[population, crime_rate, median_education], )
  • 調用訓練,評估和推斷的方法。
    譬如說,所有的評估器都提供了 train 方法,它可以用來訓練模型。
  • # my_training_set 是在第一步中創建的函數 estimator.train(input_fn=my_training_set, steps=2000)

    預定義評估器的好處

    預定義評估器是編碼的最佳實踐,它有下面兩點好處:

    • 單機或者集群上運行時,計算圖的哪部分應該在哪里運行和其實現策略的最佳實踐。
    • 事件記錄和通用內容摘要的最佳實踐。

    如果你不使用預定義的評估器,那么你需要自己實現上面所說到的功能。

    自定義評估器

    創建定制化 Estimator

    推薦的工作流

    我們推薦的工作流程(workflow)如下:

  • 假設存在一個合適的評估器,使用它來構建你的第一個模型,并以這個模型的結果作為基準。
  • 使用當前的預定義評估器構建、測試你所有的管道,包括數據的完整性和可靠性。
  • 如果存在可選的預定義評估器,可以對這幾個評估器做實驗,從中選擇一個能夠產生最好結果的評估器。
  • 或許,可以通過構建你自己的評估器來進一步提升模型的效果。
  • 從 Keras 模塊中創建評估器

    tf.keras.estimator.model_to_estimator

    # 實例化一個 kera inception v3 模型。 keras_inception_v3 = tf.keras.applications.inception_v3.InceptionV3(weights=None) # 定義好用來訓練模型使用的優化器,損失和評價指標,然后再編譯它 keras_inception_v3.compile(optimizer=tf.keras.optimizers.SGD(lr=0.0001, momentum=0.9),loss='categorical_crossentropy',metric='accuracy') # 從已編譯的 Keras 模型中創建一個評估器,注意,keras 模型的初始狀態會被保存在這個評估器中。 est_inception_v3 = tf.keras.estimator.model_to_estimator(keras_model=keras_inception_v3)# Treat the derived Estimator as you would with any other Estimator. # First, recover the input name(s) of Keras model, so we can use them as the # feature column name(s) of the Estimator input function: # 像處理其他評估器一樣處理派生評估器。 # 首先,恢復 Keras 模型的輸入名稱,這樣就可以將它們當做評估器數去函數的特征列名: keras_inception_v3.input_names # print out: ['input_1'] # 一旦有了輸入名稱,就可以創建輸入函數,例如,對于 numpy ndarray 格式的輸入: train_input_fn = tf.estimator.inputs.numpy_input_fn(x={"input_1": train_data},y=train_labels,num_epochs=1,shuffle=False) # 需要進行訓練時,調用評估器的訓練函數: est_inception_v3.train(input_fn=train_input_fn, steps=2000)

    注意,Keras 評估器的特征列和標簽的名稱來自相應的已編譯 Keras 模型。例如上面的 train_input_fn 的輸入鍵值可以從 keras_inception_v3.input_names 獲取,類似地,預測的輸出名稱可以從 keras_inception_v3.output_names 獲得。

    tf.keras.estimator.model_to_estimator

    總結

    以上是生活随笔為你收集整理的tensorflow教程 开发者指南——评估器 estimator(tensorflow官方推荐使用的编程API)的全部內容,希望文章能夠幫你解決所遇到的問題。

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