开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

机器学习PAI训练时如何在work节点打印auc?worker1的日志我看到只有loss。请问在哪里

机器学习PAI训练时如何在work节点打印auc?worker1的日志我看到只有loss。请问在哪里能够看到? 还是需要在config中配置下?

展开
收起
三分钟热度的鱼 2023-05-07 17:09:54 334 0
5 条回答
写回答
取消 提交回答
  • image.pngstderr 里面看看。此回答整理自钉群“【EasyRec】推荐算法交流群”

    2023-07-04 11:35:41
    赞同 展开评论 打赏
  • 在机器学习PAI训练期间,你可以使用Python的print函数在work节点打印auc。

    具体步骤如下:

    在你的Python代码中导入所需的模块,例如sklearn库和numpy库等。

    在代码中执行模型训练,并在训练过程中计算auc值。

    使用Python的print()函数将auc值打印到控制台。

    在PAI上提交训练任务时,设置日志级别为DEBUG或更高级别,以便在控制台上查看训练过程中的输出。

    以下是示例代码,展示了如何在PAI的work节点上打印AUC:

    from sklearn.metrics import roc_auc_score import numpy as np

    加载数据并进行训练

    X_train, X_test, y_train, y_test = load_data() model.fit(X_train, y_train)

    在测试集上进行预测,并计算AUC值

    y_pred_proba = model.predict_proba(X_test)[:, 1] auc = roc_auc_score(y_test, y_pred_proba)

    在控制台上打印AUC值

    print("AUC: {}".format(auc)) 提交任务时,可以将日志级别设置为DEBUG,这样就可以在PAI的控制台上实时查看训练过程中的AUC值输出。例如:

    pai -name tensorflow115 -project test -Dlog_level=DEBUG --k8s_gpu_type=xxx -jobtype tensorflow115 --file xxx.py

    2023-05-08 09:42:01
    赞同 展开评论 打赏
  • 在机器学习PAI平台的训练任务中,您可以在训练脚本中使用fluid.metrics.Auc()函数来计算和打印Area Under Curve (AUC)并将其输出到日志中。同时,您需要将训练脚本添加到PAI中进行提交并配置好训练任务。

    以下是一个简单的示例代码,演示如何在其训练过程中使用Auc()函数:

    import paddle.fluid as fluid
    
    train_program = fluid.Program()
    startup_program = fluid.Program()
    
    # 创建计算图
    with fluid.program_guard(train_program, startup_program):
        # 加载数据并定义网络结构
        ...
    
        # 构建Auc计算节点
        auc_metric = fluid.metrics.Auc()
    
        # 构建优化器
        optimizer = fluid.optimizer.AdagradOptimizer(
            learning_rate=0.005)
        optimizer.minimize(cost)
    
    # 定义Executor
    place = fluid.CUDAPlace(0)
    exe = fluid.Executor(place)
    exe.run(startup_program)
    
    # 定义训练循环
    for epoch_id in range(num_epochs):
        for batch_id, data in enumerate(train_reader()):
            loss, auc_value = exe.run(
                program=train_program,
                feed=feeder.feed(data),
                fetch_list=[cost] + auc_metric.metrics
            )
            print("Epoch {:03d}, Batch {:03d}, Loss {:.04f}, AUC {:.04f}"
                  .format(epoch_id, batch_id, loss[0], auc_value[0]))
    

    在上面的示例代码中,使用了fluid.metrics.Auc()函数创建了一个AUC计算节点。在训练循环中,使用auc_metric.metrics获取AUC计算节点中的AUC指标并打印出来。

    您可以将上面的示例代码替换为自己的训练脚本,并将其提交到PAI上进行训练。训练日志中将会包含AUC的输出。

    2023-05-08 08:51:15
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云机器学习PAI训练过程中,您可以使用tf.summary模块将训练过程中的指标(如AUC)写入TensorBoard日志中。并通过TensorBoard界面查看训练过程中的各项指标变化。

    同时,您也可以通过在训练中使用print()函数的方式在Work节点打印相关信息或指标。您可以在训练代码中的合适位置添加print()函数实现。

    例如:在训练的每个epoch结束后,通过以下代码获取AUC值并在Work节点打印出来:

    # 模型训练过程中每个epoch结束时计算AUC
    auc, _ = model.evaluate(x_test, y_test, verbose=0)
    print('AUC: %.2f%%' % (auc*100))
    

    另外,在使用print()函数在Work节点打印AUC信息时,需要注意的是,由于训练过程可能会持续较长时间,打印的信息可能会很多,因此最好将信息写入日志文件中,而不是直接打印在控制台上,以便后续分析。您可以使用Python标准库中的logging模块实现。例如:

    import logging
    
    # 配置日志
    logging.basicConfig(filename='train.log', level=logging.INFO)
    
    # 模型训练过程中每个epoch结束时计算AUC并写入日志
    aic, _ = model.evaluate(x_test, y_test, verbose=0)
    logging.info('AUC: %.2f%%' % (auc*100))
    

    上述代码会将AUC信息写入到名为train.log的日志文件中,在训练过程中可随时查看日志信息。

    2023-05-08 07:56:48
    赞同 展开评论 打赏
  • 在机器学习 PAI 平台上,可以使用 TensorBoard 工具来实时可视化模型训练的进度和性能指标,包括 AUC。

    首先,在代码中要用 TensorBoard 相关的 API 将 AUC 数据写入日志文件,一般情况下是通过 tf.summary.scalar() 函数将 AUC 等数值类型变量写入到日志文件中。示例代码如下:

    import tensorflow as tf

    AUC 指标的计算

    auc, update_op = tf.metrics.auc(labels, predictions)

    记录 AUC 的摘要信息

    tf.summary.scalar('AUC', auc)

    在会话中执行 update_ops 来计算 AUC

    with tf.Session() as sess: sess.run(tf.local_variables_initializer()) for i in range(num_batches): _, summary_str = sess.run([update_op, summary_op], feed_dict=...) writer.add_summary(summary_str, global_step=i) 然后,在作业提交时需要配置 TensorBoard 的服务端地址和端口号,并且在作业配置界面勾选“tensorboard”启用该服务。等到任务启动后,在 work 节点中可以通过浏览器访问 TensorBoard 界面并查看训练进度和性能指标。例如,如果 TensorBoard 服务的端口号为 port,那么在 work 节点上打开浏览器输入 URL:http://work_node_ip:port 即可打开 TensorBoard 界面。在界面左侧的“SCALARS”选项卡中可以看到记录的 AUC 数据,并进行具体的查看和分析。

    2023-05-07 20:59:43
    赞同 展开评论 打赏

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    人工智能平台PAI的MaaS实践 立即下载
    阿里云PAI模型服务 开启AIGC创新之旅 立即下载
    PAI灵骏智算 构建全链路LLM服务的最佳实践 立即下载