模型

class astropy.modeling.Model(*args, meta=None, name=None, **kwargs)[ソース]

ベースクラス: object

すべてのモデルの基本類です。

これは抽象的なクラスであり,直接インスタンス化されてはならない.

デフォルトの場合,以下の初期化パラメータは多くのModelサブクラスに適用される(例外は専用ユーティリティモデルを含む. Mapping )である。パラメータモデルはそのすべてのパラメータをパラメータとし、以下のいずれかのオプションキーワードパラメータの後に続く:

パラメータ
name文字列、オプション

このモデルインスタンスに関連する人間的な名前(複合モデルの各コンポーネントを識別するために特に有用である)。

metaDICT、オプション

このモデルに付加するユーザは,メタデータのオプション辞書を定義する.これをどのように使用して解釈するかは,ユーザや個人の用例に依存する.

n_models形が整っていて、オプションです

1より大きい整数が与えられた場合、 模型集. 単一のモデルではなくインスタンス化されていますこれはパラメータを解釈する方式に影響を与える.この場合、各パラメータは、この配列の要素が第1の軸に沿って(または)リストまたは配列の形態で与えられなければならない。 model_set_axis 指定されていれば,N番目の要素は集合中のN番目のモデルのそのパラメータ値である.

詳細については,文書中のモデルセットに関する部分を参照されたい.

model_set_axis形が整っていて、オプションです

このパラメータは,モデルセットを作成する際にのみ適用される(すなわち n_models > 1 )である。パラメータ値の解釈方法を変更しました一般に、各入力パラメータ配列の第1の軸(正確には0番目の軸)は、モデルセットに対応する軸とされる。しかし,入力配列の任意の軸はこの“モデルセット軸”と考えることができる.これはまた負の整数を受け入れます例えば使用は model_set_axis=-1 最後の(最も変化の速い)軸がモデル集合に関連すべきかどうか.また、 model_set_axis=False モデルセットのすべてのモデルを評価するために所与の入力を使用すべきであることを教えるために使用されてもよい。

fixedDICT、オプション

辞書.辞書 {{parameter_name: bool}} 1つまたは複数のパラメータに固定制約を設定する。 True 表示パラメータはフィッティング中は不変であり,モデルインスタンスを作成した後は更新を禁止する.

あるいは、 fixed 属性は、各パラメータをロックまたはアンロックするために使用することができる。

tiedDICT、オプション

辞書.辞書 {{parameter_name: callable}} ある他のパラメータのパラメータにリンクする.辞書値は,リンク関係を提供する呼び出し可能なオブジェクトである.

あるいは、 tied 属性は設定に使用できます tied 各パラメータに対する制約.

boundsDICT、オプション

1冊の辞書. {{parameter_name: value}} パラメータの上下境界。キーはパラメータ名である.値は長さ2のリストまたはタプルであり,パラメータに必要な範囲を与える.

あるいは、 min そして max あるいは,パラメータの ̄Asterpy.Modeling.Parameter.bound属性を用いて各パラメータの境界を設定することができる.

eqconsリスト、オプション

長さnの関数リストは eqcons[j](x0, *args) == 0.0 最適化に成功した問題の中で。

ineqconsリスト、オプション

長さnの関数リストは ieqcons[j](x0, *args) >= 0.0 最適化に成功した問題です

実例.

>>> from astropy.modeling import models
>>> def tie_center(model):
...         mean = 50 * model.stddev
...         return mean
>>> tied_parameters = {'mean': tie_center}

指定 'mean' 以下の2つの方式の1つのバインディングパラメータである.

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                        tied=tied_parameters)

あるいは…。

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.mean.tied
False
>>> g1.mean.tied = tie_center
>>> g1.mean.tied
<function tie_center at 0x...>

固定パラメータ:

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                        fixed={'stddev': True})
>>> g1.stddev.fixed
True

