训练步骤和验证步骤在TensorFlow中的区别

我在TensorBoard上使用TensorFlow回调来进行可视化。

tensorboard = tf.keras.callbacks.TensorBoard(    log_dir='logs',    histogram_freq=1,    write_graph=True,    write_images=True,    update_freq='epoch',    profile_batch=2,    embeddings_freq=1,    )

我使用了一个简单的模型,并使用数据管道作为模型的输入。这里特征层包含每个特征的feature_columns:

model = tf.keras.Sequential([    feature_layer,    tf.keras.layers.Dense(units = 12, activation='relu', use_bias = True, kernel_initializer= 'glorot_uniform', bias_initializer = 'zeros'),    tf.keras.layers.Dense(units = 6, activation='relu', use_bias = True, kernel_initializer= 'glorot_uniform', bias_initializer = 'zeros'),    tf.keras.layers.Dense(units = 2, activation='softmax')    ])

我使用Adam作为优化器,稀疏分类交叉熵作为损失函数,准确率作为评估指标。这里是我的TensorBoard图表:

enter image description here

红线 = 训练   蓝线 = 验证

我的问题是为什么显示的训练步骤少于验证步骤。


回答:

如果你查看TensorFlow文档中关于tf.keras.callbacks.TensorBoard的部分,在profile_batch参数的说明下,有如下描述 –

profile_batch:分析批次以采样计算特征。profile_batch必须是非负整数或由正整数对组成的逗号分隔字符串。正整数对表示要分析的批次范围。默认情况下,它将分析第二个批次。设置profile_batch=0以禁用分析。必须在TensorFlow急切模式下运行。

由于你设置了profile_batch=2,因此它只显示第二个批次的结果。

示例 –

# 分析单个批次,例如第5个批次。tensorboard_callback =    tf.keras.callbacks.TensorBoard(log_dir='./logs', profile_batch=5)model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback])# 运行tensorboard命令查看配置文件插件中的可视化结果。# 分析一系列批次,例如从10到20。tensorboard_callback =    tf.keras.callbacks.TensorBoard(log_dir='./logs', profile_batch='10,20')model.fit(x_train, y_train, epochs=2, callbacks=[tensorboard_callback])# 运行tensorboard命令查看配置文件插件中的可视化结果。

设置profile_batch=0以禁用分析。必须在TensorFlow急切模式下运行。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注