【Python】ソフトマックス関数を実装するコード【Softmax】

スポンサーリンク

【Python】ソフトマックス関数を実装するコード

予測モデルの作成でソフトマックス回帰を実装するのにシグモイド関数を使いたいときに参考として実装プログラムをまとめておく。

ソフトマックス関数の実装

ソフトマックス関数は以下で表される。

これをPythonでコードを書くと以下のようになる。

def softmax(x):
    x -= x.max(axis=1, keepdims=True) # expのoverflowを防ぐ
    x_exp = np.exp(x)
    return x_exp / np.sum(x_exp, axis=1, keepdims=True)

ここでのxは2次元ベクトルで、x -= x.max(axis=1, keepdims=True)をすることによってexpのoverflowを防いでいる。

expを使っているのでシグモイド関数と同様にoverflowに気を付ける必要がある。

以上がソフトマックス関数を実装するコードの紹介。

人気記事

人気記事はこちら。

【Pytorch】テンソルの次元を追加・削除する方法【dim】
CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルを連結する方法(cat・stack)
【Windows】好みのBing壁紙を保存する方法【Wallpaper】
【Python】Tensorflowをダウングレード・アップグレードするコマンド

最新記事

最新記事はこちら。

【クロアチア】アムステルダムから首都ザグレブへ飛行機で移動。ガーデンホテルに宿泊。
夜のアムステル市内を散策。国立モニュメントや川沿いの景色。夕食はビールとピザ。【オランダ】
クロアチアへ行く途中でアムステルダムで乗り換え。KLMを利用。観光で中央駅へ【オランダ】
【新宿】まさらダイニングで巨大チーズナンカレーを食べて満腹に。チーズの量が多い【東京】
【長野】エイブル白馬五竜スキー場でスキー。天気が良く快適に滑れた。

タイトルとURLをコピーしました