あるいは…。

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.stddev.fixed
False
>>> g1.stddev.fixed = True
>>> g1.stddev.fixed
True

属性要約

bounding_box \

A tuple 長さの n_inputs 境界枠の制限を定義する、または None 境界枠がないことを示す.

bounds \

A dict パラメータ名をそれらの上界と下界にマッピングすると,以下のようになる. (min, max) 元グループまたは [min, max] リストです。

cov_matrix \

クランプは、利用可能であれば共分散行列を設定すべきである。

eqcons \

変数等しい制約リスト.

fittable \

fixed \

A dict パラメータ名をその固定制約にマッピングする.

has_user_bounding_box \

ユーザが指定されたモデルに割り当てることによってカスタム境界ボックスを指定したか否かを示すフラグ model.bounding_box それがそうです。

has_user_inverse \

このフラグは,ユーザがモデルに割り当てることでそのモデルにカスタム逆モデルを割り当てたかどうかを示す. model.inverse それがそうです。

ineqcons \

パラメータ不等式制約リスト.

input_units \

この属性は、Evaluateメソッドがどの単位または単位セットを必要とするかを示し、入力を単位にマッピングする(または)ことを返すために使用される None 任意の単位が受け入れられていれば).

input_units_allow_dimensionless \

無次元入力(および対応する出力)を可能にする。

input_units_equivalencies \

input_units_strict \

評価する入力には厳しい単位を実施する.

inputs \

inverse \

新しいのに戻ります Model このためモデルが解析逆を定義すると,逆変換を行った例を返す.

linear \

meta \

オプション情報を格納する類似辞書のオブジェクト。

model_constraints \

主に情報目的であり,これらは制約モデル評価の制約タイプである.

model_set_axis \

モデルセット軸のインデックス,すなわちパラメータ値がどのモデルに関連するパラメータ配列の軸であるかは,モデルを初期化する際に指定される.

n_inputs \

入力の数。

n_outputs \

出力の数。

n_submodels \

単一のモデルに戻るコンポーネント数は,明らかに1である.

name \

このモデルインスタンスのユーザが提供する名前.

outputs \

param_names \

このタイプモデルのパラメータ名を記述する.

param_sets \

パラメータをpset形式で返す.

parameter_constraints \

主に情報目的であり,これらはモデルパラメータに設定可能な制約タイプである.

parameters \

すべてのパラメータ集合はすべてのパラメータ値の展開配列である.

return_units \

この属性は、EVALUATEの出力がどの単位または単位セットを使用すべきかを示し、出力を単位にマッピングする(または)ことを返すために使用される None 任意の単位が受け入れられていれば).

separable \

モデルが分割可能かどうかを指示するフラグ.

standard_broadcasting \

stds \

共分散行列が利用可能である場合、パラメータの標準偏差。

sync_constraints \

これは,アクセス制約がモデルを構成する現在の値を自動的に検査するかどうかを示すブール属性である.

tied \

A dict パラメータ名をそのバインディング制約にマッピングする.

uses_quantity \

このモデルを使用して作成された場合,Trueとなる Quantity オブジェクト,あるいはパラメータがなければ.

方法要約

__call__ \(*args, * *kwargs)

このモデルは,与えられた入力とインスタンス化モデルを用いて指定されたパラメータ値を用いて評価される.

coerce_units \([input_units, return_units, ...] )

単位をこの(単位なし)モデルに付加する.

copy \()

このモデルのコピーを返す.

deepcopy \()

このモデルの深層コピーを返す.

evaluate \(*args, * *kwargs)

いくつかの入力変数でモデルを評価する.

has_inverse \()

モデルが解析逆またはユーザ逆を定義していればTrueを返す.

prepare_inputs \(*入力[, model_set_axis, ...] )

この方法は __call__ モデルのすべての入力が互換性のある形状にブロードキャストされることができることを保証するために(それらのうちの1つまたは両方が配列入力として使用される場合)、特に複数のパラメータセットがある場合。

