Sequential

SequentialなSAMACTモデルのクラスです。
SAMACTを操作するために利用します。

クラス定義

class Sequential(encoder, decoder, layers):

import記述例

from samact import Sequential

クラス要素

Parameters

encoderIEncoder

SAMACTが利用するエンコーダを指定します。 本バージョンで利用可能なエンコーダは下記を参照してください。

EncodeLayer

decoderIDecoder

SAMACTが利用するデコーダを指定します。 本バージョンで利用可能なデコーダは下記を参照してください。

DecodeLayer

layerslist[INeuralLayer]

SAMACTのLayerを渡します。 本バージョンで利用可能なLayerは下記を参照してください。

NeuralLayer


Add(layer) -> None

SAMACTのLayerを最後段に追加します。

Parameters

layerINeuralLayer

SAMACTのLayerを渡します。 本バージョンで利用可能なLayerは下記を参照してください。

NeuralLayer

Returns

None


Compile(tC) -> None

オブジェクトが持っている設定値から、SAMACTモデルを生成します。

Caution

このメソッドの実行前は、ほとんどのメソッドが利用できません。

Parameters

tCint

SAMACTの1データに対する使用ユニットタイム数を設定します。

設定値の目安の参考として、 データごとのユニットタイム数 tC を参照してください。

Returns

None


Fit(dataset, labels, epochs, learningProperty, metrics=’accuracy’) -> FitResult

datasetを説明変数、labelsを目的変数として、SAMACTを学習します。

Parameters

datasetnp.ndarray

説明変数を指定します。

下記の次元になっていることを想定しています。

(データ数, 説明変数の数)

説明変数は、0から1の範囲に変換して渡してください。

Tip

0から1の範囲に正規化するのが最もスタンダードですが、0.1から0.9の範囲に正規化する、という選択肢も考えられます。

Tip

正規化には、scikit-learnの MinMaxScaler などを利用すると良いでしょう。

labelsnp.ndarray

目的変数を指定します。

下記の次元になっていることを想定しています。

(データ数, )
  • 分類問題の場合、目的変数はラベルの通し番号をint型として定義してください。

epochsint

学習epoch数を設定します。

learningPropertyLearningProperty

学習のための設定値を設定します。

metricsstr, default=’accuracy’

学習の評価メトリクスを設定します。

分類問題を利用する場合、’accuracy’を指定してください。(デフォルト)

回帰予測やオートエンコーダを利用する場合、’mse’を指定してください。

その他の指標については、学習データでEvaluate()し、EvaluationResult.predictsを利用してユーザが計算することを想定しています。

Returns

FitResult

学習結果のサマリを返します。


Evaluate(dataset, label, metrics=’accuracy’) -> EvaluationResult

datasetを説明変数、labelを目的変数として、SAMACTを評価します。

Parameters

datasetnp.ndarray

説明変数を指定します。

下記の次元になっていることを想定しています。

(データ数, 説明変数の数)

説明変数は、0から1の範囲に変換して渡してください。

Tip

0から1の範囲に正規化するのが最もスタンダードですが、0.1から0.9の範囲に正規化する、という選択肢も考えられます。

Tip

正規化には、scikit-learnの MinMaxScaler などを利用すると良いでしょう。

labelnp.ndarray

目的変数を指定します。

下記の次元になっていることを想定しています。

(データ数, 目的変数の数)
  • 分類問題の場合、目的変数はラベルの通し番号をint型として定義してください。

  • オートエンコーダの場合、Noneを指定してください。

metricsstr, default=’accuracy’

分類問題を利用する場合、’accuracy’を指定してください。(デフォルト)

回帰予測やオートエンコーダを利用する場合、’mse’を指定してください。

Returns


Predict(data) -> int|float|np.ndarray

1データに対して、SAMACTで推論します。

Parameters

datanp.ndarray

下記の次元になっていることを想定しています。

(説明変数の数, )

Returns

  • 分類問題の場合、ラベルの通し番号を返します。(int)

  • オートエンコーダの場合、再構成誤差を返します。(float)

  • 回帰予測の場合、目的変数群を返します。(np.ndarray)


PulseCountPredict(data) -> np.ndarray

1データに対して、SAMACTで推論します。

ただし、返り値を各出力ニューロンのパルス数として受け取ります。

Parameters

datanp.ndarray

下記の次元になっていることを想定しています。

(説明変数の数, )
Returns

np.ndarray

次元は下記になります。

(出力ニューロンのパルス数, )

Caution

出力されるのはパルス数で、返り値をそのままSoftmaxとして解釈することはできないのでご注意ください。


Save(filename)->None

現時点のモデルの情報をh5形式のファイルに出力します。

本フレームワークの Pretrained のコンストラクタ引数にすることで、ファイルからモデルを読み込むことができます。

Parameters

filenamestr

保存するファイルの名称を指定します。(拡張子は.h5を推奨)

Returns

None


FreezeLayers(layers)->None

layersで名前指定したレイヤーの学習可能パラメータをフリーズします。

転移学習などの文脈での利用を想定しています

Caution

本バージョンではフリーズの解除はできません。

Parameters

layerslist[str]

フリーズするレイヤーの名前のリストを渡します。

Tip

layerの名称は、次の命名規則になります。f’SAMLayer{i}’

Returns

None


layers -> list[str]:

モデルが持つ学習可能レイヤーの名前の一覧をリストで取得できるプロパティです。


GetStaticParameters()->list[StaticParameters]

モデルの学習可能パラメータを取得します。

Parameters

None

Returns

list[StaticParameters]

StaticParametersの仕様については、StaticParameters を参照してください。


ComputeDynamics(data)->list[Dynamics]

パラメータで渡したデータ(1レコード)に対しての
モデルの動的パラメータ(内部電位や発火時刻)を取得します。

Parameters

datanp.ndarray

下記の次元になっていることを想定しています。

(説明変数の数, )

Returns

list[Dynamics]

Dynamicsの仕様については、Dynamics を参照してください。