模型¶
- 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
属性要約
bounds
\A
dict
パラメータ名をそれらの上界と下界にマッピングすると,以下のようになる.(min, max)
元グループまたは[min, max]
リストです。クランプは、利用可能であれば共分散行列を設定すべきである。
eqcons
\変数等しい制約リスト.
fittable
\fixed
\A
dict
パラメータ名をその固定制約にマッピングする.ユーザが指定されたモデルに割り当てることによってカスタム境界ボックスを指定したか否かを示すフラグ
model.bounding_box
それがそうです。このフラグは,ユーザがモデルに割り当てることでそのモデルにカスタム逆モデルを割り当てたかどうかを示す.
model.inverse
それがそうです。ineqcons
\パラメータ不等式制約リスト.
この属性は、Evaluateメソッドがどの単位または単位セットを必要とするかを示し、入力を単位にマッピングする(または)ことを返すために使用される
None
任意の単位が受け入れられていれば).無次元入力(および対応する出力)を可能にする。
評価する入力には厳しい単位を実施する.
inputs
\inverse
\新しいのに戻ります
Model
このためモデルが解析逆を定義すると,逆変換を行った例を返す.linear
\meta
\オプション情報を格納する類似辞書のオブジェクト。
主に情報目的であり,これらは制約モデル評価の制約タイプである.
モデルセット軸のインデックス,すなわちパラメータ値がどのモデルに関連するパラメータ配列の軸であるかは,モデルを初期化する際に指定される.
n_inputs
\入力の数。
出力の数。
単一のモデルに戻るコンポーネント数は,明らかに1である.
name
\このモデルインスタンスのユーザが提供する名前.
outputs
\このタイプモデルのパラメータ名を記述する.
パラメータをpset形式で返す.
主に情報目的であり,これらはモデルパラメータに設定可能な制約タイプである.
すべてのパラメータ集合はすべてのパラメータ値の展開配列である.
この属性は、EVALUATEの出力がどの単位または単位セットを使用すべきかを示し、出力を単位にマッピングする(または)ことを返すために使用される
None
任意の単位が受け入れられていれば).モデルが分割可能かどうかを指示するフラグ.
stds
\共分散行列が利用可能である場合、パラメータの標準偏差。
これは,アクセス制約がモデルを構成する現在の値を自動的に検査するかどうかを示すブール属性である.
tied
\A
dict
パラメータ名をそのバインディング制約にマッピングする.このモデルを使用して作成された場合,Trueとなる
Quantity
オブジェクト,あるいはパラメータがなければ.方法要約
このモデルは,与えられた入力とインスタンス化モデルを用いて指定されたパラメータ値を用いて評価される.
coerce_units
\([input_units, return_units, ...] )単位をこの(単位なし)モデルに付加する.
copy
\()このモデルのコピーを返す.
deepcopy
\()このモデルの深層コピーを返す.
いくつかの入力変数でモデルを評価する.
has_inverse
\()モデルが解析逆またはユーザ逆を定義していればTrueを返す.
prepare_inputs
\(*入力[, model_set_axis, ...] )この方法は
__call__
モデルのすべての入力が互換性のある形状にブロードキャストされることができることを保証するために(それらのうちの1つまたは両方が配列入力として使用される場合)、特に複数のパラメータセットがある場合。prepare_outputs
\(フォーマット_情報,*outputs, * *kwargs)rename
\([name, inputs, outputs] )新しい名前を使用して、このモデルのコピーを返します。
render
\([out, coords] )固定位置評価モデルでは,考慮
bounding_box
それがそうです。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
普通の山車でもあります
方法文書
- 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>
- prepare_inputs(*inputs, model_set_axis=None, equivalencies=None, **kwargs)[ソース]¶
この方法は
__call__
モデルのすべての入力が互換性のある形状にブロードキャストされることができることを保証するために(それらのうちの1つまたは両方が配列入力として使用される場合)、特に複数のパラメータセットがある場合。これはまた,入力の単位がEvaluateメソッドと互換性があることを保証する.
- render(out=None, coords=None)[ソース]¶
固定位置評価モデルでは,考慮
bounding_box
それがそうです。直接計算モデルとの重要な違いは、この方法が境界ブロックに限定されることである(場合
Model.bounding_box
属性は設定されています。- パラメータ
- out :
numpy.ndarray
オプションです。Numpy.ndarray、オプション 評価したモデルは配列に加える.もしこれが与えられていなければ
None
)を作成し、新しい配列を作成します。- coords同様のアレイはオプションです
モデルの入力座標を
out
配列していますこのような属性を持つべきですself(coords)
生成された形状とout
それがそうです。もし…。out
指定されていない。coords
返された配列の形状を決定するために用いられる.このオプションが提供されていない(またはなし)場合、モデルは、決定された格ネットワーク上で評価されるModel.bounding_box
それがそうです。
- out :
- 返品
- out :
numpy.ndarray
numpy.ndarray
The model added to
out
ifout
is notNone
, or else a new array from evaluating the model overcoords
. Ifout
andcoords
are bothNone
, the returned array is limited to theModel.bounding_box
limits. IfModel.bounding_box
isNone
,arr
orcoords
must be passed.
- out :
- 賃上げをする
- ValueError
もし
coords
与えられていませんModel.bounding_box
このモデルは設置されていません。
実例.
- 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つの辞書を返し、各パラメータの目標単位を与える。