prepare_outputs \(フォーマット_情報,*outputs, * *kwargs)

rename \([name, inputs, outputs] )

新しい名前を使用して、このモデルのコピーを返します。

render \([out, coords] )

固定位置評価モデルでは,考慮 bounding_box それがそうです。

strip_units_from_tree \()

sum_of_implicit_terms \(*args, * *kwargs)

いくつかの入力変数上の任意の暗黙的モデル項の合計を計算する.

with_units_from_data \(** Kwargs)

パラメータ値が指定されたデータ単位と互換性のある単位を持つモデルインスタンスを返す.

without_units_for_data \(** Kwargs)

モデルインスタンスに戻り、そのインスタンスのパラメータ値がデータの正しい単位に変換された場合、単位は剥離されている。

属性文書

bounding_box

A tuple 長さの n_inputs 境界枠の制限を定義する、または None 境界枠がないことを示す.

デフォルト制限は bounding_box 特定のモデルのクラスアスペクトで定義される属性やメソッド.定義されていない場合、この属性は NotImplementedError デフォルトの場合(ただし、カスタマイズされた値は、ユーザによって割り当てられてもよい)。 bounding_box 配列のような形状オブジェクトを手動で設定することができる (model.n_inputs, 2) それがそうです。もっと多くの使い方については,参照されたい 境界枠付き効率的なモデルレンダリング

The limits are ordered according to the numpy indexing convention, and are the reverse of the model input order, e.g. for inputs ('x', 'y', 'z'), bounding_box is defined:

  • 1 Dの場合: (x_low, x_high)

  • 2 Dの場合: ((y_low, y_high), (x_low, x_high))

  • 3 Dの場合: ((z_low, z_high), (y_low, y_high), (x_low, x_high))

実例.

設ける bounding_box 1次元と2次元モデルの制限:

>>> from astropy.modeling.models import Gaussian1D, Gaussian2D
>>> model_1d = Gaussian1D()
>>> model_2d = Gaussian2D(x_stddev=1, y_stddev=1)
>>> model_1d.bounding_box = (-5, 5)
>>> model_2d.bounding_box = ((-6, 6), (-5, 5))

ユーザー定義の3 DにBBOUNDING_BOX制限を設定 custom_model

>>> from astropy.modeling.models import custom_model
>>> def const3d(x, y, z, amp=1):
...    return amp
...
>>> Const3D = custom_model(const3d)
>>> model_3d = Const3D()
>>> model_3d.bounding_box = ((-6, 6), (-5, 5), (-4, 4))

リセットするには、以下の操作を実行してください bounding_box デフォルト制限に設定すると、ユーザが定義した値を削除するだけで、クラス上で定義されているデフォルト値にリセットされます。

>>> del model_1d.bounding_box

デフォルト境界ブロックを含む境界ボックスを完全に無効にするには、設定してください bounding_box 至る None

>>> model_1d.bounding_box = None
>>> model_1d.bounding_box  
Traceback (most recent call last):
NotImplementedError: No bounding box is defined for this model
(note: the bounding box was explicitly disabled for this model;
use `del model.bounding_box` to restore the default bounding box,
if one is defined for this model).
bounds

A dict パラメータ名をそれらの上界と下界にマッピングすると,以下のようになる. (min, max) 元グループまたは [min, max] リストです。

cov_matrix

クランプは、利用可能であれば共分散行列を設定すべきである。

eqcons

変数等しい制約リスト.

fittable = False
fixed

A dict パラメータ名をその固定制約にマッピングする.

has_user_bounding_box

ユーザが指定されたモデルに割り当てることによってカスタム境界ボックスを指定したか否かを示すフラグ model.bounding_box それがそうです。

has_user_inverse

このフラグは,ユーザがモデルに割り当てることでそのモデルにカスタム逆モデルを割り当てたかどうかを示す. model.inverse それがそうです。

ineqcons

パラメータ不等式制約リスト.

