Factor
モジュールFactor.py
(https://github.com/pgmpy/pgmpy/blob/dev/pgmpy/factors/Factor.py)で名前が付けられたクラスがあり、次のように名前が付けられfactor_product
た関数もありますFactor.py
。
def factor_product(*args):
if not all(isinstance(phi, Factor) for phi in args):
raise TypeError("Input parameters must be factors")
return functools.reduce(lambda phi1, phi2: _bivar_factor_operation(phi1, phi2,
operation='M'), args)
これで、のインスタンスをFactor
関数に渡しても、それでもスローされTypeError
ます。ifステートメントのすぐ上にブレークポイントが設定されたデバッガーからの数行:
(Pdb) args
args = (<pgmpy.factors.Factor.Factor object at 0x7fed0faf76a0>, <pgmpy.factors.Factor.Factor object at 0x7fed0faf7da0>)
(Pdb) isinstance(args[0], Factor)
False
(Pdb) type(args[0])
<class 'pgmpy.factors.Factor.Factor'>
(Pdb) Factor
<class 'pgmpy.factors.Factor.Factor'>
なぜこれが起こっているのか考えはありますか?
reload
これは、同じモジュールから同じクラスの2つのコピーを作成するための良い方法です。1つはリロード前(そのクラスのインスタンスがまだ潜んでいる場合)から、もう1つは後からです。
新しいタイプのオブジェクトがあった可能性がありますが、Factor
しばらく前にインポートされたため、古いタイプを参照していました。したがって、オブジェクトがインスタンスではないことは完全に真実Factor
です...とにかく、そうで Factor
はありません。
決して信用しないでくださいreload
。:)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加