在培训脚本中需要做什么才能写出文本,以便将其显示在培训作业的日志文件中?
我创建了一个用于运行作业的sagemaker.estimator.Framework子类。这将接受一个指向自定义培训脚本entry_point的train_coco.py参数。我希望将日志语句插入到train_coco.py中,以便当该脚本作为培训作业的一部分执行时,这些语句的输出将包含在该培训作业的日志文件中。
发布于 2022-10-17 20:53:57
将您的培训脚本当作一个普通的python脚本,而不必担心sagemaker逻辑。
运行脚本时写入文件的所有内容都将加载在进程结束时生成的model.tar.gz中。
要保存任何类型的文件,因此包括一个日志文件,只需指向与环境变量SM_MODEL_DIR对应的文件夹就可以保存。
例如:
import os
with open(os.environ["SM_MODEL_DIR"] + '/logs.txt', 'w') as f:
f.write(log)或者如果您想设置日志记录:
import logging
import os
logger = logging.getLogger(__name__)
logging.basicConfig(
level=logging.DEBUG, # set your logging level
format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename=os.environ["SM_MODEL_DIR"] + '/log_filename.log',
filemode='w'
)这允许您持久化一个文件,让它直接在经过训练的模型输出存档中。
但是,我的建议是使用CloudWatch而不持久化日志文件,因为您可以随时从后者导出日志!
https://stackoverflow.com/questions/74100998
复制相似问题