前提・実現したいこと
ここに質問の内容を詳しく書いてください。
「Pythonで動かして学ぶ! 新しい機械学習の教科書」を読んでいて、
Pythonでソフトマックス関数を書いていますが、意味がわからない場所があるので、よろしければ教えて下さい。
発生している問題・エラーメッセージ
エラーはありません。
該当のソースコード
python
1import numpy as np 2import matplotlib.pyplot as plt 3from mpl_toolkits.mplot3d import Axes3D 4%matplotlib inline 5 6def softmax(x0, x1, x2): 7 u = np.exp(x0) + np.exp(x1) + np.exp(x2) 8 return np.exp(x0) / u, np.exp(x1) / u, np.exp(x2) / u 9 10xn = 20 11x0 = np.linspace(-4, 4, xn) 12x1 = np.linspace(-4, 4, xn) 13 14y = np.zeros((xn, xn, 3)) 15for i0 in range(xn): 16 for i1 in range(xn): 17 y[i1, i0, :] = softmax(x0[i0], x1[i1], 1) 18 19xx0, xx1 = np.meshgrid(x0, x1) 20plt.figure(figsize=(8, 3)) 21for i in range(2): 22 ax = plt.subplot(1, 2, i+1, projection='3d') 23 ax.plot_surface(xx0, xx1, y[:, :, i], 24 rstride=1, cstride=1, alpha=0.3, 25 color='blue', edgecolor='black') 26 ax.set_xlabel('$x_0$', fontsize=14) 27 ax.set_ylabel('$x_1$', fontsize=14) 28 ax.view_init(40, -125)
試したこと
y[i1, i0, :]とy[:, :, i]が何をやっているか意味がわかりません。
あとrange(2)ではうまくいきましたが、range(3)ではうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。