input_units

この属性は、Evaluateメソッドがどの単位または単位セットを必要とするかを示し、入力を単位にマッピングする(または)ことを返すために使用される None 任意の単位が受け入れられていれば).

モデルサブクラスはまた,Evaluateにおいて関数アノテーションを用いて有効な入力単位を示すことができ,この場合,アノテーションによって入力単位に戻るので,この属性は上書きされるべきではない.

input_units_allow_dimensionless

無次元入力(および対応する出力)を可能にする。Trueであれば、計算する入力値は、INPUT_UNTUSESで指定された単位を取得する。これが辞書である場合、入力名をブール値にマッピングして、無量綱数の入力を可能にすべきである。INPUT_UNITSが定義されている場合にのみ有効である.

input_units_equivalencies = None
input_units_strict

評価する入力には厳しい単位を実施する.これをTrueに設定すると,計算する入力値はINPUT_UNITSで指定された精度単位を用いる.入力量がINPUT_UNITSに変換できれば変換を行う.これが辞書である場合、入力名をブール値にマッピングして、このパラメータのための厳密な入力単位を設定すべきである。

inputs
inverse

新しいのに戻ります Model このためモデルが解析逆を定義すると,逆変換を行った例を返す.

逆が定義されていないモデルにおいても、この属性は、予め計算または実験的に決定された逆(通常は、通常は、手動で定義された逆)を使用して設定されてもよい。 PolynomialModel ただし,要求どおりではない).

以下の命令を用いてカスタム逆数を削除することができる. del model.inverse それがそうです。この場合、デフォルト値(そうでなければデフォルト値が高くなる)が存在する場合、モデルの反転はそのデフォルト値にリセットされる。 NotImplementedError )。

ご祝儀を述べる. Model サブクラス:モデルの逆を定義するためには,その属性を上書きして逆を表す適切なモデルを返すだけである.基底クラスには,反転を手動で書き換え可能にする機構が自動的に付加される.

linear = True
meta

オプション情報を格納する類似辞書のオブジェクト。

model_constraints = ('eqcons', 'ineqcons')

主に情報目的であり,これらは制約モデル評価の制約タイプである.

model_set_axis

モデルセット軸のインデックス,すなわちパラメータ値がどのモデルに関連するパラメータ配列の軸であるかは,モデルを初期化する際に指定される.

上の文書を参照してください 模型集. もっと細かいことを知っています。

n_inputs

入力の数。

n_outputs

出力の数。

n_submodels

単一のモデルに戻るコンポーネント数は,明らかに1である.

name

このモデルインスタンスのユーザが提供する名前.

outputs
param_names = ()

このタイプモデルのパラメータ名を記述する.

このタプル内のパラメータの順序は、特定のタイプのモデルを初期化する際に入力されるべき順序と同じである。いくつかのタイプのモデル(例えば、多項式モデル)は、次数のようなモデルのいくつかの他の属性に依存する異なる数のパラメータを有する。

モデルクラスを定義する際には,その属性の値は Parameter クラス主体で定義された属性.

param_sets

パラメータをpset形式で返す.

これは、各パラメータセットに項目があり、すべてのパラメータセット上のパラメータ値の配列であり、最後の軸がパラメータセットに関連付けられているリストである。

parameter_constraints = ('fixed', 'tied', 'bounds')

主に情報目的であり,これらはモデルパラメータに設定可能な制約タイプである.

parameters

すべてのパラメータ集合はすべてのパラメータ値の展開配列である.

チューブパラメータはこのリストを維持し、チューブ労働者はそれを修正します。

return_units

この属性は、EVALUATEの出力がどの単位または単位セットを使用すべきかを示し、出力を単位にマッピングする(または)ことを返すために使用される None 任意の単位が受け入れられていれば).

モデルサブクラスはまた,Evaluateにおいて関数アノテーションを用いて有効な出力単位を示すことができ,この場合,アノテーションによって戻り単位に戻るので,この属性は上書きされるべきではない.

