您可以使用DyTB (dynamic training bench):这个工具允许您将注意力集中在超参数搜索上,使用tensorboard来比较varisous训练模型的测量状态。在
DyTB为您创建与当前超参数集相关联的唯一名称,并将其用作日志目录。
创建不同的日志目录允许使用Tensorboard进行比较。在
例如,您可以用这一行代码在Cifar10上训练VGG(VGG和Cifar10都是一些可用的预定义模型和数据集):import tensorflow as tf
from dytb.inputs.predefined import Cifar10
from dytb.train import train
from dytb.models.predefined.VGG import VGG
# Instantiate the model
vgg = VGG()
# Instantiate the CIFAR-10 input source
cifar10 = Cifar10.Cifar10()
# 1: Train VGG on Cifar10 for 50 epochs
# Place the train process on GPU:0
device = '/gpu:0'
with tf.device(device):
info = train(
model=vgg,
dataset=cifar10,
hyperparameters={
"epochs": 50,
"batch_size": 50,
"regularizations": {
"l2": 1e-5,
"augmentation": {
"name": "FlipLR",
"fn": tf.image.random_flip_left_right,
# factor is the estimated amount of augmentation
# that "fn" introduces.
# In this case, "fn" doubles the training set size
# Thus, an epoch is now seen as the original training
# training set size * 2
"factor": 2,
}
},
"gd": {
"optimizer": tf.train.AdamOptimizer,
"args": {
"learning_rate": 1e-3,
"beta1": 0.9,
"beta2": 0.99,
"epsilon": 1e-8
}
}
})
在这个模型的训练过程中,您可以使用张量板来监控损耗趋势和精度值。在
将使用一些具有代表性的超参数为您创建一个新文件夹:
^{pr2}$
如您所见,将为模型创建一个文件夹,然后将用于训练模型的超参数添加为子文件夹。在
这意味着,如果更改优化器(从ADAM更改为MomentumOptimizer),或添加注释,或更改l2正则化参数ecc,DyTB将在VGG文件夹中创建一个子文件夹。在
这允许您使用模型目录logdir将测量的度量与tensorboard进行比较,方法如下:tensorboard --logdir log/VGG