eagpytorch package

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) – カーネル関数に渡す設定

eagpytorch.utils.set_kernel(kernel, **kwargs)[source]

kernelsを指定する

Parameters
  • kernel (str or gpytorch.kernels) –

    使用するカーネル関数を指定する

    基本はstrで指定されることを想定しているものの、自作のカーネル関数を入力することも可能

  • **kwargs (dict) – カーネル関数に渡す設定

Returns

out – カーネル関数のインスタンス

Return type

gpytorch.kernels

eagpytorch.utils.tensor_to_array(input_data)[source]

torch.tensor -> np.array変換関数

Parameters

input_data (torch.tensor) – 変換したいtorch.tensor形式のデータ

Returns

output_data – input_dataをarray型に変換したもの

Return type

np.array

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) – カーネル関数に渡す設定

forward(x)[source]

ApproximateGPModelのforwardメソッド

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) – カーネル関数に渡す設定

forward(x)[source]

ExactGPModelのforwardメソッド

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乗に対応する

load(file_path)[source]

モデルのloadメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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

save(file_path)[source]

モデルのsaveメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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乗に対応する

load(file_path)[source]

モデルのloadメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

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

save(file_path)[source]

モデルのsaveメソッド

Parameters

file_path (str) – モデルの保存先のパスとファイル名

set_model(train_x, train_y, *, lr=0.001)[source]

使用するモデルのインスタンスを立てるメソッド

Parameters
  • train_x (np.array or torch.tensor) – 学習用データセットの説明変数

  • train_y (np.array or torch.tensor) – 学習用データセットの目的変数

  • lr (float) – 学習率