私はmatplotlibを使用して、さまざまな数のノードと隠れたレイヤーで自分のニューラルネットワークを実行した結果をプロットしようとしています。それを行う最善の方法はthis type of graph、私は示すことができる:PolyCollection 3Dグラフを使用した空のプロット
- 精度(z軸)のニューロンの異なる数(y軸)上
- は、隠された層(x軸)の数は、これらの傾向に影響を与える方法
私が前にリンクしたデモから、コードを修正して残念ながら、私はちょうど得ますan empty graph.私は個人的に非常に不足しているmatplotlibのドキュメントを見つけた、そしてチュートリアルはそれがどのように働いたのかについての記述を持っていませんでした。それ以前に3Dプロット。
には、以下の3次元プロットを構築すると懸念私のコードの一部です:
verts = []
for i in range(len(z_axis_values)):
ys = [0] + y_axis_values + [0]
verts.append(list(zip(x_axis_values, ys)))
# Create a 3D plot
fig: Axes3D = plt.figure().add_subplot(111, projection='3d')
poly = PolyCollection(verts=verts, facecolors=[cc(color_options[i]) for i in range(len(x_axis_values))])
poly.set_alpha(0.7)
# Build the image
fig.add_collection3d(poly, zs=z_axis_values, zdir='y')
fig.set_xlabel(x_label)
fig.set_xlim3d(min(x_axis_values), max(x_axis_values))
fig.set_ylabel(z_label)
fig.set_ylim3d(min(y_axis_values), max(y_axis_values))
fig.set_zlabel("Accuracy")
fig.set_zlim3d(min(z_axis_values), 100)
fig.set_label("Accuracy over {} and {} in {}".format(x_label, z_label, data_set))
plt.savefig("plot_{}_{}_{}.png".format(data_set, x_label.replace(' ', ''), z_label.replace(' ', '')),
bbox_inches='tight')
plt.show()
をそして、それはこれが動作しない理由を理解するのに役立ちます場合、私は詳細データは、例で使用されますI
>>> x_axis_values # Number of neurons
[2, 10, 20, 50, 100]
>>> y_axis_values # Number of hidden layers
[2, 3, 5]
>>> z_axis_values # Accuracies of all the runs of the neural net, testing each possible number of hidden layers on each possible number of neurons
[94.73684210526315, 92.10526315789474, 94.73684210526315, 94.73684210526315, 94.73684210526315, 92.10526315789474, 94.73684210526315, 94.73684210526315, 57.89473684210527, 92.10526315789474, 92.10526315789474, 57.89473684210527, 94.73684210526315, 94.73684210526315, 94.73684210526315]
私がこれを理解するのに役立つ情報がない場合は、私に知らせてください。
'fig:Axes3D = plt.figure()。add_subplot(111、projection = '3d')'という行はどこにありましたか?これは非常に奇妙な構文です。あなたは 'fig'を呼び出す' Axes3D'オブジェクトを作成していますが、これはうまく混乱しているようです。 –
@Diziet強く型を指定する変数の標準的なPython 3の構文です。私はそれをしたので、私のリンターは私に叫びを止めるだろう。 'fig'という名前は、悪い変数名lmaoです。 – AdumbCopper
@Dizietご回答いただきありがとうございます。それは非常に詳細で分かりやすく分かりやすいです。あなたは素晴らしいです! – AdumbCopper