tensorflow - Tensorboard 的问题并且没有记录
问题描述
我在这里使用 hparams 关注 google 的 tensorboard 教程。但是,当我尝试在自己的模型中实现它时,日志中没有显示任何内容。主要区别在于我使用了图像数据生成器,但我看不出这会如何影响超参数。我已经包含了所有用于获取超参数的代码,但为了方便起见,删除了我导入的模型和基本包。
# Load the TensorBoard notebook
%load_ext tensorboard
# Clear all logs
!rm -rf ./logs/
这是我为超参数设置的内容。只是学习率和权重衰减。从教程中略微增强,但风格大致相同。
HP_lr = hp.HParam('learning_rate', hp.Discrete([3, 4, 5]))
HP_weight_decay= hp.HParam('l2_weight_decay', hp.Discrete([4, 5, 6]))
METRIC_ACCURACY = 'accuracy'
考虑到上面的值,这有点不同,但这些只是变量名
# file writer
with tf.summary.create_file_writer('logs/hparam_tuning').as_default():
hp.hparams_config(
hparams=[HP_lr, HP_weight_decay],
metrics=[hp.Metric(METRIC_ACCURACY, display_name='Accuracy')],
)
我有一个使用 hparams 参数构建模型的函数。除了在 model.fit 中使用 datagen.flow() 之外,没有任何变化。
def train_test_model(hparams):
model = build_model(hparams)
model.fit(datagen.flow(x_train, y_train, batch_size=64),
epochs=1,verbose=0)
_, accuracy = model.evaluate(x_test, y_test,batch_size=64, verbose = 1)
return accuracy
# For each run log the metrics and hyperparameters used
def run(run_dir, hparams):
with tf.summary.create_file_writer(run_dir).as_default():
hp.hparams(hparams) # record the values used in this trial
accuracy = train_test_model(hparams)
tf.summary.scalar(METRIC_ACCURACY, accuracy, step=1)
设置 hp 使用的字典
session_num = 0
for learn_rate in HP_lr.domain.values:
for wd in HP_weight_decay.domain.values:
hparams = {
HP_lr: 1*10**(-learn_rate), # transform to something like 1e-3
HP_weight_decay: 1*10**(-wd)
}
run_name = "run-%d" % session_num
print('--- Starting trial: %s' % run_name)
print({h.name: hparams[h] for h in hparams})
run('logs/hparam_tuning/' + run_name, hparams)
session_num += 1
%tensorboard --logdir logs/hparam_tuning
解决方案
推荐阅读
- azure-active-directory - 找不到实体属性
- python-3.x - 为什么我需要将这一行 %%timeit -n 100 作为 python 文件的第一行?
- javascript - 无法将代码从 .then 更改为 async/await
- r - R重命名lme中的预测变量
- r - 使用 R Plotly 自定义饼图中的图例条目
- google-analytics - 如何在 Google Analytics 中删除以 restful URL 结尾的数字 id?
- sql - 大查询:使用 between 函数对“日期”使用 case 命令
- javascript - json stringify删除括号外的文本
- android - android.view.View.systemUiVisibility 已弃用。什么是替代品?
- c++ - 如何使用 Gps 和指南针开发对点移动算法