过往我们关注模型的训练结果,会追踪该模型在每次 epochs 之後的 AUC 、 ACC、 loss 等指标变化,并且以视觉化绘图方式呈现模型进展,此时擅长分析该模型状况的 TensorBoard 就很好用。
但是,如果要深入观察模型「各版次」的状况时,TensorFlow Model Analysis (TFMA) 可以视觉化分析不同版次的模型状况,让您评估是否让新模型更新上线,而不是把糟糕的模型替代原本的。
TFMA 在 TFX 自动化流程中实现的组件为 ExampleValidator
,让模型训练完进行模型验证,达到持续训练的目的,续接完成自动部署模型。
更重要的是,模型验证非常关心模型的「公平性」,善用模型分析工具能抓出模型弱点,进而回头改进资料与模型。
TFMA 可以做到以下任务:
TFMA 用来评估 TensorFlow 模型的程序库,可搭配 TensorFlow 来建立 EvalSavedModel
做为分析的依据。使用者可透过这个程序库,使用训练程序中定义的相同指标,以分散的方式评估大量资料的模型。这些指标可根据不同的资料片段运算得出,并在 Jupyter 笔记本中以视觉化的方式呈现。
安装 tensorflow-model-analysis
。
# Upgrade pip to the latest, and install TFMA.
!pip install -U pip
!pip install tensorflow-model-analysis
# Restart Runtime
下载资料集
解析 Schema
使用 Schema 建立 TFRecords 档案
*.tfRecords
,需撰写程序将原始资料data.csv
转换为符合 Schema 的资料型态( int、 float、str)、数据范围档案引入。
*.csv
转为 *.tfrecords
的函数官方范例已写好。TF keras
、基於 TF2 产生的 API 、 tf.estimator
、 pd.DataFrame
等类型。tf.keras
模型、 tf.estimator
等 2 种做法供您参考,并分别保存为 EvalSavedModel
。tfma.EvalConfig
。
tfma.EvalSharedModel
。tfma.run_model_analysis
创建 tfma.EvalResult
,即可视觉化呈现模型绩效。以 tfma.view.render_slicing_metrics()
视觉化呈现模型绩效,您可以选择想要观察的切片、切换,此范例 slicing_column='trip_start_hour'
。
在图表中:
Overview
显示每个切片,Metrics Histogram
是将结果分桶显示。tfma.EvalSharedModel
时设置的,视需要可增减。更多的尝试
例如替换切片栏位 'slicing_column=trip_start_day' 观察。
交叉组合观察切片。
tfma.view.render_slicing_metrics(
eval_result,
slicing_spec=tfma.SlicingSpec(
feature_keys=['trip_start_hour', 'trip_start_day']))
设定feature_values
筛选特徵值。
tfma.view.render_slicing_metrics(
eval_result,
slicing_spec=tfma.SlicingSpec(
feature_keys=['trip_start_day'],
feature_values={'trip_start_hour': '12'}))
另外也有 tfma.view.render_plot
显示指定切片与观察值,勾选 Show all plots 後,您可以看到非常丰富的视觉化图表。
tfma.ValidationResult
查看验证结果,如低於门槛值则验证失败。
validation_result = tfma.load_validation_result(validation_output_path)
print(validation_result.validation_ok)
# False
tfma.EvalConfig
,这也算是 TensorFlow 比较难以亲近的风格吧。
<<: [Day 08] 从 tensorflow.keras 开始的 VGG Net 生活 (第一季)
>>: 【从零开始的Swift开发心路历程-Day11】XIB
在软件开发中很常听到 SCRUM 这个字,本身是待在软件业当PM公司没有跑到非常正规的 SCRUM ...
大家好,今天要来尝试使用firebase_messaging,今天使用的是Android手机 首先到...
昨天的文章已把场景与平面侦测做好,今天要继续说明角色蛇的移动 目录 移动机制说明 变数宣告 介面按钮...
[ 30 Days of ML Challenge | D02] 今天提供两个文件,一个就是带你熟悉...
对於AAC 这个音讯格式,可能大多数人都不太熟悉。但是AAC 是 iTunes 里常见的音乐档案格式...