separable

モデルが分割可能かどうかを指示するフラグ.

standard_broadcasting = True
stds

共分散行列が利用可能である場合、パラメータの標準偏差。

sync_constraints

これは,アクセス制約がモデルを構成する現在の値を自動的に検査するかどうかを示すブール属性である.モデルを作成する際には,このデフォルト値はTrueであるが,フィッティング目的で性能のためFalseに設定すべきである.

tied

A dict パラメータ名をそのバインディング制約にマッピングする.

uses_quantity

このモデルを使用して作成された場合,Trueとなる Quantity オブジェクト,あるいはパラメータがなければ.

これは、以下のパラメータを使用してこのモデルを評価すべきかどうかを決定するために Quantity 普通の山車でもあります

方法文書

__call__(*args, **kwargs)[ソース]

このモデルは,与えられた入力とインスタンス化モデルを用いて指定されたパラメータ値を用いて評価される.

coerce_units(input_units=None, return_units=None, input_units_equivalencies=None, input_units_allow_dimensionless=False)[ソース]

単位をこの(単位なし)モデルに付加する.

パラメータ
input_units辞書やタプル、オプション

入力単位を付加しなければならない.Dictであれば,各キーはモデルが入力した名前であり,値は付加する単位である.タプルである場合、要素は追加される単位、順序および Model.inputs それがそうです。

return_units辞書やタプル、オプション

出力単位を付加する.Dictであれば,各ポイントはモデルが出力する名前であり,値は付加する単位である.タプルである場合、要素は追加される単位、順序および Model.outputs それがそうです。

input_units_equivalenciesDICT、オプション

入力値のデフォルト等価値に適用する.設定されている場合、これは、各キーが1つのモデル入力に対応する文字列である辞書であるべきである。

input_units_allow_dimensionlessBoolまたはDict、オプション

無量綱入力を許可する。Trueであれば、計算する入力値は、INPUT_UNTUSESで指定された単位を取得する。これが辞書である場合、入力名をブール値にマッピングして、無量綱数の入力を可能にすべきである。

返品
CompoundModel

A CompoundModel 現在のモデルから追加する UnitsMapping 接続設備のモデルです。

賃上げをする
ValueError

現在のモデルにはすでに単位がある場合.

実例.

包絡線無単位モデルは要求および変換単位である:

>>> from astropy.modeling.models import Polynomial1D
>>> from astropy import units as u
>>> poly = Polynomial1D(1, c0=1, c1=2)
>>> model = poly.coerce_units((u.m,), (u.s,))
>>> model(u.Quantity(10, u.m))  
<Quantity 21. s>
>>> model(u.Quantity(1000, u.cm))  
<Quantity 21. s>
>>> model(u.Quantity(10, u.cm))  
<Quantity 1.2 s>

パッケージにはセルなしモデルがありますが、ユニットなし入力が許可されています。

>>> from astropy.modeling.models import Polynomial1D
>>> from astropy import units as u
>>> poly = Polynomial1D(1, c0=1, c1=2)
>>> model = poly.coerce_units((u.m,), (u.s,), input_units_allow_dimensionless=True)
>>> model(u.Quantity(10, u.m))  
<Quantity 21. s>
>>> model(10)  
<Quantity 21. s>
copy()[ソース]

このモデルのコピーを返す.

深さコピーは、すべてのモデル属性(パラメータ値を含む)も複製するために使用される。

deepcopy()[ソース]

このモデルの深層コピーを返す.

abstract evaluate(*args, **kwargs)[ソース]

いくつかの入力変数でモデルを評価する.

has_inverse()[ソース]

モデルが解析逆またはユーザ逆を定義していればTrueを返す.

prepare_inputs(*inputs, model_set_axis=None, equivalencies=None, **kwargs)[ソース]

