【问题标题】:Native logging module not printing to stdout in AzureML本机日志记录模块未打印到 AzureML 中的标准输出
【发布时间】:2020-03-16 20:32:12
【问题描述】:

我正在尝试在 AzureML 运行中使用标准 logging 模块,但没有任何内容打印到标准输出。

我尝试按照here 的说明进行操作,但没有成功。

这就是我正在运行的:

import logging

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)

logger.info('WHY IS THIS NOT WORKING?')

我做错了吗?

【问题讨论】:

    标签: azure-machine-learning-service


    【解决方案1】:

    stdout 通常被重定向到一个名为“70_driver_log.txt”的日志文件,并且在没有配置的情况下,本地运行提交应该遵循 basicConfig,您应该会在那里看到输出。

    您可以从 UI 获取日志,也可以通过 run.wait_for_completion(show_output=True) 在 SDK 中流式传输日志

    这是 UI 截图的链接(但没有代表发布图片):driver log in the ML studio

    【讨论】:

    • 我尝试运行它,但它对我不起作用。你是如何提交运行的?这就是我正在做的事情:gist.github.com/alexandremuzio/8fccc13cad409860f83524e4dee11f1b
    • 有趣。您甚至没有看到相同的日志文件,或者它们只是不包含您的输出吗?我正在启动一台 GPU 机器来尝试消除该变量,但我看到的两个剩余差异是您的环境以及它是 GPU 运行的事实(同样可能是环境)。我尝试了几种不同的提交模式,似乎都让我得到了输出gist.github.com/akshaya-a/5428ee8577aeecf7f24233b1214b0421
    • 您能否分享有关您的自定义图像的更多详细信息?也许您可以尝试使用其中一个标准基础映像和托管环境来帮助隔离问题?
    • 我遇到了同样的问题。使用 GPU 映像,myenv.docker.enabled = True myenv.docker.base_image = azureml.core.runco​​nfig.DEFAULT_GPU_IMAGE 我的猜测是 logging.basicConfig 在我的主脚本之前被调用,所以它被忽略了。
    【解决方案2】:

    以下代码对我有用。我想,设置处理程序是这里的关键。

    import logging
    
    handler = logging.StreamHandler()
    logger = logging.getLogger(__name__)
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)
    

    有关该问题的更详细回复以及替代方法可以找到here

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2018-05-27
      • 2012-03-11
      • 1970-01-01
      • 2016-09-24
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多