记录自定义标量
重新调整回归模型并记录自定义学习率。这是如何做:
使用创建文件编写器tf.summary.create_file_writer()。
定义自定义学习率功能。这将被传递给Keras LearningRateScheduler回调。
在学习率功能内,用于tf.summary.scalar()记录自定义学习率。
将LearningRateScheduler回调传递给Model.fit()。
通常,要记录自定义标量,您需要使用tf.summary.scalar()文件编写器。文件编写器负责将此运行的数据写入指定的目录,并在使用时隐式使用tf.summary.scalar()。
设置学习速率
1 2 3 4 5 6 7 8 9 10 11 12 13
| file_writer = tf.summary.create_file_writer(log_dir+'/lr')#创建文件编辑器 file_writer.set_as_default() def lr_sch(epoch): learning_rate = 0.2 if epoch>5: learning_rate = 0.02 if epoch>10: learning_rate = 0.01 if epoch>20: learning_rate = 0.005 tf.summary.scalar('leaning_rate',data=learning_rate,step=epoch) return learning_rate lr_callback = tf.keras.callbacks.LearningRateScheduler(lr_sch)#设置学习速率回调函数
|
设置Tensorboard
1 2 3 4
| import os log_dir = os.path.join('logs',datetime.datetime.now().strftime("%Y%m%d-%H%M%S")) tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir,histogram_freq=1)#回调函数 #histogram_freq: 对于模型中各个层计算激活值和模型权重直方图的频率(训练轮数中)。 如果设置成 0 ,直方图不会被计算。对于直方图可视化的验证数据(或分离数据)一定要明确的指出。
|
设置回调函数
1 2 3 4 5 6 7 8
| model.fit(dataset, epochs=25, steps_per_epoch=60000//128, validation_data=test_dataset, validation_steps=10000//128, callbacks=[tensorboard_callback,lr_callback]#回调函数,传入tensorboard和学习速率 )
|