eagpytorch package¶
Subpackages¶
Submodules¶
eagpytorch.utils module¶
-
eagpytorch.utils.
array_to_tensor
(input_data, device=None)[source]¶ np.array -> torch.tensor変換関数
- Parameters
input_data (np.array) – 変換したいnp.array形式のデータ
device (str, default None) –
cudaを使用する場合 ‘cuda’ 、cpuで計算する場合は ‘cpu’
指定しない場合はtorchが認識している環境が選ばれるため、特に意思がなければデフォルトで良いはず。
- Returns
output_data – input_dataをtensor型に変換したもの
- Return type
torch.tensor
-
eagpytorch.utils.
check_device
()[source]¶ pytorchが認識しているデバイスを返す関数
- Returns
device – cudaを使用する場合 ‘cuda’ 、cpuで計算する場合は ‘cpu’
- Return type
str
-
eagpytorch.utils.
load_config
(config_path)[source]¶ config(yaml)ファイルを読み込む
- Parameters
config_path (string) – config fileのパスを指定する
- Returns
config – configを読み込んでattrdictにしたもの
- Return type
attrdict.AttrDict
-
eagpytorch.utils.
load_data
(file_path)[source]¶ csv or tsvを読み込む関数
- Parameters
config_path (string) – csv or tsv fileのパスを指定する
- Returns
header (list) – ヘッダーのみを取り出したlist
data (list) – 対象のファイルのdata部分を取り出したlist
-
eagpytorch.utils.
plot_kernel
(kernel, plot_range=None, **kwargs)[source]¶ カーネルの概形をプロットする関数
- Parameters
kernel (str or
gpytorch.kernels
) – 使用するカーネル関数を指定するplot_range (tuple, default None) – プロットする幅
**kwargs (dict) – カーネル関数に渡す設定
Module contents¶
-
class
eagpytorch.
ApproximateGPModel
(inducing_points, ex_var_dim, kernel, **ker_conf)[source]¶ Bases:
gpytorch.models.approximate_gp.ApproximateGP
ApproximateGP用のモデル定義クラス
- Parameters
inducing_points (torch.tensor) –
補助変数の座標
learn_inducing_locations=True である以上、ここで指定する補助変数は更新される
ex_var_dim (int) –
説明変数の個数
ex_var_dim=None を指定すると計算は速くなるものの、説明変数間の重みの縮退はとけない。
kernel (str or
gpytorch.kernels
) –使用するカーネル関数を指定する
基本はstrで指定されることを想定しているものの、自作のカーネル関数を入力することも可能
**ker_conf (dict) – カーネル関数に渡す設定
-
class
eagpytorch.
ExactGPModel
(train_x, train_y, likelihood, ex_var_dim, kernel, **ker_conf)[source]¶ Bases:
gpytorch.models.exact_gp.ExactGP
ExactGP用のモデル定義クラス
- Parameters
train_x (torch.tensor) – 学習用データセットの説明変数
train_y (torch.tensor) – 学習用データセットの目的変数
likelihood (
gpytorch.likelihoods
) – likelihoodのインスタンスex_var_dim (int) –
ARDカーネルのパラメータの個数。説明変数の数に対応する。
ex_var_dim=None を指定するとRBFカーネルになる。
kernel (str or
gpytorch.kernels
) –使用するカーネル関数を指定する
基本はstrで指定されることを想定しているものの、自作のカーネル関数を入力することも可能
**ker_conf (dict) – カーネル関数に渡す設定
-
class
eagpytorch.
RunApproximateGP
(*, inducing_points_num=0.5, kernel='RBFKernel', likelihood='GaussianLikelihood', optimizer='Adam', mll='VariationalELBO', ard_option=True, ker_conf={}, mll_conf={}, opt_conf={}, random_state=None)[source]¶ Bases:
object
ApproximateGPModelの実行クラス
- Parameters
inducing_points_num (int or float) –
補助変数の個数(int)
もし 0 < inducing_points_num < 1 が渡された場合、学習用データの len と inducing_points_num の積が補助変数の個数として設定される
kernel (str or
gpytorch.kernels
, default'RBFKernel'
) –使用するカーネル関数を指定する。下記から選択する。
'CosineKernel'
'LinearKernel'
'MaternKernel'
'PeriodicKernel'
'RBFKernel'
'RQKernel'
'SpectralMixtureKernel'
基本はstrで指定されることを想定しているものの、
gpytorch.kernels
を用いた自作のカーネル関数を入力することも可能likelihood (str, default
'GaussianLikelihood'
) –likelihoodとして使用するクラス名が指定される。下記から選択する。
'GaussianLikelihood'
,'GL'
: likelihoodにガウス分布を仮定したガウス過程を行う場合'PoissonLikelihood'
,'PL'
: likelihoodにポアソン分布を仮定したポアソン回帰ガウス過程モデルを行う場合'BernoulliLikelihood'
: likelihoodにベルヌーイ分布を仮定した二値分類ガウス過程モデルを行う場合
optimizer (str, default
'Adam'
) –optimizerとして使用するクラス名が指定される。下記から選択する。
'Adam'
'sgd'
'RMSprop'
'Adadelta'
'Adagrad'
mll (str, default
'VariationalELBO'
) –確率分布の周辺化の方法のクラス名が指定される。下記から選択する。
'VariationalELBO'
,'VELBO'
'PredictiveLogLikelihood'
,'PLL'
'GammaRobustVariationalELBO'
,'GRVELBO'
ard_option (bool, default True) –
ARDカーネルを利用するかが指定される
もし
kernel_coeff
を利用する場合 ard_option=True を選択するker_conf (dict, default dict()) – カーネル関数に渡す設定
mll_conf (dict, default dict()) – mllに渡す設定
opt_conf (dict, default dict()) – optimizerに渡す設定
random_state (int, default None) – seedの固定
-
fit
(epochs, *, test_dataloader=None, verbose=True)[source]¶ 学習用メソッド
- Parameters
epochs (int) – エポック数
test_dataloader (
torch.utils.data.DataLoader
, default None) –テストデータをまとめたデータローダー
もし test_dataloader を設定している場合エポックごとにテストデータに対するlossも表示されるように設定される
verbose (bool, default True) – 表示形式
-
kernel_coeff
()[source]¶ kernelの係数を出力するメソッド
- Returns
output_dict – カーネル関数の係数
ard_option=True の場合、 $Theta$ が各々の説明変数ごとに重みを変えて更新され、出力される
- Return type
dict
Warning
RBFKernelの場合、各説明変数の重要度 $eta$ は出力される ‘base_kernel.raw_lengthscale’ の逆数の2乗に対応する
-
plot_kernel
(*, kernel=None, plot_range=None, **kwargs)[source]¶ カーネル関数のプロット
- Parameters
kernel (str or
gpytorch.kernels
, default None) – 使用するカーネル関数を指定するplot_range (tuple, default None) – プロットする幅
**kwargs (dict) – カーネル関数に渡す設定
-
predict
(X, *, cl=0.6827, sample_num=None, sample_f_num=None)[source]¶ 予測用メソッド
- Parameters
X (np.array or torch.tensor) – 入力説明変数
cl (float default 0.6827(1sigma)) – 信頼区間
sample_num (int default None) – yのサンプル数
sample_f_num (int default None) – fのサンプル数
- Returns
output – 予測された目的変数のオブジェクト。下記の属性が用意されている。
output.mean : 予測された目的変数の平均値
output.upper : 予測された目的変数の信頼区間の上限
output.lower : 予測された目的変数の信頼区間の下限
output.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)
output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)
output.probs : BernoulliLikelihood を指定した際に、2値分類の予測確率。このとき mean,upper,lower は output に追加されない。
- Return type
object
-
set_model
(train_x, train_y, *, lr=0.001, batch_size=128, shuffle=True)[source]¶ 使用するモデルのインスタンスを立てるメソッド
- Parameters
train_x (np.array or torch.tensor) – 学習用データセットの説明変数
train_y (np.array or torch.tensor) – 学習用データセットの目的変数
lr (float) – 学習率
batch_size (int, default 128) – ミニバッチでのデータ数
shuffle (bool, default True) – 学習データをシャッフルしてミニバッチ学習させるかを設定
-
class
eagpytorch.
RunExactGP
(*, kernel='RBFKernel', likelihood='GaussianLikelihood', optimizer='Adam', mll='ExactMarginalLogLikelihood', ard_option=True, ker_conf={}, opt_conf={}, mll_conf={}, random_state=None)[source]¶ Bases:
object
ExactGPModelの実行クラス
- Parameters
kernel (str or
gpytorch.kernels
, default'RBFKernel'
) –使用するカーネル関数を指定する。下記から選択する。
'CosineKernel'
'LinearKernel'
'MaternKernel'
'PeriodicKernel'
'RBFKernel'
'RQKernel'
'SpectralMixtureKernel'
基本はstrで指定されることを想定しているものの、
gpytorch.kernels
を用いた自作のカーネル関数を入力することも可能likelihood (str, default
'GaussianLikelihood'
) –likelihoodとして使用するクラス名が指定される。
'GaussianLikelihood'
,'GL'
: likelihoodにガウス分布を仮定したガウス過程を行う場合
optimizer (str, default
'Adam'
) –optimizerとして使用するクラス名が指定される。下記から選択する。
'Adam'
'sgd'
'RMSprop'
'Adadelta'
'Adagrad'
mll (str, default
'ExactMarginalLogLikelihood'
) –確率分布の周辺化の方法のクラス名が指定される。
'ExactMarginalLogLikelihood'
ard_option (bool, default True) –
ARDカーネルを利用するかが指定される
もし
kernel_coeff
を利用する場合 ard_option=True を選択するker_conf (dict, default dict()) – カーネル関数に渡す設定
mll_conf (dict, default dict()) – mllに渡す設定
opt_conf (dict, default dict()) – optimizerに渡す設定
random_state (int, default None) – seedの固定
-
fit
(epochs, *, test_x=None, test_y=None, verbose=True)[source]¶ 学習用メソッド
- Parameters
epochs (int) – エポック数
test_x (np.ndarray or torch.tensor, default None) – 説明変数のテストデータ
test_y (np.ndarray or torch.tensor, default None) –
目的変数のテストデータ
もし test_x, test_y を設定している場合エポックごとにテストデータに対するlossも表示されるように設定される
verbose (bool, default True) – 表示形式
-
kernel_coeff
()[source]¶ kernelの係数を出力するメソッド
- Returns
output_dict – カーネル関数の係数
ard_option=True の場合、 $Theta$ が各々の説明変数ごとに重みを変えて更新され、出力される
- Return type
dict
Warning
RBFKernelの場合、各説明変数の重要度 $eta$ は出力される ‘base_kernel.raw_lengthscale’ の逆数の2乗に対応する
-
plot_kernel
(*, kernel=None, plot_range=None, **kwargs)[source]¶ カーネル関数のプロット
- Parameters
kernel (str or
gpytorch.kernels
, default None) – 使用するカーネル関数を指定するplot_range (tuple, default None) – プロットする幅
**kwargs (dict) – カーネル関数に渡す設定
-
predict
(X, *, cl=0.6827, sample_num=None, sample_f_num=None)[source]¶ 予測用メソッド
- Parameters
X (np.array or torch.tensor) – 入力説明変数
cl (float default 0.6827(1sigma)) – 信頼区間
sample_num (int default None) – yのサンプル数
sample_f_num (int default None) – fのサンプル数
- Returns
output – 予測された目的変数のオブジェクト。下記の属性が用意されている。
output.mean : 予測された目的変数の平均値
output.upper : 予測された目的変数の信頼区間の上限
output.lower : 予測された目的変数の信頼区間の下限
output.samples : 入力説明変数に対する予測値yのサンプル(sample_num個サンプルされる)
output.samples_f : 入力説明変数に対する予測関数fのサンプル(sample_f_num個サンプルされる)
- Return type
object