是否有Pytorch内部程序来检测NaN张量中的s?Tensorflow有tf.is_nan和tf.check_numerics操作...... Pytorch在某处有类似的东西吗?我在文档中找不到这样的东西......
我正在寻找一个Pytorch内部例程,因为我希望这发生在GPU和CPU上.这不包括基于numpy的解决方案(如np.isnan(sometensor.numpy()).any())......
首先 - 如果这是重复的,请接受我的道歉 - 我有一种感觉,我以前见过某种类似的讨论,但我真的找不到它。
我的问题是关于 Python 中的对象组合,它应该看起来像是从复合类的每个次要类中继承的。用例是多个对象实例共享属性及其值的公共核心(而不仅仅是公共结构,这将是经典的继承情况)。
我可以使用一个简单的属性来做到这一点,即只需让每个类都有一个名为“shared_attributes”的属性,该属性本身就是一个存储所有值的类:
class CoreClass(object):
def __init__(self):
self.attr = 'asdf'
class CompClass1(object):
def __init__(self, core):
self.core_attr = core
class CompClass2(object):
def __init__(self, core):
self.core_attr = core
Run Code Online (Sandbox Code Playgroud)
但这要求我通过属性访问每个共享属性class.core_attr,这是我不想要的(出于多种原因,其中之一是这需要对大段代码进行大量重写)。
因此,我想使用依赖于 Python 内置__getattr__对象方法的复合模式,如下所示:
class TestClass1(object):
def __init__(self):
self.attr1 = 1
def func_a(self):
return 'a'
class CompClassBase(object):
def __init__(self, test_class):
self.comp_obj = test_class
def __getattr__(self, item):
return getattr(self.comp_obj, item)
class CompClass1(CompClassBase):
def __init__(self, test_class):
CompClassBase.__init__(self, test_class)
self.attr2 = 13
def func_b(self):
return '1b'
class …Run Code Online (Sandbox Code Playgroud)