如何利用Tensorboard以可视化的方式查看训练的“过程资产”(目标函数、结果、AUC等等)

将训练过程资产发挥极致

机器学习、深度学习过程中,只得到结果是不行的,有很重要的过程数据可以通过tensorboard的方式可视化,如目标函数值、AUC、results。

接下来是如何使用

1 需要创建日志文件

日志文件可以往里面填写数据,需要两个环境,tensorboard与tensorboardX,还是为了调用里面的SummaryWriter来填写内容。

tensorboard与tensorboardX的安装

*要保证环境里有相应的依赖啊*
pip install tensorboard
pip install tensorboardX

2 编写测试文件

新建一个testTensorboardEvent.py文件,

import numpy as np
from tensorboardX import SummaryWriter

writer = SummaryWriter();
# 这里可以设置路径的,但是不填写也会有默认路径,就是当前执行文件的同级目录,会自己创建一个文件,详情看效果。

for epoch in range(1000):
    writer.add_scalar('scalar/No_1', np.random.rand(), epoch);
    # 第一行这个add_scalar是添加折叠栏"scalar"下标签为"No_1"的图。
    writer.add_scalar('graphs/No_2', np.random.rand()/333, epoch);
    # 第二行这个add_scalar是添加折叠栏"graphs"下标签为"No_2"的图。
    writer.add_scalars('scalar/Others', {'xsinx': epoch * np.sin(epoch), 'xcosx': epoch * np.cos(epoch)}, epoch);
    # 第三行这个add_scalars是添加折叠栏"scalar"下标签为"No_1"的图,这个会得到多个图,还有一个汇总结果。
    # 等下看效果就好。

writer.close();

里面的np.random.rand()就可以替换为大家所需要可视化的数据,(资料需要保密,不能展示更多,还请见谅)

3 运行测试文件

得到以下结果,“events.out.tfevents.**.”就是咱们要的日志文件。
在这里插入图片描述
下图中单个文件就是对应的单图,而文件夹就是上面提到的多图处理。
在这里插入图片描述

4 可视化准备工作

在这里我遇到的问题,我是在服务器上运行的,所以将其copy到本机中了,如果与我情况相同,别忘了在本机中也要添加tensorboard的依赖。

放在C盘,我怎么试也不行,会有问题,但是放在其他磁盘,都可以正常操作,这里我放到了F盘中。(目录中最好别有中文)
准备工作完毕了。

5 可视化命令

在Anaconda中打开“Anaconda Prompt ”,然后切换到有tensorboard的环境。

tensorboard --logdir=F:\log
# 这个logdir=后面的内容,是存放事件文件的目录,而不是事件文件本身,此例中events文件存放在F盘的log文件夹中。

结果像这个样子
在这里插入图片描述

6 查看结果

打开浏览器,复制上图中at后面的地址,打开。
在这里插入图片描述

如果浏览器中打不开,里面提示没有任何内容,则将步骤5中的可视化命令改为

tensorboard --logdir=F://log
# 将之前的“\”改为“//”

7 使用结果

这些结果中,有一些快捷键,

  • 在图中直接用鼠标选中一小块区域可以放大
  • 按住Alt键滚动鼠标滑轮可以放大与缩小
  • 按住Alt键鼠标左键点击可以进行拖动

(希望对各位学习的朋友们有所帮助)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,下面是一个利用xgb.cv以测试集AUC目标的调参代码,供您参考: ```python import xgboost as xgb import pandas as pd # 读取数据集 train_data = pd.read_csv('train_data.csv') test_data = pd.read_csv('test_data.csv') # 定义评价指标 def auc_score(preds, dtrain): labels = dtrain.get_label() return 'auc', roc_auc_score(labels, preds) # 定义参数空间 params = { 'max_depth': range(3, 10, 2), 'min_child_weight': range(1, 6, 2), 'learning_rate': [0.1, 0.01, 0.05], 'subsample': [0.7, 0.8, 0.9], 'colsample_bytree': [0.7, 0.8, 0.9], 'reg_alpha': [1e-5, 1e-2, 0.1, 1, 100], 'reg_lambda': [1e-5, 1e-2, 0.1, 1, 100] } # 初始模型 model = xgb.XGBClassifier( objective='binary:logistic', eval_metric='auc', seed=42 ) # 使用GridSearchCV交叉验证,寻找最优参数 from sklearn.model_selection import GridSearchCV grid_search = GridSearchCV( estimator=model, param_grid=params, scoring='roc_auc', n_jobs=-1, cv=5, verbose=3 ) grid_search.fit(train_data.drop('target', axis=1), train_data['target']) # 输出最优参数及其得分 print(grid_search.best_params_, grid_search.best_score_) # 使用最优参数训练模型 best_params = grid_search.best_params_ model = xgb.XGBClassifier( objective='binary:logistic', eval_metric='auc', seed=42, **best_params ) # 用xgb.cv评估模型性能 dtrain = xgb.DMatrix(train_data.drop('target', axis=1), label=train_data['target']) cv_result = xgb.cv( model.get_xgb_params(), dtrain, num_boost_round=model.get_params()['n_estimators'], nfold=5, metrics='auc', early_stopping_rounds=50 ) print(cv_result) print('Mean AUC:', cv_result['test-auc-mean'].iloc[-1]) ``` 在这个代码中,我们首先定义了一个`auc_score`函数,用于在交叉验证过程中评估模型的性能。然后,我们定义了一个参数空间`params`,用于指定需要调优的参数及其可能的取值范围。接着,我们初始了一个XGBoost模型,并使用GridSearchCV对模型进行交叉验证和调参。在得到最优参数之后,我们用这些参数重新训练模型,并使用xgb.cv对模型进行评估,输出最终的平均AUC得分。 希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值