この方法は __call__ モデルのすべての入力が互換性のある形状にブロードキャストされることができることを保証するために(それらのうちの1つまたは両方が配列入力として使用される場合)、特に複数のパラメータセットがある場合。これはまた,入力の単位がEvaluateメソッドと互換性があることを保証する.

prepare_outputs(format_info, *outputs, **kwargs)[ソース]
classmethod rename(name=None, inputs=None, outputs=None)[ソース]

新しい名前を使用して、このモデルのコピーを返します。

render(out=None, coords=None)[ソース]

固定位置評価モデルでは,考慮 bounding_box それがそうです。

直接計算モデルとの重要な違いは、この方法が境界ブロックに限定されることである(場合 Model.bounding_box 属性は設定されています。

パラメータ
outnumpy.ndarray オプションです。Numpy.ndarray、オプション

評価したモデルは配列に加える.もしこれが与えられていなければ None )を作成し、新しい配列を作成します。

coords同様のアレイはオプションです

モデルの入力座標を out 配列していますこのような属性を持つべきです self(coords) 生成された形状と out それがそうです。もし…。 out 指定されていない。 coords 返された配列の形状を決定するために用いられる.このオプションが提供されていない(またはなし)場合、モデルは、決定された格ネットワーク上で評価される Model.bounding_box それがそうです。

返品
outnumpy.ndarraynumpy.ndarray

The model added to out if out is not None, or else a new array from evaluating the model over coords. If out and coords are both None, the returned array is limited to the Model.bounding_box limits. If Model.bounding_box is None, arr or coords must be passed.

賃上げをする
ValueError

もし coords 与えられていません Model.bounding_box このモデルは設置されていません。

実例.

境界枠付き効率的なモデルレンダリング

strip_units_from_tree()[ソース]
sum_of_implicit_terms(*args, **kwargs)[ソース]

いくつかの入力変数上の任意の暗黙的モデル項の合計を計算する.これは、ユーザに示されていない対応するパラメータの線形モデルを評価する際に使用される任意の固定用語を含む。典型的な例は astropy.modeling.functional_models.Shift 関数y=a+bxに対応し、ここで、b=1は、sum_of_Implative_Terms(X)==xとなるようにモデルタイプによって固有に固定され、線形適合者は、残りの項が解かれたときに、暗黙的項の従属変数(すなわち、暗黙的項の従属変数を補正する方法を必要とする。A=y-bx).

with_units_from_data(**kwargs)[ソース]

パラメータ値が指定されたデータ単位と互換性のある単位を持つモデルインスタンスを返す.

入出力数オブジェクトはキーワードパラメータとして与えられる.

注意事項

パラメータ中の単位でモデルをフィッティングできるようにするためには,フィッティング中にモデルから単位を一時的に剥離する必要があるからである(これはたとえばScipy関数によって行うことができる).

パラメータが得られる単位は,必ずしも入力データの単位ではなく,それらから派生する.存在数の場合に動作したいモデルサブクラスをフィッティングするには定義が必要である. _parameter_units_for_data_units この方法は、入出力単位(2つの辞書として)を受け取り、1つの辞書を返し、各パラメータの目標単位を与える。

without_units_for_data(**kwargs)[ソース]

モデルインスタンスに戻り、そのインスタンスのパラメータ値がデータの正しい単位に変換された場合、単位は剥離されている。

入出力数オブジェクトはキーワードパラメータとして与えられる.

注意事項

パラメータ中の単位でモデルをフィッティングできるようにするためには,フィッティング中にモデルから単位を一時的に剥離する必要があるからである(これはたとえばScipy関数によって行うことができる).

パラメータが変換すべき単位は,必ずしも入力データの単位ではなく,それらから派生するものである.存在数の場合に動作したいモデルサブクラスをフィッティングするには定義が必要である. _parameter_units_for_data_units この方法は、入出力単位(2つの辞書として)を受け取り、1つの辞書を返し、各パラメータの目標単位を与える。