大家好,欢迎来到IT知识分享网。
最近在改写同事训练代码的不支持算子,结果在在改写的过程中发现,训练跟测试流程中不支持的算子竟然输入输出尺寸是不同的,所以开始针对测试改写的代码,训练的时候报错,修改为训练支持的算子后,跑完一个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:
...
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/16222.html