您现在的位置是:主页 > news > 如何运营好一个网站/游戏推广怎么快速拉人
如何运营好一个网站/游戏推广怎么快速拉人
admin2025/6/18 17:45:07【news】
简介如何运营好一个网站,游戏推广怎么快速拉人,企业为何要建设网站,西安网站建设昆奇记得之前对深度学习中得loss输出,经常自己会将输出流重新定向到一个文件中,比如python main.py 2 > &1 | tee log.txt对于caffe这种c框架而言,用输出流重定向的方法是比较妥的,但是这样输出会有一个问题,比如&a…
记得之前对深度学习中得loss输出,经常自己会将输出流重新定向到一个文件中,
比如
python main.py 2 > &1 | tee log.txt
对于caffe这种c++框架而言,用输出流重定向的方法是比较妥的,但是这样输出会有一个问题,比如,出了文件中print特定格式得loss之外,
你进行debug的时候,想print一些东西,debug print的结果也print到了文件中,但是实际上你并不想要这种结果,或者有时候输出流重定向有一定得延迟,这个时候需要等一等才能看到输出的loss
对于python,实际上有更好的方法,那就是log模块。
关于log模块,这里只讲如何使用log模块同时输出想要print得信息到终端与保存要print得信息到文件中
1 #-*-coding:utf-8-*-
2 #设置格式
3 importlogging4
5
6 defget_log(file_name):7 logger = logging.getLogger('train') #设定logger的名字
8 logger.setLevel(logging.INFO) #设定logger得等级
9
10 ch = logging.StreamHandler() #输出流的hander,用与设定logger的各种信息
11 ch.setLevel(logging.INFO) #设定输出hander的level
12
13 fh = logging.FileHandler(file_name, mode='a') #文件流的hander,输出得文件名称,以及mode设置为覆盖模式
14 fh.setLevel(logging.INFO) #设定文件hander得lever
15
16
17
18 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')19 ch.setFormatter(formatter) #两个hander设置个是,输出得信息包括,时间,信息得等级,以及message
20 fh.setFormatter(formatter)21 logger.addHandler(fh) #将两个hander添加到我们声明的logger中去
22 logger.addHandler(ch)23 return logger
View Code
在使用的时候,直接传入路径,
1 logger = setting.get_log('log.txt')
然后就可以愉快的输出信息到到终端以及输出信息到文件中啦
比如,我原来打印loss可能需要这么写
1 print("Epoch [%d/%d], Iter [%d/%d] Loss: %.4f" % (epoch + 1, 80, i + 1, 500, loss.data.item()))
现在打印loss可以这样写
1 logger.info("Epoch [%d/%d], Iter [%d/%d] Loss: %.4f" % (epoch + 1, 80, i + 1, 500, loss.data.item()))
因为我们刚刚把两个hander给add到了我们声明得logger中,所以,上面一行代码可以同时输出信息到终端,同时也可以输出信息到文件中