python 全局变量的使用
程序员文章站
2024-01-21 23:17:58
...
最近在改写同事训练代码的不支持算子,结果在在改写的过程中发现,训练跟测试流程中不支持的算子竟然输入输出尺寸是不同的,所以开始针对测试改写的代码,训练的时候报错,修改为训练支持的算子后,跑完一个epoch训练数据的时候,验证测试会报错。定位了很久才发现这个问题。所以需要针对不同的阶段使用不同的算子。所以需要在forward阶段,添加不同的分支标志及处理流程。
Python中global关键字可以定义一个变量为全局变量,但是这个仅限于在一个模块(py文件)中调用全局变量,在另外一个py文件 再次使用global x 也是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错:未定义变量。
再网上查了下,发现有人提供了一个比较好用的全局变量管理模块。
#!/usr/bin/python
# -*- coding: utf-8 -*-
def _init():
global _global_dict
_global_dict = {}
def set_value(name, value):
_global_dict[name] = value
def get_value(name, defValue=None):
try:
return _global_dict[name]
except KeyError:
return defValue
设置全局变量
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('train', True)
获取使用全局变量
#!/usr/bin/python
# -*- coding: utf-8 -*-
import globalvar as gl
trainflag = gl.get_value('train')
if trainflag:
...
else:
...
上一篇: 为什么scrapy没法爬中纪委网站?
下一篇: python 全局变量使用(1)