小编cle*_*ros的帖子

Pytorch操作检测NaNs

是否有Pytorch内部程序来检测NaN张量中的s?Tensorflow有tf.is_nantf.check_numerics操作...... Pytorch在某处有类似的东西吗?我在文档中找不到这样的东西......

我正在寻找一个Pytorch内部例程,因为我希望这发生在GPU和CPU上.这不包括基于numpy的解决方案(如np.isnan(sometensor.numpy()).any())......

pytorch

17
推荐指数
4
解决办法
1万
查看次数

使用 __getattr__ 方法作为组合模式是良好的 Python 实践吗?

首先 - 如果这是重复的,请接受我的道歉 - 我有一种感觉,我以前见过某种类似的讨论,但我真的找不到它。

我的问题是关于 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)

python object-composition

5
推荐指数
0
解决办法
1259
查看次数

标签 统计

object-composition ×1

python ×1

pytorch ×1