北京哪能治好女性白癜风 http://wapyyk.39.net/hospital/89ac7_detail.html
图源:unsplash
笔者经常编写Python脚本来进行数据处理、数据传输和模型训练。随着数据量和数据复杂性的增加,运行脚本可能需要一些时间。在等待数据处理完成时可以同时做一些其他工作。
为了达到这个目的,笔者编写了一组用于解决这个问题的Python脚本。使用这些脚本向手机发送流程更新、可视化和完成通知。当偶尔拥有这些自由的时刻,你可以享受而不是担心模型的进度。
需要什么第一个问题是,需要知道什么?这取决于你正在做的工作。对于笔者来说主要有有三个可能会占用时间的处理任务:
·模型训练
·数据处理和/或传输
·金融模型
我们需要对于每一种情况具体分析。
模型训练更新每n个epoch,必须包括关键指标。例如,训练和验证集的损失和准确性。接着完成通知,包括:
·训练期间关键指标的可视化(同样,训练和验证集的损失和准确性)
·其他不太重要但仍然有用的信息,如本地模型目录、训练时间、模型架构等
·预测输出,对于文本生成来说输出生成的文本(或它的一个样本);对于图像生成来说,输出结果是一个(希望)很酷的可视化
以训练一个神经网络来重现给定的艺术风格为例。我们需要重点从模型中生成的图像,损失和精度图,当前的训练时间,和一个模型的名称。
importnotifySTART=datetime.now()#thislinewouldbeplacedbeforemodeltrainingbeginsMODELNAME="SynthwaveGAN"#givingusourmodelnameNOTIFY=#sowesendanupdatenotificationeveryepochs#foreachepoche,wewouldincludethefollowingcodeife%notify_epoch==0ande!=0:#herewecreatetheemailbodymessagetxt=(f"{MODELNAME}updateasof"f"{datetime.now().strftime(%H:%M:%S)}.")#webuildtheMIMEmessageobjectwithnotify.messagemsg=notify.message(subject=SynthwaveGAN,text=txt,img=[f../visuals/{MODELNAME}/epoch_{e}_loss.png,f../visuals/{MODELNAME}/epoch_{e}_iter_{i}.png])#notethatweattachtwoimageshere,thelossplotand#...ageneratedimageoutputfromourmodelnotify.send(msg)#wethensendthemessage
每隔个epoch,就会发送一封包含上述所有内容的电子邮件。以下是其中一封邮件:
数据处理和传输这点不是很有趣,但在时间消耗方面,它排第一名。
以使用Python将批量数据上传到SQLServer为例(对于没有BULKINSERT的人)。在上传脚本的最后,会有一个简单的消息通知上传完成。
importosimportnotifyfromdataimportSql#see